@linzjs/step-ag-grid 15.1.3 → 17.0.0

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.
Files changed (127) hide show
  1. package/dist/GridTheme.scss +138 -106
  2. package/dist/index.css +1 -8
  3. package/dist/node_modules/@linzjs/lui/dist/assets/svg-content.d.ts +7 -0
  4. package/dist/src/components/ComponentLoadingWrapper.d.ts +3 -4
  5. package/dist/src/components/Grid.d.ts +2 -2
  6. package/dist/src/components/GridCell.d.ts +6 -6
  7. package/dist/src/components/GridCellMultiEditor.d.ts +2 -2
  8. package/dist/src/components/GridIcon.d.ts +2 -2
  9. package/dist/src/components/GridLoadableCell.d.ts +1 -2
  10. package/dist/src/components/GridNoRowsOverlay.d.ts +5 -4
  11. package/dist/src/components/GridPopoverHook.d.ts +3 -3
  12. package/dist/src/components/GridWrapper.d.ts +2 -3
  13. package/dist/src/components/PostSortRowsHook.d.ts +1 -1
  14. package/dist/src/components/gridFilter/GridFilterButtons.d.ts +2 -2
  15. package/dist/src/components/gridFilter/GridFilterColumnsToggle.d.ts +2 -2
  16. package/dist/src/components/gridFilter/GridFilterDownloadCsvButton.d.ts +1 -2
  17. package/dist/src/components/gridFilter/GridFilterQuick.d.ts +1 -2
  18. package/dist/src/components/gridFilter/GridFilters.d.ts +2 -5
  19. package/dist/src/components/gridForm/GridFormDropDown.d.ts +3 -3
  20. package/dist/src/components/gridForm/GridFormEditBearing.d.ts +1 -2
  21. package/dist/src/components/gridForm/GridFormMessage.d.ts +3 -3
  22. package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +3 -3
  23. package/dist/src/components/gridForm/GridFormPopoverMenu.d.ts +4 -4
  24. package/dist/src/components/gridForm/GridFormSubComponentTextArea.d.ts +2 -2
  25. package/dist/src/components/gridForm/GridFormSubComponentTextInput.d.ts +2 -2
  26. package/dist/src/components/gridForm/GridFormTextArea.d.ts +2 -2
  27. package/dist/src/components/gridForm/GridFormTextInput.d.ts +1 -2
  28. package/dist/src/components/gridHeader/GridHeaderSelect.d.ts +1 -2
  29. package/dist/src/components/gridHook/useGridContextMenu.d.ts +1 -1
  30. package/dist/src/components/gridRender/GridRenderGenericCell.d.ts +2 -2
  31. package/dist/src/components/gridRender/GridRenderPopoutMenuCell.d.ts +1 -2
  32. package/dist/src/contexts/GridContext.d.ts +5 -5
  33. package/dist/src/contexts/GridContextProvider.d.ts +2 -6
  34. package/dist/src/contexts/GridPopoverContextProvider.d.ts +2 -3
  35. package/dist/src/contexts/GridUpdatingContextProvider.d.ts +2 -6
  36. package/dist/src/lui/ActionButton.d.ts +3 -3
  37. package/dist/src/lui/FormError.d.ts +3 -3
  38. package/dist/src/lui/TextAreaInput.d.ts +4 -4
  39. package/dist/src/lui/TextInputFormatted.d.ts +3 -3
  40. package/dist/src/react-menu3/components/ControlledMenu.d.ts +3 -3
  41. package/dist/src/react-menu3/components/FocusableItem.d.ts +4 -4
  42. package/dist/src/react-menu3/components/Menu.d.ts +2 -2
  43. package/dist/src/react-menu3/components/MenuButton.d.ts +1 -1
  44. package/dist/src/react-menu3/components/MenuDivider.d.ts +1 -1
  45. package/dist/src/react-menu3/components/MenuGroup.d.ts +2 -2
  46. package/dist/src/react-menu3/components/MenuHeader.d.ts +2 -2
  47. package/dist/src/react-menu3/components/MenuItem.d.ts +1 -1
  48. package/dist/src/react-menu3/components/MenuList.d.ts +1 -2
  49. package/dist/src/react-menu3/components/MenuRadioGroup.d.ts +2 -2
  50. package/dist/src/react-menu3/components/SubMenu.d.ts +2 -2
  51. package/dist/src/react-menu3/utils/utils.d.ts +1 -1
  52. package/dist/src/react-menu3/utils/withHovering.d.ts +2 -2
  53. package/dist/src/utils/textValidator.d.ts +3 -3
  54. package/dist/step-ag-grid.cjs.js +1007 -3909
  55. package/dist/step-ag-grid.cjs.js.map +1 -1
  56. package/dist/step-ag-grid.esm.js +1008 -3910
  57. package/dist/step-ag-grid.esm.js.map +1 -1
  58. package/package.json +63 -59
  59. package/src/components/ComponentLoadingWrapper.tsx +9 -6
  60. package/src/components/Grid.tsx +32 -27
  61. package/src/components/GridCell.tsx +5 -5
  62. package/src/components/GridCellMultiEditor.tsx +2 -2
  63. package/src/components/GridIcon.tsx +2 -1
  64. package/src/components/GridNoRowsOverlay.tsx +10 -11
  65. package/src/components/GridPopoverHook.tsx +4 -4
  66. package/src/components/GridWrapper.tsx +2 -3
  67. package/src/components/PostSortRowsHook.ts +4 -4
  68. package/src/components/gridFilter/GridFilterButtons.tsx +2 -2
  69. package/src/components/gridFilter/GridFilterColumnsToggle.tsx +2 -2
  70. package/src/components/gridFilter/GridFilters.tsx +4 -6
  71. package/src/components/gridForm/GridFormDropDown.tsx +4 -4
  72. package/src/components/gridForm/GridFormMessage.tsx +3 -3
  73. package/src/components/gridForm/GridFormMultiSelect.tsx +2 -1
  74. package/src/components/gridForm/GridFormPopoverMenu.tsx +4 -4
  75. package/src/components/gridForm/GridFormSubComponentTextArea.tsx +2 -2
  76. package/src/components/gridForm/GridFormSubComponentTextInput.tsx +2 -2
  77. package/src/components/gridForm/GridFormTextArea.tsx +2 -2
  78. package/src/components/gridPopoverEdit/GridPopoverMessage.ts +1 -1
  79. package/src/components/gridRender/GridRenderGenericCell.tsx +2 -1
  80. package/src/contexts/GridContext.tsx +5 -5
  81. package/src/contexts/GridContextProvider.tsx +57 -32
  82. package/src/contexts/GridPopoverContextProvider.tsx +2 -3
  83. package/src/contexts/GridUpdatingContextProvider.tsx +2 -6
  84. package/src/lui/ActionButton.tsx +4 -3
  85. package/src/lui/FormError.tsx +3 -1
  86. package/src/lui/TextAreaInput.tsx +3 -3
  87. package/src/lui/TextInputFormatted.tsx +5 -4
  88. package/src/lui/reactUtils.test.tsx +7 -6
  89. package/src/react-menu3/components/FocusableItem.tsx +2 -2
  90. package/src/react-menu3/utils/utils.ts +1 -1
  91. package/src/react-menu3/utils/withHovering.tsx +2 -2
  92. package/src/stories/components/ActionButton.stories.tsx +2 -1
  93. package/src/stories/grid/FormTest.tsx +4 -3
  94. package/src/stories/grid/GridFilterButtons.stories.tsx +13 -16
  95. package/src/stories/grid/GridNoRowsOverlay.stories.tsx +14 -11
  96. package/src/stories/grid/GridNonEditableRow.stories.tsx +13 -5
  97. package/src/stories/grid/GridPopoutContextMenu.stories.tsx +12 -4
  98. package/src/stories/grid/GridPopoutEditGeneric.stories.tsx +12 -4
  99. package/src/stories/grid/GridPopoutEditGenericTextArea.stories.tsx +13 -5
  100. package/src/stories/grid/GridPopoverEditBearing.stories.tsx +11 -3
  101. package/src/stories/grid/GridPopoverEditDropDown.stories.tsx +11 -3
  102. package/src/stories/grid/GridPopoverEditMultiSelect.stories.tsx +11 -3
  103. package/src/stories/grid/GridPopoverEditMultiSelectGrid.stories.tsx +12 -3
  104. package/src/stories/grid/GridReadOnly.stories.tsx +22 -5
  105. package/src/stories/grid/gridFormInteraction/GridFormDropDownInteraction.stories.tsx +15 -12
  106. package/src/stories/grid/gridFormInteraction/GridFormEditBearingCorrectionInteraction.stories.tsx +20 -12
  107. package/src/stories/grid/gridFormInteraction/GridFormEditBearingInteraction.stories.tsx +20 -12
  108. package/src/stories/grid/gridFormInteraction/GridFormMultiSelectGridInteraction.stories.tsx +13 -10
  109. package/src/stories/grid/gridFormInteraction/GridFormMultiSelectInteraction.stories.tsx +19 -16
  110. package/src/stories/grid/gridFormInteraction/GridFormPopoverMenuInteraction.stories.tsx +21 -17
  111. package/src/stories/grid/gridFormInteraction/GridFormTextAreaInteraction.stories.tsx +13 -10
  112. package/src/stories/grid/gridFormInteraction/GridFormTextInputInteraction.stories.tsx +15 -12
  113. package/src/stories/grid/gridFormStatic/GridFormDropDown.stories.tsx +5 -2
  114. package/src/stories/grid/gridFormStatic/GridFormEditBearing.stories.tsx +5 -2
  115. package/src/stories/grid/gridFormStatic/GridFormEditBearingCorrection.stories.tsx +5 -2
  116. package/src/stories/grid/gridFormStatic/GridFormMessage.stories.tsx +6 -3
  117. package/src/stories/grid/gridFormStatic/GridFormMultiSelect.stories.tsx +4 -1
  118. package/src/stories/grid/gridFormStatic/GridFormPopoverMenu.stories.tsx +4 -1
  119. package/src/stories/grid/gridFormStatic/GridFormTextArea.stories.tsx +5 -2
  120. package/src/stories/grid/gridFormStatic/GridFormTextInput.stories.tsx +5 -2
  121. package/src/stories/grid/interactions/GridKeyboardInteractions.stories.tsx +25 -12
  122. package/src/stories/react-menu/ReactMenu.stories.tsx +6 -4
  123. package/src/styles/ComponentLoadingWrapper.scss +1 -4
  124. package/src/styles/Grid.scss +0 -4
  125. package/src/styles/GridTheme.scss +138 -106
  126. package/src/utils/testUtil.ts +3 -0
  127. package/src/utils/textValidator.ts +3 -1
@@ -1,11 +1,12 @@
1
+ import "@linzjs/lui/dist/scss/base.scss";
2
+
1
3
  import { expect } from "@storybook/jest";
2
4
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
3
5
  import { within } from "@storybook/testing-library";
4
6
 
5
7
  import "@linzjs/lui/dist/fonts";
6
- import "@linzjs/lui/dist/scss/base.scss";
7
8
 
8
- import { GridNoRowsOverlay } from "../../components";
9
+ import { GridNoRowsOverlay, GridNoRowsOverlayProps } from "../../components";
9
10
 
10
11
  export default {
11
12
  title: "Components / Grids / GridNoRowsOverlay",
@@ -13,24 +14,26 @@ export default {
13
14
  args: {},
14
15
  } as ComponentMeta<typeof GridNoRowsOverlay>;
15
16
 
16
- const GridNoRowsOverlayTemplate: ComponentStory<typeof GridNoRowsOverlay> = (params) => {
17
+ const GridNoRowsOverlayTemplate: ComponentStory<typeof GridNoRowsOverlay> = (params: GridNoRowsOverlayProps) => {
17
18
  return <GridNoRowsOverlay {...params} />;
18
19
  };
19
20
 
20
- export const GridNoRowsEmpty = GridNoRowsOverlayTemplate.bind({});
21
- GridNoRowsEmpty.args = {
22
- rowData: [],
21
+ export const _GridNoRowsEmpty = GridNoRowsOverlayTemplate.bind({});
22
+ _GridNoRowsEmpty.args = {
23
+ rowCount: 0,
24
+ filteredRowCount: 0,
23
25
  };
24
- GridNoRowsEmpty.play = async ({ canvasElement }) => {
26
+ _GridNoRowsEmpty.play = async ({ canvasElement }) => {
25
27
  const canvas = within(canvasElement);
26
28
  expect(await canvas.findByText("There are currently no rows")).toBeInTheDocument();
27
29
  };
28
30
 
29
- export const GridNoRowsFiltered = GridNoRowsOverlayTemplate.bind({});
30
- GridNoRowsFiltered.args = {
31
- rowData: [{}],
31
+ export const _GridNoRowsFiltered = GridNoRowsOverlayTemplate.bind({});
32
+ _GridNoRowsFiltered.args = {
33
+ rowCount: 1,
34
+ filteredRowCount: 0,
32
35
  };
33
- GridNoRowsFiltered.play = async ({ canvasElement }) => {
36
+ _GridNoRowsFiltered.play = async ({ canvasElement }) => {
34
37
  const canvas = within(canvasElement);
35
38
  expect(await canvas.findByText("All rows have been filtered")).toBeInTheDocument();
36
39
  };
@@ -1,11 +1,16 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { ColDef } from "ag-grid-community";
3
9
  import { GridPopoverEditDropDown } from "components/gridPopoverEdit/GridPopoverEditDropDown";
4
10
  import { GridPopoverTextArea } from "components/gridPopoverEdit/GridPopoverTextArea";
5
11
  import { useMemo, useState } from "react";
6
12
 
7
13
  import "@linzjs/lui/dist/fonts";
8
- import "@linzjs/lui/dist/scss/base.scss";
9
14
 
10
15
  import {
11
16
  ColDefT,
@@ -20,8 +25,6 @@ import {
20
25
  MenuOption,
21
26
  wait,
22
27
  } from "../..";
23
- import "../../styles/GridTheme.scss";
24
- import "../../styles/index.scss";
25
28
 
26
29
  export default {
27
30
  title: "Components / Grids",
@@ -175,5 +178,10 @@ const GridNonEditableRowTemplate: ComponentStory<typeof Grid> = (props: GridProp
175
178
  );
176
179
  };
177
180
 
178
- export const NonEditableRow = GridNonEditableRowTemplate.bind({});
179
- NonEditableRow.args = { autoSelectFirstRow: true, selectable: true };
181
+ export const _NonEditableRow = GridNonEditableRowTemplate.bind({});
182
+ _NonEditableRow.args = { autoSelectFirstRow: true, selectable: true };
183
+ _NonEditableRow.play = async ({ canvasElement }) => {
184
+ await waitFor(() => {
185
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
186
+ });
187
+ };
@@ -1,8 +1,13 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { ReactElement, useCallback, useContext, useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import {
8
13
  ActionButton,
@@ -17,8 +22,6 @@ import {
17
22
  MenuItem,
18
23
  wait,
19
24
  } from "../..";
20
- import "../../styles/GridTheme.scss";
21
- import "../../styles/index.scss";
22
25
  import { IFormTestRow } from "./FormTest";
23
26
 
24
27
  export default {
@@ -133,4 +136,9 @@ const GridPopoutContextMenuTemplate: ComponentStory<typeof Grid> = (props: GridP
133
136
  );
134
137
  };
135
138
 
136
- export const EditContextMenu = GridPopoutContextMenuTemplate.bind({});
139
+ export const _EditContextMenu = GridPopoutContextMenuTemplate.bind({});
140
+ _EditContextMenu.play = async ({ canvasElement }) => {
141
+ await waitFor(() => {
142
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
143
+ });
144
+ };
@@ -1,12 +1,15 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import { ColDefT, Grid, GridCell, GridContextProvider, GridProps, GridUpdatingContextProvider } from "../..";
8
- import "../../styles/GridTheme.scss";
9
- import "../../styles/index.scss";
10
13
  import { FormTest, IFormTestRow } from "./FormTest";
11
14
 
12
15
  export default {
@@ -69,4 +72,9 @@ const GridPopoutEditGenericTemplate: ComponentStory<typeof Grid> = (props: GridP
69
72
  );
70
73
  };
71
74
 
72
- export const EditGeneric = GridPopoutEditGenericTemplate.bind({});
75
+ export const _EditGeneric = GridPopoutEditGenericTemplate.bind({});
76
+ _EditGeneric.play = async ({ canvasElement }) => {
77
+ await waitFor(() => {
78
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
79
+ });
80
+ };
@@ -1,8 +1,13 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { useCallback, useContext, useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import {
8
13
  ActionButton,
@@ -23,8 +28,6 @@ import {
23
28
  isFloat,
24
29
  wait,
25
30
  } from "../..";
26
- import "../../styles/GridTheme.scss";
27
- import "../../styles/index.scss";
28
31
  import { IFormTestRow } from "./FormTest";
29
32
 
30
33
  export default {
@@ -172,7 +175,7 @@ const GridPopoutEditGenericTemplate: ComponentStory<typeof Grid> = (props: GridP
172
175
  {
173
176
  label: "Delete",
174
177
  action: async ({ selectedRows }) => {
175
- await wait(1500);
178
+ await wait(1000);
176
179
  setRowData(rowData.filter((data) => !selectedRows.some((row) => row.id == data.id)));
177
180
  },
178
181
  },
@@ -224,4 +227,9 @@ const GridPopoutEditGenericTemplate: ComponentStory<typeof Grid> = (props: GridP
224
227
  );
225
228
  };
226
229
 
227
- export const EditGenericTextArea = GridPopoutEditGenericTemplate.bind({});
230
+ export const _EditGenericTextArea = GridPopoutEditGenericTemplate.bind({});
231
+ _EditGenericTextArea.play = async ({ canvasElement }) => {
232
+ await waitFor(() => {
233
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
234
+ });
235
+ };
@@ -1,8 +1,13 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import {
8
13
  ColDefT,
@@ -20,8 +25,6 @@ import {
20
25
  GridWrapper,
21
26
  wait,
22
27
  } from "../..";
23
- import "../../styles/GridTheme.scss";
24
- import "../../styles/index.scss";
25
28
 
26
29
  export default {
27
30
  title: "Components / Grids",
@@ -121,3 +124,8 @@ const GridPopoverEditBearingTemplate: ComponentStory<typeof Grid> = (props: Grid
121
124
  };
122
125
 
123
126
  export const _GridPopoverEditBearing = GridPopoverEditBearingTemplate.bind({});
127
+ _GridPopoverEditBearing.play = async ({ canvasElement }) => {
128
+ await waitFor(() => {
129
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
130
+ });
131
+ };
@@ -1,8 +1,13 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { useCallback, useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import {
8
13
  ColDefT,
@@ -25,8 +30,6 @@ import {
25
30
  MenuSeparatorString,
26
31
  wait,
27
32
  } from "../..";
28
- import "../../styles/GridTheme.scss";
29
- import "../../styles/index.scss";
30
33
 
31
34
  export default {
32
35
  title: "Components / Grids",
@@ -313,3 +316,8 @@ const GridEditDropDownTemplate: ComponentStory<typeof Grid> = (props: GridProps)
313
316
  };
314
317
 
315
318
  export const EditDropdown = GridEditDropDownTemplate.bind({});
319
+ EditDropdown.play = async ({ canvasElement }) => {
320
+ await waitFor(() => {
321
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
322
+ });
323
+ };
@@ -1,9 +1,14 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { isEmpty, partition } from "lodash-es";
3
9
  import { useMemo, useState } from "react";
4
10
 
5
11
  import "@linzjs/lui/dist/fonts";
6
- import "@linzjs/lui/dist/scss/base.scss";
7
12
 
8
13
  import {
9
14
  ColDefT,
@@ -18,8 +23,6 @@ import {
18
23
  MultiSelectOption,
19
24
  wait,
20
25
  } from "../..";
21
- import "../../styles/GridTheme.scss";
22
- import "../../styles/index.scss";
23
26
 
24
27
  export default {
25
28
  title: "Components / Grids",
@@ -193,3 +196,8 @@ const GridEditMultiSelectTemplate: ComponentStory<typeof Grid> = (props: GridPro
193
196
  };
194
197
 
195
198
  export const EditMultiSelect = GridEditMultiSelectTemplate.bind({});
199
+ EditMultiSelect.play = async ({ canvasElement }) => {
200
+ await waitFor(() => {
201
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
202
+ });
203
+ };
@@ -1,15 +1,19 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
7
+ import { waitFor } from "@storybook/testing-library";
2
8
  import { countBy, mergeWith, pull, range, union } from "lodash-es";
3
9
  import { useMemo, useState } from "react";
4
10
 
5
11
  import "@linzjs/lui/dist/fonts";
6
- import "@linzjs/lui/dist/scss/base.scss";
7
12
 
8
13
  import { ColDefT, Grid, GridCell, GridContextProvider, GridProps, GridUpdatingContextProvider } from "../..";
9
14
  import { MultiSelectGridOption } from "../../components/gridForm/GridFormMultiSelectGrid";
10
15
  import { GridPopoutEditMultiSelectGrid } from "../../components/gridPopoverEdit/GridPopoutEditMultiSelectGrid";
11
- import "../../styles/GridTheme.scss";
12
- import "../../styles/index.scss";
16
+ import { EditMultiSelect } from "./GridPopoverEditMultiSelect.stories";
13
17
 
14
18
  export default {
15
19
  title: "Components / Grids",
@@ -107,3 +111,8 @@ const GridEditMultiSelectGridTemplate: ComponentStory<typeof Grid> = (props: Gri
107
111
  };
108
112
 
109
113
  export const EditMultiSelectGrid = GridEditMultiSelectGridTemplate.bind({});
114
+ EditMultiSelect.play = async ({ canvasElement }) => {
115
+ await waitFor(() => {
116
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
117
+ });
118
+ };
@@ -1,8 +1,13 @@
1
+ import "../../styles/GridTheme.scss";
2
+ import "../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
5
+ import { expect } from "@storybook/jest";
1
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
2
- import { useCallback, useMemo, useState } from "react";
7
+ import { waitFor } from "@storybook/testing-library";
8
+ import { ReactElement, useCallback, useMemo, useState } from "react";
3
9
 
4
10
  import "@linzjs/lui/dist/fonts";
5
- import "@linzjs/lui/dist/scss/base.scss";
6
11
 
7
12
  import {
8
13
  ColDefT,
@@ -26,8 +31,6 @@ import {
26
31
  import { GridFilterColumnsToggle } from "../../components";
27
32
  import { GridFilterDownloadCsvButton } from "../../components";
28
33
  import { GridCellFiller } from "../../components/GridCellFiller";
29
- import "../../styles/GridTheme.scss";
30
- import "../../styles/index.scss";
31
34
 
32
35
  export default {
33
36
  title: "Components / Grids",
@@ -39,6 +42,14 @@ export default {
39
42
  selectable: false,
40
43
  rowSelection: "single",
41
44
  },
45
+ // Storybook hangs otherwise
46
+ parameters: {
47
+ docs: {
48
+ source: {
49
+ type: "code",
50
+ },
51
+ },
52
+ },
42
53
  decorators: [
43
54
  (Story) => (
44
55
  <div style={{ maxWidth: 1024, height: 400, display: "flex", flexDirection: "column" }}>
@@ -118,6 +129,7 @@ const GridReadOnlyTemplate: ComponentStory<typeof Grid> = (props: GridProps) =>
118
129
  GridCell({
119
130
  headerName: "Custom edit",
120
131
  editable: true,
132
+ flex: 1,
121
133
  valueFormatter: () => "Press E",
122
134
  cellRendererParams: {
123
135
  rightHoverElement: (
@@ -240,7 +252,7 @@ const GridReadOnlyTemplate: ComponentStory<typeof Grid> = (props: GridProps) =>
240
252
  );
241
253
  };
242
254
 
243
- const GridFilterLessThan = (props: { field: keyof ITestRow; text: string }): JSX.Element => {
255
+ const GridFilterLessThan = (props: { field: keyof ITestRow; text: string }): ReactElement => {
244
256
  const [value, setValue] = useState<number>();
245
257
 
246
258
  const filter = useCallback(
@@ -268,3 +280,8 @@ const GridFilterLessThan = (props: { field: keyof ITestRow; text: string }): JSX
268
280
  };
269
281
 
270
282
  export const ReadOnlySingleSelection = GridReadOnlyTemplate.bind({});
283
+ ReadOnlySingleSelection.play = async ({ canvasElement }) => {
284
+ await waitFor(() => {
285
+ expect(canvasElement.querySelector(".Grid-ready")).toBeInTheDocument();
286
+ });
287
+ };
@@ -1,3 +1,7 @@
1
+ import "../../../react-menu3/styles/index.scss";
2
+ import "../../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
1
5
  import { expect, jest } from "@storybook/jest";
2
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
3
7
  import { userEvent, within } from "@storybook/testing-library";
@@ -5,7 +9,6 @@ import { GridPopoverContext, GridPopoverContextType } from "contexts/GridPopover
5
9
  import { useRef } from "react";
6
10
 
7
11
  import "@linzjs/lui/dist/fonts";
8
- import "@linzjs/lui/dist/scss/base.scss";
9
12
 
10
13
  import {
11
14
  GridContextProvider,
@@ -29,7 +32,7 @@ const onSelectedItem = jest
29
32
  .fn<Promise<void>, [GridPopoutEditDropDownSelectedItem<any>]>()
30
33
  .mockImplementation(async () => undefined);
31
34
 
32
- const Template: ComponentStory<typeof GridFormDropDown> = (props) => {
35
+ const Template: ComponentStory<typeof GridFormDropDown> = (props: GridFormDropDownProps<any>) => {
33
36
  const config: GridFormDropDownProps<any> = {
34
37
  filtered: "local",
35
38
  onSelectedItem,
@@ -82,7 +85,7 @@ GridFormDropDownInteractions_.play = async ({ canvasElement }) => {
82
85
  const enabledMenuOption = await getOption("Enabled");
83
86
  expect(enabledMenuOption).toBeInTheDocument();
84
87
 
85
- userEvent.click(enabledMenuOption);
88
+ await userEvent.click(enabledMenuOption);
86
89
  expect(updateValue).toHaveBeenCalled();
87
90
  expect(onSelectedItem).toHaveBeenCalled();
88
91
 
@@ -90,7 +93,7 @@ GridFormDropDownInteractions_.play = async ({ canvasElement }) => {
90
93
  updateValue.mockClear();
91
94
  onSelectedItem.mockClear();
92
95
  const disabledMenuOption = await getOption("Disabled");
93
- userEvent.click(disabledMenuOption);
96
+ await userEvent.click(disabledMenuOption);
94
97
  expect(updateValue).not.toHaveBeenCalled();
95
98
  expect(onSelectedItem).not.toHaveBeenCalled();
96
99
 
@@ -100,38 +103,38 @@ GridFormDropDownInteractions_.play = async ({ canvasElement }) => {
100
103
 
101
104
  expect(canvas.queryByPlaceholderText("Text input")).not.toBeInTheDocument();
102
105
 
103
- userEvent.click(subTextInput);
106
+ await userEvent.click(subTextInput);
104
107
  const textInput = await canvas.findByPlaceholderText("Text input");
105
108
  expect(textInput).toBeInTheDocument();
106
109
  expect(await canvas.findByText("Must not be empty")).toBeInTheDocument();
107
110
 
108
- userEvent.type(textInput, "Hello");
111
+ await userEvent.type(textInput, "Hello");
109
112
  expect(await canvas.findByText("Press enter or tab to save")).toBeInTheDocument();
110
113
 
111
114
  // Test tab to save
112
115
  updateValue.mockClear();
113
- userEvent.tab();
116
+ await userEvent.tab();
114
117
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), 1); // 1 = Tab
115
118
 
116
119
  // Test shift+tab to save
117
120
  updateValue.mockClear();
118
- userEvent.tab({ shift: true });
121
+ await userEvent.tab({ shift: true });
119
122
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), -1); // -1 = Shift + tab
120
123
 
121
124
  // Test escape to not save
122
125
  updateValue.mockClear();
123
- userEvent.type(textInput, "{Escape}");
126
+ await userEvent.type(textInput, "{Escape}");
124
127
  expect(updateValue).not.toHaveBeenCalled();
125
128
 
126
129
  // Test invalid value doesn't save
127
130
  updateValue.mockClear();
128
- userEvent.clear(textInput);
129
- userEvent.type(textInput, "{Enter}");
131
+ await userEvent.clear(textInput);
132
+ await userEvent.type(textInput, "{Enter}");
130
133
  expect(updateValue).not.toHaveBeenCalled();
131
134
 
132
135
  // Test filter
133
136
  const filterText = await canvas.findByPlaceholderText("Filter...");
134
- userEvent.type(filterText, "ena");
137
+ await userEvent.type(filterText, "ena");
135
138
  expect(canvas.queryByText("Enabled")).toBeInTheDocument();
136
139
  expect(canvas.queryByText("Disabled")).not.toBeInTheDocument();
137
140
  expect(canvas.queryByText("Sub menu...")).not.toBeInTheDocument();
@@ -1,3 +1,7 @@
1
+ import "../../../react-menu3/styles/index.scss";
2
+ import "../../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
1
5
  import { expect, jest } from "@storybook/jest";
2
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
3
7
  import { userEvent, within } from "@storybook/testing-library";
@@ -5,9 +9,13 @@ import { GridPopoverContext, GridPopoverContextType } from "contexts/GridPopover
5
9
  import { useRef } from "react";
6
10
 
7
11
  import "@linzjs/lui/dist/fonts";
8
- import "@linzjs/lui/dist/scss/base.scss";
9
12
 
10
- import { GridContextProvider, GridFormEditBearing, GridPopoverEditBearingCorrectionEditorParams } from "../../..";
13
+ import {
14
+ GridContextProvider,
15
+ GridFormEditBearing,
16
+ GridFormEditBearingProps,
17
+ GridPopoverEditBearingCorrectionEditorParams,
18
+ } from "../../..";
11
19
 
12
20
  export default {
13
21
  title: "GridForm / Interactions",
@@ -17,7 +25,7 @@ export default {
17
25
 
18
26
  const updateValue = jest.fn();
19
27
 
20
- const Template: ComponentStory<typeof GridFormEditBearing> = (props) => {
28
+ const Template: ComponentStory<typeof GridFormEditBearing> = (props: GridFormEditBearingProps<any>) => {
21
29
  const anchorRef = useRef<HTMLHeadingElement>(null);
22
30
 
23
31
  return (
@@ -53,39 +61,39 @@ GridFormEditBearingCorrectionInteractions_.play = async ({ canvasElement }) => {
53
61
 
54
62
  // Test formatting a bearing
55
63
  expect(inputField).toBeInTheDocument();
56
- userEvent.type(inputField, "1.2345");
64
+ await userEvent.type(inputField, "1.2345");
57
65
  expect(await canvas.findByText("+1° 23' 45\"")).toBeInTheDocument();
58
66
 
59
67
  // Test enter to save
60
68
  updateValue.mockClear();
61
- userEvent.type(inputField, "{Enter}");
69
+ await userEvent.type(inputField, "{Enter}");
62
70
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), 0); // 0 = Enter
63
71
 
64
72
  // Test tab to save
65
73
  updateValue.mockClear();
66
- userEvent.tab();
74
+ await userEvent.tab();
67
75
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), 1); // 1 = Tab
68
76
 
69
77
  // Test shift+tab to save
70
78
  updateValue.mockClear();
71
- userEvent.tab({ shift: true });
79
+ await userEvent.tab({ shift: true });
72
80
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), -1); // -1 = Shift + tab
73
81
 
74
82
  // Test escape not to save
75
83
  updateValue.mockClear();
76
- userEvent.type(inputField, "{Escape}");
84
+ await userEvent.type(inputField, "{Escape}");
77
85
  expect(updateValue).not.toHaveBeenCalled();
78
86
 
79
87
  // Test invalid value doesn't save
80
88
  updateValue.mockClear();
81
- userEvent.type(inputField, "xxx");
89
+ await userEvent.type(inputField, "xxx");
82
90
  expect(await canvas.findByText("?")).toBeInTheDocument();
83
91
 
84
92
  expect(canvas.getByText("Bearing must be a number in D.MMSSS format")).toBeInTheDocument();
85
- userEvent.type(inputField, "{Enter}");
93
+ await userEvent.type(inputField, "{Enter}");
86
94
  expect(updateValue).not.toHaveBeenCalled();
87
- userEvent.tab();
95
+ await userEvent.tab();
88
96
  expect(updateValue).not.toHaveBeenCalled();
89
- userEvent.tab({ shift: true });
97
+ await userEvent.tab({ shift: true });
90
98
  expect(updateValue).not.toHaveBeenCalled();
91
99
  };
@@ -1,3 +1,7 @@
1
+ import "../../../react-menu3/styles/index.scss";
2
+ import "../../../styles/index.scss";
3
+ import "@linzjs/lui/dist/scss/base.scss";
4
+
1
5
  import { expect, jest } from "@storybook/jest";
2
6
  import { ComponentMeta, ComponentStory } from "@storybook/react/dist/ts3.9/client/preview/types-6-3";
3
7
  import { userEvent, within } from "@storybook/testing-library";
@@ -5,9 +9,13 @@ import { GridPopoverContext, GridPopoverContextType } from "contexts/GridPopover
5
9
  import { useRef } from "react";
6
10
 
7
11
  import "@linzjs/lui/dist/fonts";
8
- import "@linzjs/lui/dist/scss/base.scss";
9
12
 
10
- import { GridContextProvider, GridFormEditBearing, GridPopoverEditBearingEditorParams } from "../../..";
13
+ import {
14
+ GridContextProvider,
15
+ GridFormEditBearing,
16
+ GridFormEditBearingProps,
17
+ GridPopoverEditBearingEditorParams,
18
+ } from "../../..";
11
19
 
12
20
  export default {
13
21
  title: "GridForm / Interactions",
@@ -17,7 +25,7 @@ export default {
17
25
 
18
26
  const updateValue = jest.fn();
19
27
 
20
- const Template: ComponentStory<typeof GridFormEditBearing> = (props) => {
28
+ const Template: ComponentStory<typeof GridFormEditBearing> = (props: GridFormEditBearingProps<any>) => {
21
29
  const anchorRef = useRef<HTMLHeadingElement>(null);
22
30
 
23
31
  return (
@@ -53,38 +61,38 @@ GridFormEditBearingInteractions_.play = async ({ canvasElement }) => {
53
61
 
54
62
  // Test formatting a bearing
55
63
  expect(inputField).toBeInTheDocument();
56
- userEvent.type(inputField, "1.2345");
64
+ await userEvent.type(inputField, "1.2345");
57
65
  expect(await canvas.findByText("1° 23' 45\"")).toBeInTheDocument();
58
66
 
59
67
  // Test enter to save
60
68
  updateValue.mockClear();
61
- userEvent.type(inputField, "{Enter}");
69
+ await userEvent.type(inputField, "{Enter}");
62
70
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), 0); // 0 = Enter
63
71
 
64
72
  // Test tab to save
65
73
  updateValue.mockClear();
66
- userEvent.tab();
74
+ await userEvent.tab();
67
75
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), 1); // 1 = Tab
68
76
 
69
77
  // Test shift+tab to save
70
78
  updateValue.mockClear();
71
- userEvent.tab({ shift: true });
79
+ await userEvent.tab({ shift: true });
72
80
  expect(updateValue).toHaveBeenCalledWith(expect.anything(), -1); // -1 = Shift + tab
73
81
 
74
82
  // Test escape not to save
75
83
  updateValue.mockClear();
76
- userEvent.type(inputField, "{Escape}");
84
+ await userEvent.type(inputField, "{Escape}");
77
85
  expect(updateValue).not.toHaveBeenCalled();
78
86
 
79
87
  // Test invalid value doesn't save
80
88
  updateValue.mockClear();
81
- userEvent.type(inputField, "xxx");
89
+ await userEvent.type(inputField, "xxx");
82
90
  expect(await canvas.findByText("?")).toBeInTheDocument();
83
91
  expect(canvas.getByText("Bearing must be a number in D.MMSSS format")).toBeInTheDocument();
84
- userEvent.type(inputField, "{Enter}");
92
+ await userEvent.type(inputField, "{Enter}");
85
93
  expect(updateValue).not.toHaveBeenCalled();
86
- userEvent.tab();
94
+ await userEvent.tab();
87
95
  expect(updateValue).not.toHaveBeenCalled();
88
- userEvent.tab({ shift: true });
96
+ await userEvent.tab({ shift: true });
89
97
  expect(updateValue).not.toHaveBeenCalled();
90
98
  };