@arbor-education/design-system.components 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agent-memory/blanche-designspert/MEMORY.md +64 -0
- package/.claude/agent-memory/blanche-designspert/token-review-patterns.md +29 -0
- package/.claude/agent-memory/dorothy-fact-checker/MEMORY.md +129 -0
- package/.claude/agent-memory/rose-storybookspert/MEMORY.md +29 -0
- package/.claude/agent-memory/rose-storybookspert/patterns.md +132 -0
- package/.claude/agent-memory/sophia-componentspert/MEMORY.md +14 -0
- package/.claude/agent-memory/sophia-componentspert/components.md +367 -0
- package/.claude/agents/blanche-designspert.md +150 -0
- package/.claude/agents/dorothy-fact-checker.md +145 -0
- package/.claude/agents/rose-storybookspert.md +148 -0
- package/.claude/agents/sophia-componentspert.md +133 -0
- package/.claude/component-library.md +1107 -0
- package/.claude/design-assessment-daily-attendance-2026-04-10.md +566 -0
- package/.claude/figma-assessment-7154-58899.md +404 -0
- package/.claude/figma-assessment-UKQfcxnT4rlHHNuiumt4o1-11086-97537.md +392 -0
- package/.claude/figma-assessment-UKQfcxnT4rlHHNuiumt4o1-551-41974.md +474 -0
- package/.claude/figma-assessment-UKQfcxnT4rlHHNuiumt4o1-551-43094.md +462 -0
- package/.claude/figma-assessment-fcFK4CGzkz2fVyY3koX8ZE-7154-59061.md +440 -0
- package/.claude/migration-report-custom-report-writer-2026-02-19.md +591 -0
- package/.claude/skills/analyze-design/README.md +295 -0
- package/.claude/skills/analyze-design/SKILL.md +741 -0
- package/.claude/skills/create-page/README.md +246 -0
- package/.claude/skills/create-page/SKILL.md +634 -0
- package/.claude/skills/create-page/design-analysis-template.md +333 -0
- package/.claude/skills/create-page/page-template.scss +118 -0
- package/.claude/skills/create-page/page-template.tsx +230 -0
- package/.claude/skills/map-legacy/README.md +87 -0
- package/.claude/skills/map-legacy/SKILL.md +465 -0
- package/.claude/skills/migrate-page/README.md +125 -0
- package/.claude/skills/migrate-page/SKILL.md +374 -0
- package/.github/CODEOWNERS +1 -0
- package/.github/pull_request_template.md +39 -0
- package/CHANGELOG.md +14 -0
- package/CLAUDE.md +31 -0
- package/CONTRIBUTING.md +191 -0
- package/README.md +110 -20
- package/dist/components/table/DSDefaultColDef.js +2 -2
- package/dist/components/table/DSDefaultColDef.js.map +1 -1
- package/dist/components/table/Table.d.ts +5 -29
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +12 -22
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.stories.d.ts +4 -0
- package/dist/components/table/Table.stories.d.ts.map +1 -1
- package/dist/components/table/Table.stories.js +163 -28
- package/dist/components/table/Table.stories.js.map +1 -1
- package/dist/components/table/Table.test.js +109 -8
- package/dist/components/table/Table.test.js.map +1 -1
- package/dist/components/table/TableSettingsContext.d.ts +13 -0
- package/dist/components/table/TableSettingsContext.d.ts.map +1 -0
- package/dist/components/table/TableSettingsContext.js +15 -0
- package/dist/components/table/TableSettingsContext.js.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts +3 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.js +12 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.js.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.test.d.ts +2 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.test.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.test.js +65 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.test.js.map +1 -0
- package/dist/components/table/tableConsts.d.ts +7 -0
- package/dist/components/table/tableConsts.d.ts.map +1 -0
- package/dist/components/table/tableConsts.js +8 -0
- package/dist/components/table/tableConsts.js.map +1 -0
- package/dist/components/table/{BulkActionsDropdown.d.ts → tableControls/BulkActionsDropdown.d.ts} +1 -1
- package/dist/components/table/tableControls/BulkActionsDropdown.d.ts.map +1 -0
- package/dist/components/table/{BulkActionsDropdown.js → tableControls/BulkActionsDropdown.js} +3 -3
- package/dist/components/table/tableControls/BulkActionsDropdown.js.map +1 -0
- package/dist/components/table/{HideColumnsDropdown.d.ts → tableControls/HideColumnsDropdown.d.ts} +1 -2
- package/dist/components/table/tableControls/HideColumnsDropdown.d.ts.map +1 -0
- package/dist/components/table/{HideColumnsDropdown.js → tableControls/HideColumnsDropdown.js} +2 -2
- package/dist/components/table/tableControls/HideColumnsDropdown.js.map +1 -0
- package/dist/components/table/tableControls/TableControls.d.ts +23 -0
- package/dist/components/table/tableControls/TableControls.d.ts.map +1 -0
- package/dist/components/table/tableControls/TableControls.js +21 -0
- package/dist/components/table/tableControls/TableControls.js.map +1 -0
- package/dist/components/table/tableControls/TableControls.test.d.ts +2 -0
- package/dist/components/table/tableControls/TableControls.test.d.ts.map +1 -0
- package/dist/components/table/tableControls/TableControls.test.js +124 -0
- package/dist/components/table/tableControls/TableControls.test.js.map +1 -0
- package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -0
- package/dist/components/table/{TableSettingsDropdown.js → tableControls/TableSettingsDropdown.js} +7 -6
- package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -0
- package/dist/components/table/useTableSettings.d.ts +1 -1
- package/dist/components/table/useTableSettings.d.ts.map +1 -1
- package/dist/components/table/useTableSettings.js +1 -1
- package/dist/components/table/useTableSettings.js.map +1 -1
- package/dist/index.css +19 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/setAgGridLicenseKey.js +1 -1
- package/package.json +1 -1
- package/src/components/table/DSDefaultColDef.ts +2 -2
- package/src/components/table/Table.stories.tsx +202 -35
- package/src/components/table/Table.test.tsx +134 -8
- package/src/components/table/Table.tsx +12 -22
- package/src/components/table/TableSettingsContext.ts +15 -0
- package/src/components/table/cellRenderers/CheckboxCellRenderer.test.tsx +74 -0
- package/src/components/table/cellRenderers/CheckboxCellRenderer.tsx +28 -0
- package/src/components/table/table.scss +23 -1
- package/src/components/table/tableConsts.ts +6 -0
- package/src/components/table/{BulkActionsDropdown.tsx → tableControls/BulkActionsDropdown.tsx} +2 -2
- package/src/components/table/{HideColumnsDropdown.tsx → tableControls/HideColumnsDropdown.tsx} +2 -2
- package/src/components/table/tableControls/TableControls.test.tsx +150 -0
- package/src/components/table/tableControls/TableControls.tsx +143 -0
- package/src/components/table/{TableSettingsDropdown.tsx → tableControls/TableSettingsDropdown.tsx} +2 -1
- package/src/components/table/useTableSettings.ts +1 -1
- package/src/index.ts +1 -0
- package/src/utils/setAgGridLicenseKey.ts +1 -1
- package/dist/components/table/BulkActionsDropdown.d.ts.map +0 -1
- package/dist/components/table/BulkActionsDropdown.js.map +0 -1
- package/dist/components/table/HideColumnsDropdown.d.ts.map +0 -1
- package/dist/components/table/HideColumnsDropdown.js.map +0 -1
- package/dist/components/table/TableSettingsDropdown.d.ts.map +0 -1
- package/dist/components/table/TableSettingsDropdown.js.map +0 -1
- /package/dist/components/table/{TableSettingsDropdown.d.ts → tableControls/TableSettingsDropdown.d.ts} +0 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -46,4 +46,5 @@ export { Row } from './components/row/Row';
|
|
|
46
46
|
export { Combobox } from './components/combobox/Combobox';
|
|
47
47
|
export { Toggle } from './components/toggle/Toggle';
|
|
48
48
|
export { SlideoverUtils } from './utils/SlideoverUtils';
|
|
49
|
+
export { CheckboxCellRenderer } from './components/table/cellRenderers/CheckboxCellRenderer';
|
|
49
50
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EACL,WAAW,GAKZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAwB,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,SAAS,EAAuB,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,GAAG,EAAiB,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AASxD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { AgChartsCommunityModule } from 'ag-charts-community';
|
|
|
2
2
|
import { ModuleRegistry } from 'ag-grid-community';
|
|
3
3
|
import { LicenseManager, IntegratedChartsModule, AllEnterpriseModule, } from 'ag-grid-enterprise';
|
|
4
4
|
export const setAgGridLicenseKey = () => {
|
|
5
|
-
LicenseManager.setLicenseKey('Using_this_{AG_Grid}_Enterprise_key_{AG-
|
|
5
|
+
LicenseManager.setLicenseKey('Using_this_{AG_Grid}_Enterprise_key_{AG-121221}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{Arbor_Education_Partners_Ltd}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{Arbor_MIS}_only_for_{4}_Front-End_JavaScript_developers___All_Front-End_JavaScript_developers_working_on_{Arbor_MIS}_need_to_be_licensed___{Arbor_MIS}_has_been_granted_a_Deployment_License_Add-on_for_{1}_Production_Environment___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{16_March_2027}____[v3]_[01]_MTgwNTE1NTIwMDAwMA==5c76013322ec3fd2d2a63ed85f528464');
|
|
6
6
|
ModuleRegistry.registerModules([
|
|
7
7
|
IntegratedChartsModule.with(AgChartsCommunityModule),
|
|
8
8
|
AllEnterpriseModule,
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@ export const shouldSuppressFocus = (params: SuppressMouseEventHandlingParams | C
|
|
|
19
19
|
if (typeof params.column !== 'object') {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
|
-
return params.column?.getColDef().cellRendererParams.
|
|
22
|
+
return params.column?.getColDef().cellRendererParams.suppressCellFocusAndFocusFirstElement ?? false;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export const DSDefaultColDef: ColDef = {
|
|
@@ -54,7 +54,7 @@ export const DSDefaultColDef: ColDef = {
|
|
|
54
54
|
useFormatter: true,
|
|
55
55
|
},
|
|
56
56
|
cellClassRules: {
|
|
57
|
-
'ds-table__cell--
|
|
57
|
+
'ds-table__cell--suppress-focus': shouldSuppressFocus,
|
|
58
58
|
},
|
|
59
59
|
cellRendererParams: {
|
|
60
60
|
suppressMouseEventHandling: (params: SuppressMouseEventHandlingParams) => {
|
|
@@ -2,14 +2,12 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
|
2
2
|
import { type Column, type ColDef, type ColGroupDef } from 'ag-grid-enterprise';
|
|
3
3
|
import { Table } from './Table';
|
|
4
4
|
import { Button } from 'Components/button/Button';
|
|
5
|
-
import { Icon } from 'Components/icon/Icon';
|
|
6
|
-
import { BulkActionsDropdown } from './BulkActionsDropdown';
|
|
7
5
|
|
|
8
6
|
import { useState, type ComponentProps } from 'react';
|
|
9
7
|
import { RowCountInfo } from './pagination/RowCountInfo';
|
|
10
8
|
import { PaginationPanel } from './pagination/PaginationPanel';
|
|
11
|
-
import { HideColumnsDropdown } from './HideColumnsDropdown';
|
|
12
|
-
import {
|
|
9
|
+
import { HideColumnsDropdown } from './tableControls/HideColumnsDropdown';
|
|
10
|
+
import { TableControls } from './tableControls/TableControls';
|
|
13
11
|
import { ModalManager } from 'Components/modal/modalManager/ModalManager';
|
|
14
12
|
import { Modal } from 'Components/modal/Modal';
|
|
15
13
|
import { ModalUtils } from 'Utils/ModalUtils';
|
|
@@ -180,22 +178,14 @@ const footerContent = [
|
|
|
180
178
|
</Button>,
|
|
181
179
|
];
|
|
182
180
|
|
|
183
|
-
const headerContent =
|
|
184
|
-
<
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
</div>,
|
|
192
|
-
<div key={1} style={{ display: 'flex', gap: '1rem' }}>
|
|
193
|
-
<Icon name="download" />
|
|
194
|
-
<TableSettingsDropdown />
|
|
195
|
-
<Icon name="circle-help" />
|
|
196
|
-
<Icon name="expand" />
|
|
197
|
-
</div>,
|
|
198
|
-
];
|
|
181
|
+
const headerContent = (
|
|
182
|
+
<TableControls
|
|
183
|
+
onDownload={() => console.log('download')}
|
|
184
|
+
showSettings
|
|
185
|
+
onHelp={() => console.log('help')}
|
|
186
|
+
onExpandToggle={expanded => console.log('expand', expanded)}
|
|
187
|
+
/>
|
|
188
|
+
);
|
|
199
189
|
|
|
200
190
|
export const Default: Story = {
|
|
201
191
|
args: {
|
|
@@ -280,26 +270,107 @@ export const WithBulkActions: Story = {
|
|
|
280
270
|
columnDefs: sampleColumnDefs,
|
|
281
271
|
defaultColDef,
|
|
282
272
|
domLayout: 'autoHeight',
|
|
283
|
-
headerContent:
|
|
284
|
-
<
|
|
285
|
-
|
|
286
|
-
actions={[
|
|
273
|
+
headerContent: (
|
|
274
|
+
<TableControls
|
|
275
|
+
bulkActions={[
|
|
287
276
|
{
|
|
288
277
|
displayName: 'foo',
|
|
289
|
-
callback: (gridApi) => {
|
|
290
|
-
console.log('clicked on the foo action', gridApi);
|
|
291
|
-
},
|
|
278
|
+
callback: (gridApi) => { console.log('clicked on the foo action', gridApi); },
|
|
292
279
|
},
|
|
293
280
|
{
|
|
294
281
|
displayName: 'bar',
|
|
295
|
-
callback: (gridApi) => {
|
|
296
|
-
console.log('clicked on the bar action', gridApi);
|
|
297
|
-
},
|
|
282
|
+
callback: (gridApi) => { console.log('clicked on the bar action', gridApi); },
|
|
298
283
|
disabled: true,
|
|
299
284
|
},
|
|
300
285
|
]}
|
|
301
|
-
|
|
302
|
-
|
|
286
|
+
/>
|
|
287
|
+
),
|
|
288
|
+
},
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
export const WithTableControls: Story = {
|
|
292
|
+
parameters: {
|
|
293
|
+
docs: {
|
|
294
|
+
description: {
|
|
295
|
+
story:
|
|
296
|
+
'TableControls is a pre-composed toolbar that wires up the standard set of table controls. Every slot is opt-in — only pass the props for the controls you need.',
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
args: {
|
|
301
|
+
rowData: sampleData,
|
|
302
|
+
columnDefs: sampleColumnDefs,
|
|
303
|
+
defaultColDef,
|
|
304
|
+
domLayout: 'autoHeight',
|
|
305
|
+
headerContent: (
|
|
306
|
+
<TableControls
|
|
307
|
+
bulkActions={[
|
|
308
|
+
{ displayName: 'Export selected', callback: api => console.log('export', api) },
|
|
309
|
+
{ displayName: 'Delete selected', callback: api => console.log('delete', api), disabled: true },
|
|
310
|
+
]}
|
|
311
|
+
onUndo={() => console.log('undo')}
|
|
312
|
+
onRedo={() => console.log('redo')}
|
|
313
|
+
showHideColumns
|
|
314
|
+
onDownload={() => console.log('download')}
|
|
315
|
+
showSettings
|
|
316
|
+
onHelp={() => console.log('help')}
|
|
317
|
+
onExpandToggle={expanded => console.log('expand', expanded)}
|
|
318
|
+
/>
|
|
319
|
+
),
|
|
320
|
+
},
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
export const WithTableControlsStartGroupOnly: Story = {
|
|
324
|
+
parameters: {
|
|
325
|
+
docs: {
|
|
326
|
+
description: {
|
|
327
|
+
story:
|
|
328
|
+
'TableControls with only the start group rendered — bulk actions, undo, redo, and hide columns. No end group props are passed so that side is omitted entirely.',
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
args: {
|
|
333
|
+
rowData: sampleData,
|
|
334
|
+
columnDefs: sampleColumnDefs,
|
|
335
|
+
defaultColDef,
|
|
336
|
+
domLayout: 'autoHeight',
|
|
337
|
+
headerContent: (
|
|
338
|
+
<TableControls
|
|
339
|
+
bulkActions={[
|
|
340
|
+
{ displayName: 'Export selected', callback: api => console.log('export', api) },
|
|
341
|
+
{ displayName: 'Delete selected', callback: api => console.log('delete', api), disabled: true },
|
|
342
|
+
]}
|
|
343
|
+
onUndo={() => console.log('undo')}
|
|
344
|
+
onRedo={() => console.log('redo')}
|
|
345
|
+
showHideColumns
|
|
346
|
+
/>
|
|
347
|
+
),
|
|
348
|
+
},
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
export const WithTableControlsEndGroupOnly: Story = {
|
|
352
|
+
parameters: {
|
|
353
|
+
docs: {
|
|
354
|
+
description: {
|
|
355
|
+
story:
|
|
356
|
+
'TableControls with only the end group rendered — search, download, settings, help, and expand. No start group props are passed so that side is omitted entirely.',
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
},
|
|
360
|
+
args: {
|
|
361
|
+
rowData: sampleData,
|
|
362
|
+
columnDefs: sampleColumnDefs,
|
|
363
|
+
defaultColDef,
|
|
364
|
+
domLayout: 'autoHeight',
|
|
365
|
+
headerContent: (
|
|
366
|
+
<TableControls
|
|
367
|
+
hasSearch
|
|
368
|
+
onDownload={() => console.log('download')}
|
|
369
|
+
showSettings
|
|
370
|
+
onHelp={() => console.log('help')}
|
|
371
|
+
onExpandToggle={expanded => console.log('expand', expanded)}
|
|
372
|
+
/>
|
|
373
|
+
),
|
|
303
374
|
},
|
|
304
375
|
};
|
|
305
376
|
|
|
@@ -490,7 +561,7 @@ const sampleColumnDefsWithButtonCellRenderer: (ColDef | ColGroupDef)[] = [
|
|
|
490
561
|
headerTooltip: 'The name of the user',
|
|
491
562
|
cellRenderer: 'dsButtonCellRenderer',
|
|
492
563
|
cellRendererParams: {
|
|
493
|
-
|
|
564
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
494
565
|
},
|
|
495
566
|
editable: false,
|
|
496
567
|
},
|
|
@@ -818,7 +889,7 @@ export const WithInlineTextCellRenderer: Story = {
|
|
|
818
889
|
field: 'name',
|
|
819
890
|
cellRenderer: 'dsInlineTextCellRenderer',
|
|
820
891
|
cellRendererParams: {
|
|
821
|
-
|
|
892
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
822
893
|
suppressCount: true,
|
|
823
894
|
suppressDoubleClickExpand: true,
|
|
824
895
|
suppressEnterExpand: true,
|
|
@@ -1171,7 +1242,7 @@ export const TidyTable: Story = {
|
|
|
1171
1242
|
editable: false,
|
|
1172
1243
|
cellRenderer: 'agGroupCellRenderer',
|
|
1173
1244
|
cellRendererParams: {
|
|
1174
|
-
|
|
1245
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
1175
1246
|
suppressCount: true,
|
|
1176
1247
|
suppressDoubleClickExpand: true,
|
|
1177
1248
|
suppressEnterExpand: true,
|
|
@@ -1409,4 +1480,100 @@ export const WithBooleanCellRenderer: Story = {
|
|
|
1409
1480
|
},
|
|
1410
1481
|
};
|
|
1411
1482
|
|
|
1483
|
+
const checkboxRowData = [
|
|
1484
|
+
{
|
|
1485
|
+
id: 1,
|
|
1486
|
+
name: { value: 'Alice Johnson' },
|
|
1487
|
+
email: { value: 'alice.johnson@example.com' },
|
|
1488
|
+
role: { value: 'Developer' },
|
|
1489
|
+
attended: true,
|
|
1490
|
+
consented: false,
|
|
1491
|
+
},
|
|
1492
|
+
{
|
|
1493
|
+
id: 2,
|
|
1494
|
+
name: { value: 'Bob Smith' },
|
|
1495
|
+
email: { value: 'bob.smith@example.com' },
|
|
1496
|
+
role: { value: 'Designer' },
|
|
1497
|
+
attended: false,
|
|
1498
|
+
consented: true,
|
|
1499
|
+
},
|
|
1500
|
+
{
|
|
1501
|
+
id: 3,
|
|
1502
|
+
name: { value: 'Charlie Brown' },
|
|
1503
|
+
email: { value: 'charlie.brown@example.com' },
|
|
1504
|
+
role: { value: 'Manager' },
|
|
1505
|
+
attended: true,
|
|
1506
|
+
consented: true,
|
|
1507
|
+
},
|
|
1508
|
+
{
|
|
1509
|
+
id: 4,
|
|
1510
|
+
name: { value: 'Diana Prince' },
|
|
1511
|
+
email: { value: 'diana.prince@example.com' },
|
|
1512
|
+
role: { value: 'Developer' },
|
|
1513
|
+
attended: false,
|
|
1514
|
+
consented: false,
|
|
1515
|
+
},
|
|
1516
|
+
{
|
|
1517
|
+
id: 5,
|
|
1518
|
+
name: { value: 'Ethan Hunt' },
|
|
1519
|
+
email: { value: 'ethan.hunt@example.com' },
|
|
1520
|
+
role: { value: 'Analyst' },
|
|
1521
|
+
attended: true,
|
|
1522
|
+
consented: false,
|
|
1523
|
+
},
|
|
1524
|
+
];
|
|
1525
|
+
|
|
1526
|
+
const checkboxColumnDefs: ColDef[] = [
|
|
1527
|
+
{
|
|
1528
|
+
field: 'name',
|
|
1529
|
+
headerName: 'Name',
|
|
1530
|
+
valueFormatter: Table.DefaultValueFormatter,
|
|
1531
|
+
},
|
|
1532
|
+
{
|
|
1533
|
+
field: 'email',
|
|
1534
|
+
headerName: 'Email',
|
|
1535
|
+
valueFormatter: Table.DefaultValueFormatter,
|
|
1536
|
+
},
|
|
1537
|
+
{
|
|
1538
|
+
field: 'role',
|
|
1539
|
+
headerName: 'Role',
|
|
1540
|
+
valueFormatter: Table.DefaultValueFormatter,
|
|
1541
|
+
},
|
|
1542
|
+
{
|
|
1543
|
+
field: 'attended',
|
|
1544
|
+
headerName: 'Attended',
|
|
1545
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1546
|
+
cellRendererParams: {
|
|
1547
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
1548
|
+
},
|
|
1549
|
+
editable: false,
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
field: 'consented',
|
|
1553
|
+
headerName: 'Consented',
|
|
1554
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1555
|
+
cellRendererParams: {
|
|
1556
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
1557
|
+
},
|
|
1558
|
+
editable: false,
|
|
1559
|
+
},
|
|
1560
|
+
];
|
|
1561
|
+
|
|
1562
|
+
export const WithCheckboxCellRenderer: Story = {
|
|
1563
|
+
parameters: {
|
|
1564
|
+
docs: {
|
|
1565
|
+
description: {
|
|
1566
|
+
story:
|
|
1567
|
+
'The CheckboxCellRenderer renders a checkbox input inside a table cell. Pass a boolean value to the cell data to control the checked state.',
|
|
1568
|
+
},
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1571
|
+
args: {
|
|
1572
|
+
rowData: checkboxRowData,
|
|
1573
|
+
columnDefs: checkboxColumnDefs,
|
|
1574
|
+
defaultColDef,
|
|
1575
|
+
domLayout: 'autoHeight',
|
|
1576
|
+
},
|
|
1577
|
+
};
|
|
1578
|
+
|
|
1412
1579
|
export default meta;
|
|
@@ -2,9 +2,9 @@ import { describe, expect, expectTypeOf, test, vi } from 'vitest';
|
|
|
2
2
|
import { render, screen, waitFor } from '@testing-library/react';
|
|
3
3
|
import { Table, TABLE_SPACING } from './Table';
|
|
4
4
|
import '@testing-library/jest-dom/vitest';
|
|
5
|
-
import { BulkActionsDropdown } from 'Components/table/BulkActionsDropdown';
|
|
6
|
-
import { HideColumnsDropdown } from 'Components/table/HideColumnsDropdown';
|
|
7
|
-
import { TableSettingsDropdown } from './TableSettingsDropdown';
|
|
5
|
+
import { BulkActionsDropdown } from 'Components/table/tableControls/BulkActionsDropdown';
|
|
6
|
+
import { HideColumnsDropdown } from 'Components/table/tableControls/HideColumnsDropdown';
|
|
7
|
+
import { TableSettingsDropdown } from './tableControls/TableSettingsDropdown';
|
|
8
8
|
import userEvent from '@testing-library/user-event';
|
|
9
9
|
import type { GridApi } from 'ag-grid-enterprise';
|
|
10
10
|
import * as focusFirstFocusableElementModule from 'Utils/focusFirstFocusableElement';
|
|
@@ -1487,14 +1487,140 @@ describe('Table', () => {
|
|
|
1487
1487
|
});
|
|
1488
1488
|
});
|
|
1489
1489
|
|
|
1490
|
-
describe('
|
|
1490
|
+
describe('CheckboxCellRenderer', () => {
|
|
1491
|
+
test('renders checkboxes in table cells', async () => {
|
|
1492
|
+
const columnDefs = [
|
|
1493
|
+
{ field: 'name', headerName: 'Name' },
|
|
1494
|
+
{
|
|
1495
|
+
field: 'attended',
|
|
1496
|
+
headerName: 'Attended',
|
|
1497
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1498
|
+
editable: false,
|
|
1499
|
+
},
|
|
1500
|
+
];
|
|
1501
|
+
const rowData = [
|
|
1502
|
+
{ name: 'Alice', attended: true },
|
|
1503
|
+
{ name: 'Bob', attended: false },
|
|
1504
|
+
];
|
|
1505
|
+
|
|
1506
|
+
render(<Table columnDefs={columnDefs} rowData={rowData} />);
|
|
1507
|
+
await waitFor(() => expect(screen.getByRole('grid')).toBeInTheDocument());
|
|
1508
|
+
await waitFor(() => {
|
|
1509
|
+
const checkboxes = screen.getAllByRole('checkbox');
|
|
1510
|
+
expect(checkboxes.length).toBe(2);
|
|
1511
|
+
});
|
|
1512
|
+
});
|
|
1513
|
+
|
|
1514
|
+
test('checked state reflects row data value', async () => {
|
|
1515
|
+
const columnDefs = [{
|
|
1516
|
+
field: 'active',
|
|
1517
|
+
headerName: 'Active',
|
|
1518
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1519
|
+
editable: false,
|
|
1520
|
+
}];
|
|
1521
|
+
const rowData = [
|
|
1522
|
+
{ active: true },
|
|
1523
|
+
{ active: false },
|
|
1524
|
+
];
|
|
1525
|
+
|
|
1526
|
+
render(<Table columnDefs={columnDefs} rowData={rowData} />);
|
|
1527
|
+
await waitFor(() => expect(screen.getByRole('grid')).toBeInTheDocument());
|
|
1528
|
+
await waitFor(() => {
|
|
1529
|
+
const checkboxes = screen.getAllByRole('checkbox');
|
|
1530
|
+
expect(checkboxes[0]).toBeChecked();
|
|
1531
|
+
expect(checkboxes[1]).not.toBeChecked();
|
|
1532
|
+
});
|
|
1533
|
+
});
|
|
1534
|
+
|
|
1535
|
+
test('clicking checkbox triggers onCellValueChanged', async () => {
|
|
1536
|
+
const onCellValueChanged = vi.fn();
|
|
1537
|
+
const columnDefs = [{
|
|
1538
|
+
field: 'active',
|
|
1539
|
+
headerName: 'Active',
|
|
1540
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1541
|
+
editable: false,
|
|
1542
|
+
}];
|
|
1543
|
+
const rowData = [{ active: false }];
|
|
1544
|
+
|
|
1545
|
+
render(
|
|
1546
|
+
<Table
|
|
1547
|
+
columnDefs={columnDefs}
|
|
1548
|
+
rowData={rowData}
|
|
1549
|
+
onCellValueChanged={onCellValueChanged}
|
|
1550
|
+
/>,
|
|
1551
|
+
);
|
|
1552
|
+
await waitFor(() => expect(screen.getByRole('grid')).toBeInTheDocument());
|
|
1553
|
+
await waitFor(() => expect(screen.getByRole('checkbox')).toBeInTheDocument());
|
|
1554
|
+
|
|
1555
|
+
await userEvent.click(screen.getByRole('checkbox'));
|
|
1556
|
+
|
|
1557
|
+
await waitFor(() => {
|
|
1558
|
+
expect(onCellValueChanged).toHaveBeenCalledWith(expect.objectContaining({ oldValue: false, newValue: true }));
|
|
1559
|
+
});
|
|
1560
|
+
});
|
|
1561
|
+
|
|
1562
|
+
test('works with multiple checkbox columns', async () => {
|
|
1563
|
+
const columnDefs = [
|
|
1564
|
+
{ field: 'name', headerName: 'Name' },
|
|
1565
|
+
{
|
|
1566
|
+
field: 'attended',
|
|
1567
|
+
headerName: 'Attended',
|
|
1568
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1569
|
+
editable: false,
|
|
1570
|
+
},
|
|
1571
|
+
{
|
|
1572
|
+
field: 'consented',
|
|
1573
|
+
headerName: 'Consented',
|
|
1574
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1575
|
+
editable: false,
|
|
1576
|
+
},
|
|
1577
|
+
];
|
|
1578
|
+
const rowData = [
|
|
1579
|
+
{ name: 'Alice', attended: true, consented: false },
|
|
1580
|
+
];
|
|
1581
|
+
|
|
1582
|
+
render(<Table columnDefs={columnDefs} rowData={rowData} />);
|
|
1583
|
+
await waitFor(() => expect(screen.getByRole('grid')).toBeInTheDocument());
|
|
1584
|
+
await waitFor(() => {
|
|
1585
|
+
const checkboxes = screen.getAllByRole('checkbox');
|
|
1586
|
+
expect(checkboxes[0]).toBeChecked();
|
|
1587
|
+
expect(checkboxes[1]).not.toBeChecked();
|
|
1588
|
+
});
|
|
1589
|
+
});
|
|
1590
|
+
|
|
1591
|
+
test('disabled flag via cellRendererParams', async () => {
|
|
1592
|
+
const onCellValueChanged = vi.fn();
|
|
1593
|
+
const columnDefs = [{
|
|
1594
|
+
field: 'active',
|
|
1595
|
+
headerName: 'Active',
|
|
1596
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
1597
|
+
editable: false,
|
|
1598
|
+
cellRendererParams: { disabled: true },
|
|
1599
|
+
}];
|
|
1600
|
+
const rowData = [{ active: false }];
|
|
1601
|
+
|
|
1602
|
+
render(
|
|
1603
|
+
<Table
|
|
1604
|
+
columnDefs={columnDefs}
|
|
1605
|
+
rowData={rowData}
|
|
1606
|
+
onCellValueChanged={onCellValueChanged}
|
|
1607
|
+
/>,
|
|
1608
|
+
);
|
|
1609
|
+
await waitFor(() => expect(screen.getByRole('grid')).toBeInTheDocument());
|
|
1610
|
+
await waitFor(() => expect(screen.getByRole('checkbox')).toBeInTheDocument());
|
|
1611
|
+
|
|
1612
|
+
expect(screen.getByRole('checkbox')).toBeDisabled();
|
|
1613
|
+
});
|
|
1614
|
+
});
|
|
1615
|
+
|
|
1616
|
+
describe('suppressCellFocusAndFocusFirstElement', () => {
|
|
1491
1617
|
const handleClick = vi.fn();
|
|
1492
1618
|
const columnDefs = [{
|
|
1493
1619
|
field: 'action',
|
|
1494
1620
|
headerName: 'Action',
|
|
1495
1621
|
cellRenderer: 'dsButtonCellRenderer',
|
|
1496
1622
|
cellRendererParams: {
|
|
1497
|
-
|
|
1623
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
1498
1624
|
},
|
|
1499
1625
|
}];
|
|
1500
1626
|
const rowData = [{
|
|
@@ -1504,14 +1630,14 @@ describe('Table', () => {
|
|
|
1504
1630
|
},
|
|
1505
1631
|
}];
|
|
1506
1632
|
|
|
1507
|
-
test('setting
|
|
1633
|
+
test('setting suppressCellFocusAndFocusFirstElement to true should add the ds-table__cell--suppress-focus class', async () => {
|
|
1508
1634
|
const { container } = render(<Table columnDefs={columnDefs} rowData={rowData} />);
|
|
1509
1635
|
await screen.findByRole('grid', {}, { timeout: 10000 });
|
|
1510
|
-
const cellWithClass = container.querySelector('.ds-table__cell--
|
|
1636
|
+
const cellWithClass = container.querySelector('.ds-table__cell--suppress-focus');
|
|
1511
1637
|
expect(cellWithClass).toBeInTheDocument();
|
|
1512
1638
|
});
|
|
1513
1639
|
|
|
1514
|
-
test('setting
|
|
1640
|
+
test('setting suppressCellFocusAndFocusFirstElement to true should suppress cell focus and focus the first element', async () => {
|
|
1515
1641
|
const focusFirstFocusableElementSpy = vi.spyOn(
|
|
1516
1642
|
focusFirstFocusableElementModule,
|
|
1517
1643
|
'focusFirstFocusableElement',
|
|
@@ -2,7 +2,7 @@ import { AllEnterpriseModule, ModuleRegistry, type GridApi } from 'ag-grid-enter
|
|
|
2
2
|
import { AgGridReact, type AgGridReactProps } from 'ag-grid-react';
|
|
3
3
|
import { defaultTheme } from './theme/defaultTheme';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
|
-
import {
|
|
5
|
+
import { useRef, useState, type ReactNode } from 'react';
|
|
6
6
|
import { TableFooter } from './TableFooter';
|
|
7
7
|
import { TableHeader } from './TableHeader';
|
|
8
8
|
import { GridApiContext } from './GridApiContext';
|
|
@@ -10,8 +10,8 @@ import { PaginationPanel } from './pagination/PaginationPanel';
|
|
|
10
10
|
import { PageSizeSelector } from './pagination/PageSizeSelector';
|
|
11
11
|
import { PaginationControls } from './pagination/PaginationControls';
|
|
12
12
|
import { RowCountInfo } from './pagination/RowCountInfo';
|
|
13
|
-
import { BulkActionsDropdown } from './BulkActionsDropdown';
|
|
14
|
-
import { HideColumnsDropdown } from './HideColumnsDropdown';
|
|
13
|
+
import { BulkActionsDropdown } from './tableControls/BulkActionsDropdown';
|
|
14
|
+
import { HideColumnsDropdown } from './tableControls/HideColumnsDropdown';
|
|
15
15
|
import { useTableSettings, type UseTableSettingsParams } from './useTableSettings';
|
|
16
16
|
import { setAgGridLicenseKey } from 'Utils/setAgGridLicenseKey';
|
|
17
17
|
import { toggleRowSelectionInCurrentRange } from './toggleRowSelectionInCurrentRange';
|
|
@@ -23,8 +23,12 @@ import { tidyTheme } from './theme/tidyTheme';
|
|
|
23
23
|
import { focusFirstFocusableElement } from 'Utils/focusFirstFocusableElement';
|
|
24
24
|
import { BooleanFilter } from './columnFilters/BooleanFilter/BooleanFilter';
|
|
25
25
|
import { TimeFilter } from './columnFilters/TimeFilter/TimeFilter';
|
|
26
|
-
import { TableSettingsDropdown } from './TableSettingsDropdown';
|
|
26
|
+
import { TableSettingsDropdown } from './tableControls/TableSettingsDropdown';
|
|
27
|
+
import { TableControls } from './tableControls/TableControls';
|
|
28
|
+
import { TABLE_SPACING } from './tableConsts';
|
|
29
|
+
import { TableSettingsContext } from './TableSettingsContext';
|
|
27
30
|
import { BooleanCellRenderer } from './cellRenderers/BooleanCellRenderer';
|
|
31
|
+
import { CheckboxCellRenderer } from './cellRenderers/CheckboxCellRenderer';
|
|
28
32
|
|
|
29
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
34
|
type TableProps<TData = any> = {
|
|
@@ -44,24 +48,8 @@ setAgGridLicenseKey();
|
|
|
44
48
|
|
|
45
49
|
ModuleRegistry.registerModules([AllEnterpriseModule]);
|
|
46
50
|
|
|
47
|
-
export
|
|
48
|
-
|
|
49
|
-
S = 'S',
|
|
50
|
-
M = 'M',
|
|
51
|
-
L = 'L',
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const TableSettingsContext = createContext<ReturnType<typeof useTableSettings>>({
|
|
55
|
-
settings: {
|
|
56
|
-
hasColumnBorders: false,
|
|
57
|
-
tableSpacing: TABLE_SPACING.S,
|
|
58
|
-
areCellColorsEnabled: true,
|
|
59
|
-
},
|
|
60
|
-
setTableSpacing: () => {},
|
|
61
|
-
setHasColumnBorders: () => {},
|
|
62
|
-
resetSettings: () => {},
|
|
63
|
-
setAreCellColorsEnabled: () => {},
|
|
64
|
-
});
|
|
51
|
+
export { TABLE_SPACING } from './tableConsts';
|
|
52
|
+
export { TableSettingsContext } from './TableSettingsContext';
|
|
65
53
|
|
|
66
54
|
export const Table = (props: TableProps) => {
|
|
67
55
|
const {
|
|
@@ -195,6 +183,7 @@ export const Table = (props: TableProps) => {
|
|
|
195
183
|
dsSelectDropdownCellRenderer: SelectDropdownCellRenderer,
|
|
196
184
|
dsBooleanFilter: BooleanFilter,
|
|
197
185
|
dsTimeFilter: TimeFilter,
|
|
186
|
+
dsCheckboxCellRenderer: CheckboxCellRenderer,
|
|
198
187
|
dsBooleanCellRenderer: BooleanCellRenderer,
|
|
199
188
|
...components,
|
|
200
189
|
}}
|
|
@@ -221,3 +210,4 @@ Table.HideColumnsDropdown = HideColumnsDropdown;
|
|
|
221
210
|
Table.ButtonCellRenderer = ButtonCellRenderer;
|
|
222
211
|
Table.DefaultValueFormatter = defaultValueFormatter;
|
|
223
212
|
Table.TableSettingsDropdown = TableSettingsDropdown;
|
|
213
|
+
Table.TableControls = TableControls;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
import { TABLE_SPACING } from './tableConsts';
|
|
3
|
+
import { type useTableSettings } from './useTableSettings';
|
|
4
|
+
|
|
5
|
+
export const TableSettingsContext = createContext<ReturnType<typeof useTableSettings>>({
|
|
6
|
+
settings: {
|
|
7
|
+
hasColumnBorders: false,
|
|
8
|
+
tableSpacing: TABLE_SPACING.S,
|
|
9
|
+
areCellColorsEnabled: true,
|
|
10
|
+
},
|
|
11
|
+
setTableSpacing: () => {},
|
|
12
|
+
setHasColumnBorders: () => {},
|
|
13
|
+
resetSettings: () => {},
|
|
14
|
+
setAreCellColorsEnabled: () => {},
|
|
15
|
+
});
|