import { ISyncExecutor , SyncExecutor } from '@cloudbeaver/core-executor' ; import type { ResultDataFormat } from '@cloudbeaver/core-sdk' ; import { DatabaseDataAction } from '../DatabaseDataAction' ; import type { IDatabaseDataResult } from '../IDatabaseDataResult' ; import type { IDatabaseDataSource } from '../IDatabaseDataSource' ; import { databaseDataAction } from './DatabaseDataActionDecorator' ; import type { DatabaseDataSelectActionsData , IDatabaseDataSelectAction } from './IDatabaseDataSelectAction' ; @ databaseDataAction ( ) export abstract class DatabaseSelectAction < TKey , TResult extends IDatabaseDataResult > extends DatabaseDataAction < any , TResult > implements IDatabaseDataSelectAction < TKey , TResult > { static dataFormat : ResultDataFormat [ ] | null = null ; readonly actions : ISyncExecutor < DatabaseDataSelectActionsData < TKey > > ; constructor ( source , result ) { super ( source , result ) ; this . actions = new SyncExecutor ( ) ; } abstract isSelected ( ) ; abstract isElementSelected ( key ) ; abstract getFocusedElement ( ) ; abstract getSelectedElements ( ) ; abstract getActiveElements ( ) ; abstract set ( key , selected ) ; abstract clear ( ) ; }