import type { ActionAreaPredicate, ButtonActionOption } from "../../ts-types"; import type { ButtonColumnState, GridInternal } from "../../ts-types-internal"; import { AbstractAction } from "./Action"; import { BUTTON_COLUMN_STATE_ID } from "../../internal/symbolManager"; import { obj } from "../../internal/utils"; export class ButtonAction extends AbstractAction { constructor(option: ButtonActionOption = {}) { super(option); } get area(): ActionAreaPredicate | undefined { return undefined; } set area(_area: ActionAreaPredicate | undefined) { // noop } clone(): ButtonAction { return new ButtonAction(this); } getState(grid: GridInternal): ButtonColumnState { let state = grid[BUTTON_COLUMN_STATE_ID]; if (!state) { state = {}; obj.setReadonly(grid, BUTTON_COLUMN_STATE_ID, state); } return state; } }