import BaseFoundation, { DefaultAdapter } from '../base/foundation'; export interface BasicOptionProps { [x: string]: any; value?: string | number; label?: string | number | unknown; children?: unknown; disabled?: boolean; showTick?: boolean; className?: string; style?: Record; } export interface OptionDefaultAdapter extends Partial { notifyClick(option: BasicOptionProps): void; } export default class OptionFoundation extends BaseFoundation { constructor(adapter: OptionDefaultAdapter) { super({ ...adapter }); } // eslint-disable-next-line @typescript-eslint/no-empty-function init() {} // eslint-disable-next-line @typescript-eslint/no-empty-function destroy() {} onOptionClick(option: BasicOptionProps) { const isDisabled = this._isDisabled(); if (!isDisabled) { this._adapter.notifyClick(option); } } _isDisabled() { return this.getProp('disabled'); } }