@linzjs/step-ag-grid 32.4.2 → 32.6.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.
- package/dist/src/components/gridForm/GridFormTextArea.d.ts +1 -0
- package/dist/src/components/gridForm/GridFormTextInput.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/utils/isChromatic.d.ts +11 -0
- package/dist/step-ag-grid.cjs +40 -12
- package/dist/step-ag-grid.cjs.map +1 -1
- package/dist/step-ag-grid.esm.js +40 -14
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +16 -16
- package/src/components/Grid.tsx +1 -1
- package/src/components/gridForm/GridFormTextArea.tsx +10 -1
- package/src/components/gridForm/GridFormTextInput.tsx +10 -1
- package/src/contexts/GridContextProvider.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/lui/FormError.scss +1 -0
- package/src/stories/components/ActionButton.stories.tsx +0 -1
- package/src/stories/grid/GridCopy.stories.tsx +1 -6
- package/src/stories/grid/GridDragRow.stories.tsx +1 -6
- package/src/stories/grid/GridFilterButtons.stories.tsx +0 -5
- package/src/stories/grid/GridFilterColumnsMultiSelect.stories.tsx +0 -5
- package/src/stories/grid/GridInlineText.stories.tsx +0 -5
- package/src/stories/grid/GridNoRowsOverlay.stories.tsx +0 -5
- package/src/stories/grid/GridNonEditableRow.stories.tsx +0 -5
- package/src/stories/grid/GridPinnedRow.stories.tsx +1 -6
- package/src/stories/grid/GridPopoutContextMenu.stories.tsx +0 -5
- package/src/stories/grid/GridPopoutEditGeneric.stories.tsx +0 -5
- package/src/stories/grid/GridPopoutEditGenericTextArea.stories.tsx +0 -5
- package/src/stories/grid/GridPopoverEditBearing.stories.tsx +0 -5
- package/src/stories/grid/GridPopoverEditDropDown.stories.tsx +0 -5
- package/src/stories/grid/GridPopoverEditMultiSelect.stories.tsx +0 -5
- package/src/stories/grid/GridPopoverEditMultiSelectGrid.stories.tsx +0 -5
- package/src/stories/grid/GridReadOnly.stories.tsx +1 -6
- package/src/stories/grid/GridSorting.stories.tsx +1 -6
- package/src/stories/grid/GridViewList.stories.tsx +1 -6
- package/src/stories/grid/GridViewSelectableList.stories.tsx +1 -6
- package/src/stories/grid/gridAutosize/GridAutoSize.stories.tsx +28 -11
- package/src/stories/grid/gridAutosize/GridFitSize.stories.tsx +27 -11
- package/src/stories/grid/gridAutosize/GridFitSizeFlex.stories.tsx +27 -11
- package/src/stories/grid/gridFormInteraction/GridFormDropDownInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormEditBearingCorrectionInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormEditBearingInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormMultiSelectGridInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormMultiSelectInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormPopoverMenuInteraction.stories.tsx +0 -1
- package/src/stories/grid/gridFormInteraction/GridFormTextAreaInteraction.stories.tsx +67 -13
- package/src/stories/grid/gridFormInteraction/GridFormTextInputInteraction.stories.tsx +69 -15
- package/src/stories/grid/gridFormStatic/GridFormDropDown.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormEditBearing.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormEditBearingCorrection.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormMessage.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormMultiSelect.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormPopoverMenu.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormTextArea.stories.tsx +0 -1
- package/src/stories/grid/gridFormStatic/GridFormTextInput.stories.tsx +0 -1
- package/src/stories/grid/interactions/GridKeyboardInteractions.stories.tsx +0 -5
- package/src/utils/isChromatic.tsx +30 -0
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@linzjs/step-ag-grid",
|
|
3
3
|
"repository": "github:linz/step-ag-grid.git",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "32.
|
|
5
|
+
"version": "32.6.0",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"aggrid",
|
|
8
8
|
"ag-grid",
|
|
@@ -77,17 +77,17 @@
|
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@chromatic-com/storybook": "^5.3.0",
|
|
79
79
|
"@linzjs/lui": "^24.20.0",
|
|
80
|
-
"@linzjs/windows": "^
|
|
80
|
+
"@linzjs/windows": "^15.0.0",
|
|
81
81
|
"@rollup/plugin-commonjs": "^29.0.3",
|
|
82
82
|
"@rollup/plugin-json": "^6.1.0",
|
|
83
83
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
84
84
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
85
|
-
"@storybook/addon-docs": "^10.5.
|
|
86
|
-
"@storybook/addon-links": "^10.5.
|
|
87
|
-
"@storybook/react-vite": "^10.5.
|
|
85
|
+
"@storybook/addon-docs": "^10.5.10",
|
|
86
|
+
"@storybook/addon-links": "^10.5.10",
|
|
87
|
+
"@storybook/react-vite": "^10.5.10",
|
|
88
88
|
"@testing-library/dom": "^10.4.1",
|
|
89
|
-
"@testing-library/react": "
|
|
90
|
-
"@testing-library/user-event": "^14.6.
|
|
89
|
+
"@testing-library/react": "16.3.2",
|
|
90
|
+
"@testing-library/user-event": "^14.6.6",
|
|
91
91
|
"@types/debounce-promise": "^3.1.9",
|
|
92
92
|
"@types/jest": "^30.0.0",
|
|
93
93
|
"@types/jsdom": "^28.0.3",
|
|
@@ -95,29 +95,29 @@
|
|
|
95
95
|
"@types/node": "^24.13.3",
|
|
96
96
|
"@types/react": "^18.3.31",
|
|
97
97
|
"@types/react-dom": "^18.3.7",
|
|
98
|
-
"@vitejs/plugin-react": "
|
|
99
|
-
"@vitest/ui": "^4.1.
|
|
98
|
+
"@vitejs/plugin-react": "6.0.5",
|
|
99
|
+
"@vitest/ui": "^4.1.11",
|
|
100
100
|
"chromatic": "^17.8.0",
|
|
101
101
|
"cross-env": "^10.1.0",
|
|
102
102
|
"husky": "^9.1.7",
|
|
103
103
|
"jsdom": "29.1.1",
|
|
104
104
|
"lodash-es": "^4.18.1",
|
|
105
105
|
"npm-run-all": "^4.1.5",
|
|
106
|
-
"oxfmt": "^0.
|
|
107
|
-
"oxlint": "^1.
|
|
106
|
+
"oxfmt": "^0.64.0",
|
|
107
|
+
"oxlint": "^1.79.0",
|
|
108
108
|
"postcss": "^8.5.26",
|
|
109
109
|
"postcss-scss": "^4.0.9",
|
|
110
110
|
"react": ">=19",
|
|
111
111
|
"react-dom": "^19.2.8",
|
|
112
|
-
"rollup": "
|
|
112
|
+
"rollup": "4.62.5",
|
|
113
113
|
"rollup-plugin-copy": "^3.5.0",
|
|
114
114
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
115
115
|
"rollup-plugin-postcss": "^4.0.2",
|
|
116
|
-
"sass": "^1.
|
|
117
|
-
"storybook": "^10.5.
|
|
116
|
+
"sass": "^1.103.1",
|
|
117
|
+
"storybook": "^10.5.10",
|
|
118
118
|
"typescript": "^7.0.2",
|
|
119
|
-
"vite": "^8.2.
|
|
120
|
-
"vitest": "^4.1.
|
|
119
|
+
"vite": "^8.2.2",
|
|
120
|
+
"vitest": "^4.1.11"
|
|
121
121
|
},
|
|
122
122
|
"husky": {
|
|
123
123
|
"hooks": {
|
package/src/components/Grid.tsx
CHANGED
|
@@ -28,13 +28,13 @@ import {
|
|
|
28
28
|
ValueFormatterParams,
|
|
29
29
|
} from 'ag-grid-community';
|
|
30
30
|
import { AgGridReact } from 'ag-grid-react';
|
|
31
|
-
import isChromatic from 'chromatic/isChromatic';
|
|
32
31
|
import clsx from 'clsx';
|
|
33
32
|
import { defer, delay, difference, isEmpty, last, omit, xorBy } from 'lodash-es';
|
|
34
33
|
import { ReactElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
35
34
|
|
|
36
35
|
import { AutoSizeColumnsResult, StartCellEditingProps, useGridContext } from '../contexts/GridContext';
|
|
37
36
|
import { GridUpdatingContext } from '../contexts/GridUpdatingContext';
|
|
37
|
+
import { isChromatic } from '../utils/isChromatic';
|
|
38
38
|
import { isStorybook } from '../utils/storybook';
|
|
39
39
|
import { useInterval } from '../utils/useInterval';
|
|
40
40
|
import { compareNaturalInsensitive, fnOrVar, isNotEmpty } from '../utils/util';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useFilterCharacters } from '@linzjs/lui';
|
|
1
2
|
import { ReactElement, useCallback, useMemo, useState } from 'react';
|
|
2
3
|
|
|
3
4
|
import { useGridPopoverContext } from '../../contexts/GridPopoverContext';
|
|
@@ -13,6 +14,7 @@ export interface GridFormTextAreaProps<TData extends GridBaseRow>
|
|
|
13
14
|
width?: string | number;
|
|
14
15
|
onSave?: (props: { selectedRows: TData[]; value: string }) => Promise<boolean>;
|
|
15
16
|
helpText?: string;
|
|
17
|
+
disableUnicodeCharacterFilter?: boolean;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export const GridFormTextArea = <TData extends GridBaseRow>(props: GridFormTextAreaProps<TData>): ReactElement => {
|
|
@@ -21,6 +23,8 @@ export const GridFormTextArea = <TData extends GridBaseRow>(props: GridFormTextA
|
|
|
21
23
|
const initValue = useMemo(() => (initialVale == null ? '' : `${initialVale}`), [initialVale]);
|
|
22
24
|
const [value, setValue] = useState(initValue);
|
|
23
25
|
|
|
26
|
+
const { filterInputEvent } = useFilterCharacters();
|
|
27
|
+
|
|
24
28
|
const helpText = props.helpText ?? 'Press tab to save';
|
|
25
29
|
|
|
26
30
|
const invalid = useCallback(() => TextInputValidator(props, value, data, {}), [props, value, data]);
|
|
@@ -53,7 +57,12 @@ export const GridFormTextArea = <TData extends GridBaseRow>(props: GridFormTextA
|
|
|
53
57
|
<div className={'subComponent'} style={{ display: 'flex', flexDirection: 'row', width: props.width ?? 240 }}>
|
|
54
58
|
<TextAreaInput
|
|
55
59
|
value={value}
|
|
56
|
-
onChange={(e) =>
|
|
60
|
+
onChange={(e) => {
|
|
61
|
+
if (!props.disableUnicodeCharacterFilter) {
|
|
62
|
+
filterInputEvent(e);
|
|
63
|
+
}
|
|
64
|
+
setValue(e.target.value);
|
|
65
|
+
}}
|
|
57
66
|
error={invalid()}
|
|
58
67
|
placeholder={props.placeholder ?? 'Type here'}
|
|
59
68
|
helpText={helpText}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useFilterCharacters } from '@linzjs/lui';
|
|
1
2
|
import { useCallback, useMemo, useState } from 'react';
|
|
2
3
|
|
|
3
4
|
import { useGridPopoverContext } from '../../contexts/GridPopoverContext';
|
|
@@ -18,6 +19,7 @@ export interface GridFormTextInputProps<TData extends GridBaseRow>
|
|
|
18
19
|
width?: string | number;
|
|
19
20
|
onSave?: (props: { selectedRows: TData[]; value: string }) => Promise<boolean>;
|
|
20
21
|
helpText?: string;
|
|
22
|
+
disableUnicodeCharacterFilter?: boolean;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export const GridFormTextInput = <TData extends GridBaseRow>(props: GridFormTextInputProps<TData>) => {
|
|
@@ -28,6 +30,8 @@ export const GridFormTextInput = <TData extends GridBaseRow>(props: GridFormText
|
|
|
28
30
|
const initValue = useMemo(() => (initialVale == null ? '' : `${initialVale}`), [initialVale]);
|
|
29
31
|
const [value, setValue] = useState(initValue);
|
|
30
32
|
|
|
33
|
+
const { filterInputEvent } = useFilterCharacters();
|
|
34
|
+
|
|
31
35
|
const invalid = useCallback(() => TextInputValidator<TData>(props, value, data, {}), [data, props, value]);
|
|
32
36
|
|
|
33
37
|
const save = useCallback(
|
|
@@ -61,7 +65,12 @@ export const GridFormTextInput = <TData extends GridBaseRow>(props: GridFormText
|
|
|
61
65
|
<div style={{ display: 'flex', flexDirection: 'row' }} className={'FormTest subComponent'}>
|
|
62
66
|
<TextInputFormatted
|
|
63
67
|
value={value}
|
|
64
|
-
onChange={(e) =>
|
|
68
|
+
onChange={(e) => {
|
|
69
|
+
if (!props.disableUnicodeCharacterFilter) {
|
|
70
|
+
filterInputEvent(e);
|
|
71
|
+
}
|
|
72
|
+
setValue(e.target.value);
|
|
73
|
+
}}
|
|
65
74
|
error={invalid()}
|
|
66
75
|
formatted={props.units}
|
|
67
76
|
style={{ width: props.width ?? 240 }}
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
ProcessCellForExportParams,
|
|
10
10
|
RowNode,
|
|
11
11
|
} from 'ag-grid-community';
|
|
12
|
-
import isChromatic from 'chromatic/isChromatic';
|
|
13
12
|
import debounce from 'debounce-promise';
|
|
14
13
|
import { compact, defer, delay, difference, filter, isEmpty, last, pull, remove, sortBy, sumBy } from 'lodash-es';
|
|
15
14
|
import { PropsWithChildren, ReactElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
@@ -17,6 +16,7 @@ import { PropsWithChildren, ReactElement, useCallback, useContext, useEffect, us
|
|
|
17
16
|
import { agGridSelectRowColId, ColDefT, GridBaseRow } from '../components';
|
|
18
17
|
import { GridCellFillerColId, isGridCellFiller } from '../components/GridCellFiller';
|
|
19
18
|
import { getColId, isFlexColumn } from '../components/gridUtil';
|
|
19
|
+
import { isChromatic } from '../utils/isChromatic';
|
|
20
20
|
import { fnOrVar, isNotEmpty, sanitiseFileName, wait } from '../utils/util';
|
|
21
21
|
import { waitForCondition } from '../utils/waitForCondition';
|
|
22
22
|
import { AutoSizeColumnsProps, AutoSizeColumnsResult, GridContext, GridFilterExternal } from './GridContext';
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './react-menu3/index';
|
|
|
14
14
|
export * from './react-menu3/types';
|
|
15
15
|
export * from './utils/bearing';
|
|
16
16
|
export * from './utils/deferredPromise';
|
|
17
|
+
export * from './utils/isChromatic';
|
|
17
18
|
export * from './utils/textMatcher';
|
|
18
19
|
export * from './utils/textValidator';
|
|
19
20
|
export * from './utils/util';
|
package/src/lui/FormError.scss
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { LuiMessagingContextProvider } from '@linzjs/lui';
|
|
7
2
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
8
3
|
import { useMemo, useState } from 'react';
|
|
@@ -45,7 +40,7 @@ export default {
|
|
|
45
40
|
decorators: [
|
|
46
41
|
(Story) => (
|
|
47
42
|
<LuiMessagingContextProvider version="v2">
|
|
48
|
-
<div style={{
|
|
43
|
+
<div style={{ width: 1024, height: '80vh', display: 'flex', flexDirection: 'column' }}>
|
|
49
44
|
<GridUpdatingContextProvider>
|
|
50
45
|
<GridContextProvider>
|
|
51
46
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useCallback, useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -39,7 +34,7 @@ export default {
|
|
|
39
34
|
},
|
|
40
35
|
decorators: [
|
|
41
36
|
(Story) => (
|
|
42
|
-
<div style={{
|
|
37
|
+
<div style={{ width: 1024, height: 400, display: 'flex', flexDirection: 'column' }}>
|
|
43
38
|
<GridUpdatingContextProvider>
|
|
44
39
|
<GridContextProvider>
|
|
45
40
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import type { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useCallback, useContext, useMemo, useState } from 'react';
|
|
8
3
|
import { expect, screen, userEvent, within } from 'storybook/test';
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { GridPopoverEditDropDown } from '../../components/gridPopoverEdit/GridPopoverEditDropDown';
|
|
8
3
|
import { GridPopoverTextArea } from '../../components/gridPopoverEdit/GridPopoverTextArea';
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -33,7 +28,7 @@ export default {
|
|
|
33
28
|
},
|
|
34
29
|
decorators: [
|
|
35
30
|
(Story) => (
|
|
36
|
-
<div style={{
|
|
31
|
+
<div style={{ width: 1024, height: 260, display: 'flex', flexDirection: 'column' }}>
|
|
37
32
|
<GridUpdatingContextProvider>
|
|
38
33
|
<GridContextProvider>
|
|
39
34
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { ReactElement, useCallback, useContext, useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useCallback, useContext, useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useCallback, useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { isEmpty, partition } from 'lodash-es';
|
|
8
3
|
import { useMemo, useState } from 'react';
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { countBy, mergeWith, pull, range, union } from 'lodash-es';
|
|
8
3
|
import { useMemo, useState } from 'react';
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { ReactElement, useCallback, useMemo, useState } from 'react';
|
|
8
3
|
import { expect, fn, screen, userEvent } from 'storybook/test';
|
|
@@ -51,7 +46,7 @@ export default {
|
|
|
51
46
|
},
|
|
52
47
|
decorators: [
|
|
53
48
|
(Story) => (
|
|
54
|
-
<div style={{
|
|
49
|
+
<div style={{ width: 1024, height: 400, display: 'flex', flexDirection: 'column' }}>
|
|
55
50
|
<GridUpdatingContextProvider>
|
|
56
51
|
<GridContextProvider>
|
|
57
52
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
8
3
|
import { expect } from 'storybook/test';
|
|
@@ -44,7 +39,7 @@ export default {
|
|
|
44
39
|
},
|
|
45
40
|
decorators: [
|
|
46
41
|
(Story) => (
|
|
47
|
-
<div style={{
|
|
42
|
+
<div style={{ width: 1024, height: 400, display: 'flex', flexDirection: 'column' }}>
|
|
48
43
|
<GridUpdatingContextProvider>
|
|
49
44
|
<GridContextProvider>
|
|
50
45
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -29,7 +24,7 @@ export default {
|
|
|
29
24
|
},
|
|
30
25
|
decorators: [
|
|
31
26
|
(Story) => (
|
|
32
|
-
<div style={{
|
|
27
|
+
<div style={{ width: 1024, height: 400, display: 'flex', flexDirection: 'column' }}>
|
|
33
28
|
<GridUpdatingContextProvider>
|
|
34
29
|
<GridContextProvider>
|
|
35
30
|
<Story />
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import '../../styles/GridTheme.scss';
|
|
2
|
-
import '../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
8
3
|
|
|
@@ -29,7 +24,7 @@ export default {
|
|
|
29
24
|
},
|
|
30
25
|
decorators: [
|
|
31
26
|
(Story) => (
|
|
32
|
-
<div style={{
|
|
27
|
+
<div style={{ width: 1024, height: 400, display: 'flex', flexDirection: 'column' }}>
|
|
33
28
|
<GridUpdatingContextProvider>
|
|
34
29
|
<GridContextProvider>
|
|
35
30
|
<Story />
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import '../../../styles/GridTheme.scss';
|
|
2
|
-
import '../../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
3
|
+
import { expect } from 'storybook/test';
|
|
8
4
|
|
|
9
5
|
import { ColDefT, Grid, GridCell, GridContextProvider, GridProps, GridUpdatingContextProvider } from '../../..';
|
|
6
|
+
import { ChromaticAllowGridAutosize } from '../../../utils/isChromatic';
|
|
7
|
+
import { findQuick } from '../../../utils/__tests__/testQuick';
|
|
10
8
|
import { waitForGridReady } from '../../../utils/__tests__/storybookTestUtil';
|
|
11
9
|
import { FormTest, IFormTestRow } from '../FormTest';
|
|
12
10
|
|
|
@@ -19,12 +17,15 @@ export default {
|
|
|
19
17
|
},
|
|
20
18
|
decorators: [
|
|
21
19
|
(Story) => (
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
<div style={{ width: 1024, height: 600, display: 'flex', flexDirection: 'column' }}>
|
|
21
|
+
<GridUpdatingContextProvider>
|
|
22
|
+
<GridContextProvider>
|
|
23
|
+
<Story />
|
|
24
|
+
</GridContextProvider>
|
|
25
|
+
</GridUpdatingContextProvider>
|
|
26
|
+
</div>
|
|
27
27
|
),
|
|
28
|
+
ChromaticAllowGridAutosize,
|
|
28
29
|
],
|
|
29
30
|
} as Meta<typeof Grid>;
|
|
30
31
|
|
|
@@ -81,4 +82,20 @@ const GridPopoutEditGenericTemplate: StoryFn<typeof Grid<IFormTestRow>> = (props
|
|
|
81
82
|
};
|
|
82
83
|
|
|
83
84
|
export const _AutoSize = GridPopoutEditGenericTemplate.bind({});
|
|
84
|
-
_AutoSize.play =
|
|
85
|
+
_AutoSize.play = async (context) => {
|
|
86
|
+
await waitForGridReady(context);
|
|
87
|
+
const { canvasElement } = context;
|
|
88
|
+
|
|
89
|
+
const idHeader = await findQuick({ selector: '.ag-header-cell[col-id="id"]' }, canvasElement);
|
|
90
|
+
const nameHeader = await findQuick({ selector: '.ag-header-cell[col-id="name"]' }, canvasElement);
|
|
91
|
+
const headerViewport = await findQuick({ selector: '.ag-header-viewport' }, canvasElement);
|
|
92
|
+
|
|
93
|
+
const idWidth = idHeader.getBoundingClientRect().width;
|
|
94
|
+
const nameWidth = nameHeader.getBoundingClientRect().width;
|
|
95
|
+
const availableWidth = headerViewport.getBoundingClientRect().width;
|
|
96
|
+
|
|
97
|
+
// id has no flex, so it autosizes to its short content ("Id" / "1000") rather than filling space
|
|
98
|
+
await expect(idWidth).toBeLessThan(150);
|
|
99
|
+
// name has flex: 1, so it flexes to consume all remaining space
|
|
100
|
+
await expect(Math.abs(idWidth + nameWidth - availableWidth)).toBeLessThan(4);
|
|
101
|
+
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import '../../../styles/GridTheme.scss';
|
|
2
|
-
import '../../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
3
|
+
import { expect } from 'storybook/test';
|
|
8
4
|
|
|
9
5
|
import { ColDefT, Grid, GridCell, GridContextProvider, GridProps, GridUpdatingContextProvider } from '../../..';
|
|
6
|
+
import { ChromaticAllowGridAutosize } from '../../../utils/isChromatic';
|
|
7
|
+
import { findQuick } from '../../../utils/__tests__/testQuick';
|
|
10
8
|
import { waitForGridReady } from '../../../utils/__tests__/storybookTestUtil';
|
|
11
9
|
import { FormTest, IFormTestRow } from '../FormTest';
|
|
12
10
|
|
|
@@ -19,12 +17,15 @@ export default {
|
|
|
19
17
|
},
|
|
20
18
|
decorators: [
|
|
21
19
|
(Story) => (
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
<div style={{ width: 1024, height: 600, display: 'flex', flexDirection: 'column' }}>
|
|
21
|
+
<GridUpdatingContextProvider>
|
|
22
|
+
<GridContextProvider>
|
|
23
|
+
<Story />
|
|
24
|
+
</GridContextProvider>
|
|
25
|
+
</GridUpdatingContextProvider>
|
|
26
|
+
</div>
|
|
27
27
|
),
|
|
28
|
+
ChromaticAllowGridAutosize,
|
|
28
29
|
],
|
|
29
30
|
} as Meta<typeof Grid>;
|
|
30
31
|
|
|
@@ -81,4 +82,19 @@ const GridPopoutEditGenericTemplate: StoryFn<typeof Grid<IFormTestRow>> = (props
|
|
|
81
82
|
};
|
|
82
83
|
|
|
83
84
|
export const _FitSize = GridPopoutEditGenericTemplate.bind({});
|
|
84
|
-
_FitSize.play =
|
|
85
|
+
_FitSize.play = async (context) => {
|
|
86
|
+
await waitForGridReady(context);
|
|
87
|
+
const { canvasElement } = context;
|
|
88
|
+
|
|
89
|
+
const idHeader = await findQuick({ selector: '.ag-header-cell[col-id="id"]' }, canvasElement);
|
|
90
|
+
const nameHeader = await findQuick({ selector: '.ag-header-cell[col-id="name"]' }, canvasElement);
|
|
91
|
+
const headerViewport = await findQuick({ selector: '.ag-header-viewport' }, canvasElement);
|
|
92
|
+
|
|
93
|
+
const idWidth = idHeader.getBoundingClientRect().width;
|
|
94
|
+
const nameWidth = nameHeader.getBoundingClientRect().width;
|
|
95
|
+
const availableWidth = headerViewport.getBoundingClientRect().width;
|
|
96
|
+
|
|
97
|
+
// Both columns default to flex: 1 under sizeColumns='fit', so they should split the container evenly
|
|
98
|
+
await expect(Math.abs(idWidth - nameWidth)).toBeLessThanOrEqual(2);
|
|
99
|
+
await expect(Math.abs(idWidth + nameWidth - availableWidth)).toBeLessThanOrEqual(4);
|
|
100
|
+
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import '../../../styles/GridTheme.scss';
|
|
2
|
-
import '../../../styles/index.scss';
|
|
3
|
-
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
|
-
|
|
6
1
|
import { Meta, StoryFn } from '@storybook/react-vite';
|
|
7
2
|
import { useMemo, useState } from 'react';
|
|
3
|
+
import { expect } from 'storybook/test';
|
|
8
4
|
|
|
9
5
|
import { ColDefT, Grid, GridCell, GridContextProvider, GridProps, GridUpdatingContextProvider } from '../../..';
|
|
6
|
+
import { ChromaticAllowGridAutosize } from '../../../utils/isChromatic';
|
|
7
|
+
import { findQuick } from '../../../utils/__tests__/testQuick';
|
|
10
8
|
import { waitForGridReady } from '../../../utils/__tests__/storybookTestUtil';
|
|
11
9
|
import { FormTest, IFormTestRow } from '../FormTest';
|
|
12
10
|
|
|
@@ -19,12 +17,15 @@ export default {
|
|
|
19
17
|
},
|
|
20
18
|
decorators: [
|
|
21
19
|
(Story) => (
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
<div style={{ width: 1024, height: 600, display: 'flex', flexDirection: 'column' }}>
|
|
21
|
+
<GridUpdatingContextProvider>
|
|
22
|
+
<GridContextProvider>
|
|
23
|
+
<Story />
|
|
24
|
+
</GridContextProvider>
|
|
25
|
+
</GridUpdatingContextProvider>
|
|
26
|
+
</div>
|
|
27
27
|
),
|
|
28
|
+
ChromaticAllowGridAutosize,
|
|
28
29
|
],
|
|
29
30
|
} as Meta<typeof Grid>;
|
|
30
31
|
|
|
@@ -83,4 +84,19 @@ const GridPopoutEditGenericTemplate: StoryFn<typeof Grid<IFormTestRow>> = (props
|
|
|
83
84
|
};
|
|
84
85
|
|
|
85
86
|
export const _FitSizeFlex = GridPopoutEditGenericTemplate.bind({});
|
|
86
|
-
_FitSizeFlex.play =
|
|
87
|
+
_FitSizeFlex.play = async (context) => {
|
|
88
|
+
await waitForGridReady(context);
|
|
89
|
+
const { canvasElement } = context;
|
|
90
|
+
|
|
91
|
+
const idHeader = await findQuick({ selector: '.ag-header-cell[col-id="id"]' }, canvasElement);
|
|
92
|
+
const nameHeader = await findQuick({ selector: '.ag-header-cell[col-id="name"]' }, canvasElement);
|
|
93
|
+
const headerViewport = await findQuick({ selector: '.ag-header-viewport' }, canvasElement);
|
|
94
|
+
|
|
95
|
+
const idWidth = idHeader.getBoundingClientRect().width;
|
|
96
|
+
const nameWidth = nameHeader.getBoundingClientRect().width;
|
|
97
|
+
const availableWidth = headerViewport.getBoundingClientRect().width;
|
|
98
|
+
|
|
99
|
+
// id has flex: 2, name has flex: 1, so id should be twice the width of name
|
|
100
|
+
await expect(Math.abs(idWidth - nameWidth * 2)).toBeLessThan(2);
|
|
101
|
+
await expect(Math.abs(idWidth + nameWidth - availableWidth)).toBeLessThan(4);
|
|
102
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import '../../../react-menu3/styles/index.scss';
|
|
2
2
|
import '../../../styles/index.scss';
|
|
3
3
|
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
4
|
|
|
6
5
|
import { StoryFn } from '@storybook/react-vite';
|
|
7
6
|
import { GridPopoverContext } from '../../../contexts/GridPopoverContext';
|
package/src/stories/grid/gridFormInteraction/GridFormEditBearingCorrectionInteraction.stories.tsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import '../../../react-menu3/styles/index.scss';
|
|
2
2
|
import '../../../styles/index.scss';
|
|
3
3
|
import '@linzjs/lui/dist/scss/base.scss';
|
|
4
|
-
import '@linzjs/lui/dist/fonts';
|
|
5
4
|
|
|
6
5
|
import { StoryFn } from '@storybook/react-vite';
|
|
7
6
|
import { GridPopoverContext } from '../../../contexts/GridPopoverContext';
|