import type { StylesHandler } from './types'; /** * @todo Describe options. * @typedef SettingsPure * * @property {Option} facade @todo desc. * @property {Option} ariaTags Option `ariaTags`. * @property {Option} cellRenderer Option `cellRenderer`. * @property {Option} columnHeaders Option `columnHeaders`. * @property {Option} columnWidth Option `columnWidth`. * @property {Option} currentRowClassName Option `currentRowClassName`. * @property {Option} data Option `data`. * @property {Option} defaultColumnWidth Option `defaultColumnWidth`. * @property {Option} externalRowCalculator Option `externalRowCalculator`. * @property {Option} fixedColumnsStart Option `fixedColumnsStart`. * @property {Option} fixedRowsBottom Option `fixedRowsBottom`. * @property {Option} fixedRowsTop Option `fixedRowsTop`. * @property {Option} groups Option `groups`. * @property {Option} hideBorderOnMouseDownOver Option `hideBorderOnMouseDownOver`. * @property {Option} isRtl Option `isRtl`. * @property {Option} isDataViewInstance Option `isDataViewInstance`. * @property {Option} minSpareRows Option `minSpareRows`. * @property {Option} onBeforeHighlightingColumnHeader Option `onBeforeHighlightingColumnHeader`. * @property {Option} onBeforeHighlightingRowHeader Option `onBeforeHighlightingRowHeader`. * @property {Option} onBeforeRemoveCellClassNames Option `onBeforeRemoveCellClassNames`. * @property {Option} preventOverflow Option `preventOverflow`. * @property {Option} preventWheel Option `preventWheel`. * @property {Option} renderAllColumns Option `renderAllColumns`. * @property {Option} renderAllRows Option `renderAllRows`. * @property {Option} rowHeaders Option `rowHeaders`. * @property {Option} rowHeightOption `rowHeight`. * @property {Option} rowHeightByOverlayName Option `rowHeightByOverlayName`. * @property {Option} shouldRenderBottomOverlay Option `shouldRenderBottomOverlay`. * @property {Option} shouldRenderInlineStartOverlay Option `shouldRenderInlineStartOverlay`. * @property {Option} shouldRenderTopOverlay Option `shouldRenderTopOverlay`. * @property {Option} table Option `table`. * @property {Option} totalColumns Option `totalColumns`. * @property {Option} totalRows Option `totalRows`. * @property {?Option} beforeDraw Option `beforeDraw`. * @property {?Option} columnHeaderHeight Option `columnHeaderHeight`. * @property {?Option} currentColumnClassName Option `currentColumnClassName`. * @property {?Option} headerClassName Option `headerClassName`. * @property {?Option} onAfterDrawSelection Option `onAfterDrawSelection`. * @property {?Option} onAfterMomentumScroll Option `onAfterMomentumScroll`. * @property {?Option} onBeforeDrawBorders Option `onBeforeDrawBorders`. * @property {?Option} onBeforeTouchScroll Option `onBeforeTouchScroll`. * @property {?Option} onCellContextMenu Option `onCellContextMenu`. * @property {?Option} onCellCornerDblClick Option `onCellCornerDblClick`. * @property {?Option} onCellCornerMouseDown Option `onCellCornerMouseDown`. * @property {?Option} onCellDblClick Option `onCellDblClick`. * @property {?Option} onCellMouseDown Option `onCellMouseDown`. * @property {?Option} onCellMouseOut Option `onCellMouseOut`. * @property {?Option} onCellMouseOver Option `onCellMouseOver`. * @property {?Option} onCellMouseOverOutside Option `onCellMouseOverOutside`. * @property {?Option} onCellMouseUp Option `onCellMouseUp`. * @property {?Option} onDraw Option `onDraw`. * @property {?Option} onModifyGetCellCoords Option `onModifyGetCellCoords`. * @property {?Option} onModifyGetCoordsElement Option `onModifyGetCoordsElement`. * @property {?Option} onModifyGetCoords Option `onModifyGetCoords`. * @property {?Option} onModifyRowHeaderWidth Option `onModifyRowHeaderWidth`. * @property {?Option} onBeforeViewportScrollHorizontally Option `onBeforeViewportScrollHorizontally`. * @property {?Option} onBeforeViewportScrollVertically Option `onBeforeViewportScrollVertically`. * @property {?Option} onScrollHorizontally Option `onScrollHorizontally`. * @property {?Option} onScrollVertically Option `onScrollVertically`. * @property {?Option} onWindowResize Option `onWindowResize`. * @property {?Option} rowHeaderWidth Option `rowHeaderWidth`. * @property {?Option} selections Option `selections`. * @property {?Option} viewportColumnCalculatorOverride Option `viewportColumnCalculatorOverride`. * @property {?Option} viewportRowCalculatorOverride Option `viewportRowCalculatorOverride`. * @property {?Option} viewportColumnRenderingThreshold Option `viewportColumnRenderingThreshold`. * @property {?Option} viewportRowRenderingThreshold Option `viewportRowRenderingThreshold`. * @property {?Option} stylesHandler Option `stylesHandler`. */ /** * @template TValue. * @typedef { TValue | Array. | (function(...*): TValue) } Option */ /** * @class Settings */ export default class Settings { /** * Reference to settings. * * @protected * @type {SettingsPure} */ settings: Record; /** * The defaults values of settings. * Void 0 means it is required, null means it can be empty. * * @public * @type {Readonly} */ defaults: Record; /** * @param {SettingsPure} settings The user defined settings. */ constructor(settings: Record); /** * Generate defaults for a settings. * Void 0 means it is required, null means it can be empty. * * @private * @returns {SettingsPure} */ getDefaults(): Record; /** * Update settings. * * @param {object|string} settings The singular settings to update or if passed as object to merge with. * @param {*} value The value to set if the first argument is passed as string. * @returns {Settings} */ update(settings: string | Record, value?: unknown): this; /** * Get setting by name. * * @param {$Keys} key The settings key to retrieve. * @param {*} [param1] Additional parameter passed to the options defined as function. * @param {*} [param2] Additional parameter passed to the options defined as function. * @param {*} [param3] Additional parameter passed to the options defined as function. * @param {*} [param4] Additional parameter passed to the options defined as function. * @returns {*} */ getSetting(key: 'stylesHandler'): StylesHandler; getSetting(key: 'preventOverflow'): 'horizontal' | 'vertical' | false; getSetting(key: 'rtlMode'): boolean; getSetting(key: 'isDataViewInstance'): boolean; getSetting(key: 'fixedColumnsStart'): number; getSetting(key: 'fixedRowsTop'): number; getSetting(key: 'fixedRowsBottom'): number; getSetting(key: 'totalRows'): number | undefined; getSetting(key: 'totalColumns'): number | undefined; getSetting(key: 'rowHeaderWidth'): number | undefined; getSetting(key: 'defaultColumnWidth'): number | undefined; getSetting(key: 'viewportRowRenderingThreshold'): number | 'auto'; getSetting(key: 'viewportColumnRenderingThreshold'): number | 'auto'; getSetting(key: string, param1?: any, param2?: unknown, param3?: unknown, param4?: unknown): T; /** * Get a setting value without any evaluation. * * @param {string} key The settings key to retrieve. * @returns {*} */ getSettingPure(key: string): T; /** * Checks if setting exists. * * @param {boolean} key The settings key to check. * @returns {boolean} */ has(key: string): boolean; }