@arbor-education/design-system.components 1.0.0 → 1.0.2
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/.github/workflows/release.yml +3 -1
- package/.storybook/main.ts +12 -6
- package/CHANGELOG.md +12 -0
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +2 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.stories.d.ts.map +1 -1
- package/dist/components/table/Table.stories.js +24 -70
- package/dist/components/table/Table.stories.js.map +1 -1
- package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts.map +1 -1
- package/dist/components/table/cellEditors/DateCellEditor.stories.js +16 -13
- package/dist/components/table/cellEditors/DateCellEditor.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js +6 -7
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js +7 -8
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js +7 -8
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js +7 -8
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/NumberInputCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/NumberInputCellRenderer.stories.js +12 -15
- package/dist/components/table/cellRenderers/NumberInputCellRenderer.stories.js.map +1 -1
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +19 -29
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -1
- package/dist/components/table/columnTypes.d.ts +3 -0
- package/dist/components/table/columnTypes.d.ts.map +1 -0
- package/dist/components/table/columnTypes.js +55 -0
- package/dist/components/table/columnTypes.js.map +1 -0
- package/dist/components/toggleGroup/ToggleGroup.stories.js +1 -1
- package/dist/components/toggleGroup/ToggleGroup.stories.js.map +1 -1
- package/dist/index.css +6 -0
- package/dist/index.css.map +1 -1
- package/package.json +10 -11
- package/src/components/dropdown/dropdown.scss +6 -0
- package/src/components/table/Table.stories.tsx +24 -73
- package/src/components/table/Table.tsx +2 -0
- package/src/components/table/cellEditors/DateCellEditor.stories.tsx +16 -14
- package/src/components/table/cellRenderers/BooleanCellRenderer.stories.tsx +6 -7
- package/src/components/table/cellRenderers/ButtonCellRenderer.stories.tsx +7 -8
- package/src/components/table/cellRenderers/CheckboxCellRenderer.stories.tsx +7 -8
- package/src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx +7 -8
- package/src/components/table/cellRenderers/NumberInputCellRenderer.stories.tsx +12 -15
- package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +19 -29
- package/src/components/table/columnTypes.ts +56 -0
- package/src/components/toggleGroup/ToggleGroup.stories.tsx +1 -1
|
@@ -23,7 +23,8 @@ const DESCRIPTION_INTRO = [
|
|
|
23
23
|
'dropdown when the user presses Enter in the focused cell. On selection, it calls `node.setDataValue`',
|
|
24
24
|
'to update the row data in-place.',
|
|
25
25
|
'',
|
|
26
|
-
'Register it via the
|
|
26
|
+
'Register it via `type: \'dsSelectDropdownColumn\'` on the column definition (pre-registered by Arbor\'s `Table`),',
|
|
27
|
+
'via the string key `dsSelectDropdownCellRenderer`, or by importing the component directly.',
|
|
27
28
|
].join('\n');
|
|
28
29
|
|
|
29
30
|
const USAGE_GUIDANCE = [
|
|
@@ -63,7 +64,7 @@ const DEVELOPER_NOTES = [
|
|
|
63
64
|
' {',
|
|
64
65
|
" field: 'status',",
|
|
65
66
|
" headerName: 'Status',",
|
|
66
|
-
"
|
|
67
|
+
" type: 'dsSelectDropdownColumn',",
|
|
67
68
|
' cellRendererParams: {',
|
|
68
69
|
' options: [',
|
|
69
70
|
" { label: 'Active', value: 'active' },",
|
|
@@ -273,7 +274,7 @@ const colDefs = [
|
|
|
273
274
|
{
|
|
274
275
|
field: 'status',
|
|
275
276
|
headerName: 'Status',
|
|
276
|
-
|
|
277
|
+
type: 'dsSelectDropdownColumn',
|
|
277
278
|
cellRendererParams: {
|
|
278
279
|
options: [
|
|
279
280
|
{ label: 'Active', value: 'active' },
|
|
@@ -414,8 +415,7 @@ function SelectDropdownCellRendererExample() {
|
|
|
414
415
|
field: 'status',
|
|
415
416
|
headerName: 'Status',
|
|
416
417
|
flex: 1,
|
|
417
|
-
|
|
418
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
418
|
+
type: 'dsSelectDropdownColumn',
|
|
419
419
|
cellRendererParams: { options: statusOptions },
|
|
420
420
|
},
|
|
421
421
|
]}
|
|
@@ -439,8 +439,7 @@ export default SelectDropdownCellRendererExample;
|
|
|
439
439
|
field: 'status',
|
|
440
440
|
headerName: 'Status',
|
|
441
441
|
flex: 1,
|
|
442
|
-
|
|
443
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
442
|
+
type: 'dsSelectDropdownColumn',
|
|
444
443
|
cellRendererParams: { options: STATUS_OPTIONS },
|
|
445
444
|
},
|
|
446
445
|
]}
|
|
@@ -449,7 +448,7 @@ export default SelectDropdownCellRendererExample;
|
|
|
449
448
|
/>
|
|
450
449
|
),
|
|
451
450
|
},
|
|
452
|
-
'`
|
|
451
|
+
'`type: \'dsSelectDropdownColumn\'` wired up inside a full `Table`. Click a Status dropdown to select a new value — the selection is committed to the row via `node.setDataValue`. Press Enter in a focused Status cell to open the dropdown via keyboard.',
|
|
453
452
|
);
|
|
454
453
|
|
|
455
454
|
const STATUS_BACKGROUND_COLORS: Record<string, string> = {
|
|
@@ -480,8 +479,7 @@ const columnDefs = [
|
|
|
480
479
|
field: 'status',
|
|
481
480
|
headerName: 'Status',
|
|
482
481
|
flex: 1,
|
|
483
|
-
|
|
484
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
482
|
+
type: 'dsSelectDropdownColumn',
|
|
485
483
|
// Per-row params: derive the cell background from the row's current value.
|
|
486
484
|
cellRendererParams: (params) => ({
|
|
487
485
|
options: statusOptions,
|
|
@@ -505,8 +503,7 @@ const columnDefs = [
|
|
|
505
503
|
field: 'status',
|
|
506
504
|
headerName: 'Status',
|
|
507
505
|
flex: 1,
|
|
508
|
-
|
|
509
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
506
|
+
type: 'dsSelectDropdownColumn',
|
|
510
507
|
cellRendererParams: (params: { value?: string }) => ({
|
|
511
508
|
options: STATUS_OPTIONS,
|
|
512
509
|
backgroundColor: params.value ? STATUS_BACKGROUND_COLORS[params.value] : undefined,
|
|
@@ -555,7 +552,7 @@ const columnDefs = [
|
|
|
555
552
|
{
|
|
556
553
|
field: 'english',
|
|
557
554
|
headerName: 'English',
|
|
558
|
-
|
|
555
|
+
type: 'dsSelectDropdownColumn',
|
|
559
556
|
cellRendererParams: {
|
|
560
557
|
options: gradeOptions,
|
|
561
558
|
iconClickOnly: true,
|
|
@@ -583,24 +580,21 @@ const columnDefs = [
|
|
|
583
580
|
field: 'english',
|
|
584
581
|
headerName: 'English',
|
|
585
582
|
flex: 1,
|
|
586
|
-
|
|
587
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
583
|
+
type: 'dsSelectDropdownColumn',
|
|
588
584
|
cellRendererParams: { options: GRADE_OPTIONS, iconClickOnly: true },
|
|
589
585
|
},
|
|
590
586
|
{
|
|
591
587
|
field: 'maths',
|
|
592
588
|
headerName: 'Maths',
|
|
593
589
|
flex: 1,
|
|
594
|
-
|
|
595
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
590
|
+
type: 'dsSelectDropdownColumn',
|
|
596
591
|
cellRendererParams: { options: GRADE_OPTIONS, iconClickOnly: true },
|
|
597
592
|
},
|
|
598
593
|
{
|
|
599
594
|
field: 'science',
|
|
600
595
|
headerName: 'Science',
|
|
601
596
|
flex: 1,
|
|
602
|
-
|
|
603
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
597
|
+
type: 'dsSelectDropdownColumn',
|
|
604
598
|
cellRendererParams: { options: GRADE_OPTIONS, iconClickOnly: true },
|
|
605
599
|
},
|
|
606
600
|
]}
|
|
@@ -648,7 +642,7 @@ const columnDefs = [
|
|
|
648
642
|
{
|
|
649
643
|
field: 'english',
|
|
650
644
|
headerName: 'English',
|
|
651
|
-
|
|
645
|
+
type: 'dsSelectDropdownColumn',
|
|
652
646
|
cellRendererParams: (params) => ({
|
|
653
647
|
options: gradeOptions,
|
|
654
648
|
backgroundColor: GRADE_BACKGROUND_COLORS[params.value],
|
|
@@ -679,8 +673,7 @@ const columnDefs = [
|
|
|
679
673
|
field: 'english',
|
|
680
674
|
headerName: 'English',
|
|
681
675
|
flex: 1,
|
|
682
|
-
|
|
683
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
676
|
+
type: 'dsSelectDropdownColumn',
|
|
684
677
|
cellRendererParams: (params: { value?: string }) => ({
|
|
685
678
|
options: GRADE_OPTIONS,
|
|
686
679
|
backgroundColor: params.value ? GRADE_BACKGROUND_COLORS[params.value] : undefined,
|
|
@@ -693,8 +686,7 @@ const columnDefs = [
|
|
|
693
686
|
field: 'maths',
|
|
694
687
|
headerName: 'Maths',
|
|
695
688
|
flex: 1,
|
|
696
|
-
|
|
697
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
689
|
+
type: 'dsSelectDropdownColumn',
|
|
698
690
|
cellRendererParams: (params: { value?: string }) => ({
|
|
699
691
|
options: GRADE_OPTIONS,
|
|
700
692
|
backgroundColor: params.value ? GRADE_BACKGROUND_COLORS[params.value] : undefined,
|
|
@@ -707,8 +699,7 @@ const columnDefs = [
|
|
|
707
699
|
field: 'science',
|
|
708
700
|
headerName: 'Science',
|
|
709
701
|
flex: 1,
|
|
710
|
-
|
|
711
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
702
|
+
type: 'dsSelectDropdownColumn',
|
|
712
703
|
cellRendererParams: (params: { value?: string }) => ({
|
|
713
704
|
options: GRADE_OPTIONS,
|
|
714
705
|
backgroundColor: params.value ? GRADE_BACKGROUND_COLORS[params.value] : undefined,
|
|
@@ -742,7 +733,7 @@ const columnDefs = [
|
|
|
742
733
|
{
|
|
743
734
|
field: 'status',
|
|
744
735
|
headerName: 'Status',
|
|
745
|
-
|
|
736
|
+
type: 'dsSelectDropdownColumn',
|
|
746
737
|
cellRendererParams: {
|
|
747
738
|
options: statusOptions,
|
|
748
739
|
onCloseAutoFocus: (event) => {
|
|
@@ -767,8 +758,7 @@ const columnDefs = [
|
|
|
767
758
|
field: 'status',
|
|
768
759
|
headerName: 'Status',
|
|
769
760
|
flex: 1,
|
|
770
|
-
|
|
771
|
-
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
761
|
+
type: 'dsSelectDropdownColumn',
|
|
772
762
|
cellRendererParams: {
|
|
773
763
|
options: STATUS_OPTIONS,
|
|
774
764
|
onCloseAutoFocus: (event: Event) => {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type ColDef } from 'ag-grid-community';
|
|
2
|
+
import { ComboboxCellRenderer } from 'Components/table/cellRenderers/ComboboxCellRenderer.js';
|
|
3
|
+
|
|
4
|
+
export const columnTypes: Record<string, ColDef> = {
|
|
5
|
+
dsBooleanColumn: {
|
|
6
|
+
cellRenderer: 'dsBooleanCellRenderer',
|
|
7
|
+
editable: false,
|
|
8
|
+
},
|
|
9
|
+
dsButtonColumn: {
|
|
10
|
+
cellRenderer: 'dsButtonCellRenderer',
|
|
11
|
+
editable: false,
|
|
12
|
+
cellRendererParams: {
|
|
13
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
dsCheckboxColumn: {
|
|
17
|
+
cellRenderer: 'dsCheckboxCellRenderer',
|
|
18
|
+
editable: false,
|
|
19
|
+
cellRendererParams: {
|
|
20
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
dsComboboxColumn: {
|
|
24
|
+
cellRenderer: 'dsComboboxCellRenderer',
|
|
25
|
+
editable: false,
|
|
26
|
+
...ComboboxCellRenderer.colDefDefaults,
|
|
27
|
+
},
|
|
28
|
+
dsDateColumn: {
|
|
29
|
+
cellEditor: 'dsDateCellEditor',
|
|
30
|
+
editable: true,
|
|
31
|
+
valueFormatter: params =>
|
|
32
|
+
params.value instanceof Date
|
|
33
|
+
? params.value.toLocaleDateString('en-GB')
|
|
34
|
+
: params.value,
|
|
35
|
+
},
|
|
36
|
+
dsInlineTextColumn: {
|
|
37
|
+
cellRenderer: 'dsInlineTextCellRenderer',
|
|
38
|
+
editable: false,
|
|
39
|
+
cellRendererParams: {
|
|
40
|
+
suppressCellFocusAndFocusFirstElement: true,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
dsNumberColumn: {
|
|
44
|
+
cellEditor: 'dsNumberCellEditor',
|
|
45
|
+
editable: true,
|
|
46
|
+
},
|
|
47
|
+
dsNumberInputColumn: {
|
|
48
|
+
cellRenderer: 'dsNumberInputCellRenderer',
|
|
49
|
+
editable: false,
|
|
50
|
+
cellRendererParams: { suppressCellFocusAndFocusFirstElement: true },
|
|
51
|
+
},
|
|
52
|
+
dsSelectDropdownColumn: {
|
|
53
|
+
cellRenderer: 'dsSelectDropdownCellRenderer',
|
|
54
|
+
editable: false,
|
|
55
|
+
},
|
|
56
|
+
};
|