@linzjs/step-ag-grid 23.0.1 → 25.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.
- package/dist/GridTheme.scss +1 -1
- package/dist/index.css +0 -13
- package/dist/src/components/ComponentLoadingWrapper.d.ts +1 -1
- package/dist/src/components/Grid.d.ts +17 -17
- package/dist/src/components/GridCell.d.ts +9 -9
- package/dist/src/components/GridCellFiller.d.ts +2 -2
- package/dist/src/components/GridCellMultiEditor.d.ts +6 -6
- package/dist/src/components/GridCellMultiSelectClassRules.d.ts +1 -1
- package/dist/src/components/GridIcon.d.ts +2 -2
- package/dist/src/components/GridNoRowsOverlay.d.ts +1 -1
- package/dist/src/components/GridPopoverHook.d.ts +2 -2
- package/dist/src/components/GridWrapper.d.ts +1 -1
- package/dist/src/components/PostSortRowsHook.d.ts +1 -1
- package/dist/src/components/clickInputWhenContainingCellClicked.d.ts +1 -1
- package/dist/src/components/gridFilter/GridFilterButtons.d.ts +5 -5
- package/dist/src/components/gridFilter/GridFilterColumnsToggle.d.ts +1 -1
- package/dist/src/components/gridFilter/GridFilterDownloadCsvButton.d.ts +1 -1
- package/dist/src/components/gridFilter/GridFilterHeaderIconButton.d.ts +2 -2
- package/dist/src/components/gridFilter/GridFilters.d.ts +1 -1
- package/dist/src/components/gridFilter/index.d.ts +7 -7
- package/dist/src/components/gridFilter/useGridFilter.d.ts +2 -2
- package/dist/src/components/gridForm/GridFormDropDown.d.ts +8 -8
- package/dist/src/components/gridForm/GridFormEditBearing.d.ts +2 -2
- package/dist/src/components/gridForm/GridFormMessage.d.ts +3 -3
- package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +4 -4
- package/dist/src/components/gridForm/GridFormMultiSelectGrid.d.ts +4 -4
- package/dist/src/components/gridForm/GridFormPopoverMenu.d.ts +5 -5
- package/dist/src/components/gridForm/GridFormSubComponentTextArea.d.ts +4 -4
- package/dist/src/components/gridForm/GridFormSubComponentTextInput.d.ts +4 -4
- package/dist/src/components/gridForm/GridFormTextArea.d.ts +4 -4
- package/dist/src/components/gridForm/GridFormTextInput.d.ts +3 -3
- package/dist/src/components/gridForm/index.d.ts +10 -10
- package/dist/src/components/gridHeader/GridHeaderSelect.d.ts +1 -1
- package/dist/src/components/gridHeader/index.d.ts +1 -1
- package/dist/src/components/gridHook/index.d.ts +1 -1
- package/dist/src/components/gridHook/useGridContextMenu.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridButton.d.ts +5 -5
- package/dist/src/components/gridPopoverEdit/GridEditBoolean.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoutEditMultiSelectGrid.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverEditBearing.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverEditDropDown.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverMenu.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverMessage.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverTextArea.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/GridPopoverTextInput.d.ts +4 -4
- package/dist/src/components/gridPopoverEdit/index.d.ts +11 -11
- package/dist/src/components/gridRender/GridRenderGenericCell.d.ts +5 -5
- package/dist/src/components/gridRender/GridRenderPopoutMenuCell.d.ts +1 -1
- package/dist/src/components/gridRender/index.d.ts +2 -2
- package/dist/src/components/gridUtil.d.ts +1 -1
- package/dist/src/components/index.d.ts +19 -19
- package/dist/src/contexts/GridContext.d.ts +4 -4
- package/dist/src/contexts/GridContextProvider.d.ts +3 -3
- package/dist/src/contexts/GridPopoverContext.d.ts +3 -3
- package/dist/src/contexts/GridPopoverContextProvider.d.ts +4 -4
- package/dist/src/contexts/GridUpdatingContextProvider.d.ts +1 -1
- package/dist/src/index.d.ts +19 -17
- package/dist/src/lui/ActionButton.d.ts +9 -9
- package/dist/src/lui/FormError.d.ts +2 -2
- package/dist/src/lui/TextAreaInput.d.ts +1 -1
- package/dist/src/lui/TextInputFormatted.d.ts +2 -2
- package/dist/src/lui/reactUtils.d.ts +1 -1
- package/dist/src/lui/stateDeferredHook.d.ts +1 -1
- package/dist/src/react-menu3/components/ControlledMenu.d.ts +2 -2
- package/dist/src/react-menu3/components/FocusableItem.d.ts +3 -3
- package/dist/src/react-menu3/components/Menu.d.ts +3 -3
- package/dist/src/react-menu3/components/MenuButton.d.ts +2 -2
- package/dist/src/react-menu3/components/MenuDivider.d.ts +1 -1
- package/dist/src/react-menu3/components/MenuGroup.d.ts +2 -2
- package/dist/src/react-menu3/components/MenuHeader.d.ts +2 -2
- package/dist/src/react-menu3/components/MenuItem.d.ts +3 -3
- package/dist/src/react-menu3/components/MenuList.d.ts +1 -1
- package/dist/src/react-menu3/components/MenuRadioGroup.d.ts +2 -2
- package/dist/src/react-menu3/components/SubMenu.d.ts +5 -5
- package/dist/src/react-menu3/contexts/EventHandlersContext.d.ts +1 -1
- package/dist/src/react-menu3/contexts/MenuListContext.d.ts +2 -2
- package/dist/src/react-menu3/contexts/MenuListItemContext.d.ts +1 -1
- package/dist/src/react-menu3/contexts/RadioGroupContext.d.ts +1 -1
- package/dist/src/react-menu3/contexts/SettingsContext.d.ts +2 -2
- package/dist/src/react-menu3/hooks/index.d.ts +9 -9
- package/dist/src/react-menu3/hooks/useBEM.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useCombinedRef.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useItemEffect.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useItemState.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useItems.d.ts +2 -2
- package/dist/src/react-menu3/hooks/useMenuChange.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useMenuState.d.ts +1 -1
- package/dist/src/react-menu3/hooks/useMenuStateAndFocus.d.ts +1 -1
- package/dist/src/react-menu3/index.d.ts +11 -11
- package/dist/src/react-menu3/positionUtils/getPositionHelpers.d.ts +1 -1
- package/dist/src/react-menu3/positionUtils/index.d.ts +3 -3
- package/dist/src/react-menu3/positionUtils/placeArrowHorizontal.d.ts +1 -1
- package/dist/src/react-menu3/positionUtils/placeArrowVertical.d.ts +1 -1
- package/dist/src/react-menu3/positionUtils/placeLeftorRight.d.ts +4 -4
- package/dist/src/react-menu3/positionUtils/placeToporBottom.d.ts +5 -5
- package/dist/src/react-menu3/positionUtils/positionContextMenu.d.ts +2 -2
- package/dist/src/react-menu3/positionUtils/positionMenu.d.ts +5 -5
- package/dist/src/react-menu3/style-utils/index.d.ts +1 -1
- package/dist/src/react-menu3/types.d.ts +15 -15
- package/dist/src/react-menu3/utils/constants.d.ts +1 -1
- package/dist/src/react-menu3/utils/index.d.ts +3 -3
- package/dist/src/react-menu3/utils/utils.d.ts +5 -5
- package/dist/src/react-menu3/utils/withHovering.d.ts +1 -1
- package/{src/utils → dist/src/utils/__tests__}/storybookTestUtil.ts +2 -2
- package/{src/utils → dist/src/utils/__tests__}/testQuick.ts +15 -14
- package/{src/utils → dist/src/utils/__tests__}/testUtil.ts +31 -36
- package/dist/src/utils/__tests__/vitestUtil.ts +295 -0
- package/dist/src/utils/textValidator.d.ts +2 -2
- package/dist/{step-ag-grid.cjs.js → step-ag-grid.cjs} +969 -955
- package/dist/step-ag-grid.cjs.map +1 -0
- package/dist/step-ag-grid.esm.js +970 -958
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/dist/vite.config.d.ts +1 -1
- package/package.json +38 -57
- package/src/components/ComponentLoadingWrapper.tsx +5 -6
- package/src/components/Grid.tsx +85 -83
- package/src/components/GridCell.test.tsx +17 -15
- package/src/components/GridCell.tsx +46 -44
- package/src/components/GridCellFiller.tsx +5 -4
- package/src/components/GridCellMultiEditor.tsx +7 -7
- package/src/components/GridCellMultiSelectClassRules.tsx +3 -3
- package/src/components/GridIcon.tsx +6 -7
- package/src/components/GridLoadableCell.tsx +2 -2
- package/src/components/GridNoRowsOverlay.tsx +8 -8
- package/src/components/GridPopoverHook.tsx +16 -16
- package/src/components/GridWrapper.tsx +2 -2
- package/src/components/PostSortRowsHook.ts +11 -11
- package/src/components/clickInputWhenContainingCellClicked.tsx +5 -5
- package/src/components/gridFilter/GridFilterButtons.tsx +8 -9
- package/src/components/gridFilter/GridFilterColumnsToggle.tsx +25 -26
- package/src/components/gridFilter/GridFilterDownloadCsvButton.tsx +12 -13
- package/src/components/gridFilter/GridFilterHeaderIconButton.tsx +9 -10
- package/src/components/gridFilter/GridFilterQuick.tsx +6 -6
- package/src/components/gridFilter/GridFilters.tsx +1 -1
- package/src/components/gridFilter/index.ts +7 -7
- package/src/components/gridFilter/useGridFilter.ts +3 -3
- package/src/components/gridForm/GridFormDropDown.tsx +56 -52
- package/src/components/gridForm/GridFormEditBearing.tsx +12 -12
- package/src/components/gridForm/GridFormMessage.tsx +10 -10
- package/src/components/gridForm/GridFormMultiSelect.tsx +53 -51
- package/src/components/gridForm/GridFormMultiSelectGrid.tsx +25 -26
- package/src/components/gridForm/GridFormPopoverMenu.tsx +32 -29
- package/src/components/gridForm/GridFormSubComponentTextArea.tsx +10 -10
- package/src/components/gridForm/GridFormSubComponentTextInput.tsx +8 -8
- package/src/components/gridForm/GridFormTextArea.tsx +11 -11
- package/src/components/gridForm/GridFormTextInput.tsx +11 -11
- package/src/components/gridForm/index.ts +10 -10
- package/src/components/gridHeader/GridHeaderSelect.tsx +9 -9
- package/src/components/gridHeader/index.ts +1 -1
- package/src/components/gridHook/index.ts +1 -1
- package/src/components/gridHook/useGridContextMenu.tsx +7 -7
- package/src/components/gridPopoverEdit/GridButton.tsx +13 -12
- package/src/components/gridPopoverEdit/GridEditBoolean.tsx +19 -18
- package/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts +7 -6
- package/src/components/gridPopoverEdit/GridPopoutEditMultiSelectGrid.ts +7 -6
- package/src/components/gridPopoverEdit/GridPopoverEditBearing.ts +9 -9
- package/src/components/gridPopoverEdit/GridPopoverEditDropDown.ts +8 -7
- package/src/components/gridPopoverEdit/GridPopoverMenu.tsx +6 -6
- package/src/components/gridPopoverEdit/GridPopoverMessage.ts +4 -4
- package/src/components/gridPopoverEdit/GridPopoverTextArea.ts +4 -4
- package/src/components/gridPopoverEdit/GridPopoverTextInput.ts +4 -4
- package/src/components/gridPopoverEdit/index.ts +11 -11
- package/src/components/gridRender/GridRenderGenericCell.tsx +5 -5
- package/src/components/gridRender/GridRenderPopoutMenuCell.tsx +8 -9
- package/src/components/gridRender/index.ts +2 -2
- package/src/components/gridUtil.ts +3 -3
- package/src/components/index.ts +19 -19
- package/src/contexts/GridContext.tsx +52 -46
- package/src/contexts/GridContextProvider.test.tsx +15 -14
- package/src/contexts/GridContextProvider.tsx +42 -42
- package/src/contexts/GridPopoverContext.tsx +10 -7
- package/src/contexts/GridPopoverContextProvider.tsx +12 -10
- package/src/contexts/GridSubComponentContext.ts +6 -5
- package/src/contexts/GridUpdatingContext.tsx +5 -4
- package/src/contexts/GridUpdatingContextProvider.tsx +3 -3
- package/src/index.ts +19 -21
- package/src/lui/ActionButton.scss +2 -2
- package/src/lui/ActionButton.tsx +42 -41
- package/src/lui/FormError.scss +3 -4
- package/src/lui/FormError.tsx +4 -4
- package/src/lui/TextAreaInput.tsx +9 -9
- package/src/lui/TextInputFormatted.scss +1 -1
- package/src/lui/TextInputFormatted.tsx +11 -11
- package/src/lui/reactUtils.test.tsx +9 -8
- package/src/lui/reactUtils.tsx +2 -2
- package/src/lui/stateDeferredHook.tsx +3 -5
- package/src/lui/timeoutHook.test.tsx +12 -11
- package/src/lui/timeoutHook.tsx +1 -1
- package/src/react-app-env.d.ts +1 -1
- package/src/react-menu3/components/ControlledMenu.tsx +48 -48
- package/src/react-menu3/components/FocusableItem.tsx +7 -7
- package/src/react-menu3/components/Menu.tsx +11 -11
- package/src/react-menu3/components/MenuButton.tsx +4 -4
- package/src/react-menu3/components/MenuDivider.tsx +4 -4
- package/src/react-menu3/components/MenuGroup.tsx +5 -5
- package/src/react-menu3/components/MenuHeader.tsx +4 -4
- package/src/react-menu3/components/MenuItem.tsx +14 -14
- package/src/react-menu3/components/MenuList.tsx +55 -55
- package/src/react-menu3/components/MenuRadioGroup.tsx +7 -7
- package/src/react-menu3/components/SubMenu.tsx +24 -24
- package/src/react-menu3/contexts/EventHandlersContext.ts +2 -2
- package/src/react-menu3/contexts/HoverItemContext.ts +1 -1
- package/src/react-menu3/contexts/ItemSettingsContext.ts +1 -1
- package/src/react-menu3/contexts/MenuListContext.ts +2 -2
- package/src/react-menu3/contexts/MenuListItemContext.ts +2 -2
- package/src/react-menu3/contexts/RadioGroupContext.ts +2 -2
- package/src/react-menu3/contexts/SettingsContext.ts +2 -2
- package/src/react-menu3/hooks/index.ts +9 -9
- package/src/react-menu3/hooks/useBEM.ts +4 -4
- package/src/react-menu3/hooks/useCombinedRef.ts +2 -2
- package/src/react-menu3/hooks/useIsomorphicLayoutEffect.ts +4 -4
- package/src/react-menu3/hooks/useItemEffect.ts +3 -3
- package/src/react-menu3/hooks/useItemState.ts +5 -5
- package/src/react-menu3/hooks/useItems.ts +8 -8
- package/src/react-menu3/hooks/useMenuChange.ts +3 -3
- package/src/react-menu3/hooks/useMenuState.ts +5 -5
- package/src/react-menu3/hooks/useMenuStateAndFocus.ts +4 -4
- package/src/react-menu3/index.ts +11 -11
- package/src/react-menu3/positionUtils/getPositionHelpers.ts +2 -2
- package/src/react-menu3/positionUtils/index.ts +3 -3
- package/src/react-menu3/positionUtils/placeArrowHorizontal.ts +1 -1
- package/src/react-menu3/positionUtils/placeArrowVertical.ts +1 -1
- package/src/react-menu3/positionUtils/placeLeftorRight.ts +13 -13
- package/src/react-menu3/positionUtils/placeToporBottom.ts +15 -15
- package/src/react-menu3/positionUtils/positionContextMenu.ts +4 -4
- package/src/react-menu3/positionUtils/positionMenu.ts +14 -14
- package/src/react-menu3/style-utils/index.ts +24 -24
- package/src/react-menu3/types.ts +15 -15
- package/src/react-menu3/utils/constants.ts +33 -33
- package/src/react-menu3/utils/index.ts +3 -4
- package/src/react-menu3/utils/propTypes2.ts +10 -10
- package/src/react-menu3/utils/utils.ts +14 -14
- package/src/react-menu3/utils/withHovering.tsx +3 -3
- package/src/stories/components/ActionButton.stories.tsx +23 -24
- package/src/stories/grid/FormTest.tsx +15 -16
- package/src/stories/grid/GridDragRow.stories.tsx +33 -34
- package/src/stories/grid/GridFilterButtons.stories.tsx +32 -33
- package/src/stories/grid/GridNoRowsOverlay.stories.tsx +9 -10
- package/src/stories/grid/GridNonEditableRow.stories.tsx +40 -41
- package/src/stories/grid/GridPinnedRow.stories.tsx +25 -26
- package/src/stories/grid/GridPopoutContextMenu.stories.tsx +33 -32
- package/src/stories/grid/GridPopoutEditBoolean.stories.tsx +21 -22
- package/src/stories/grid/GridPopoutEditGeneric.stories.tsx +18 -19
- package/src/stories/grid/GridPopoutEditGenericTextArea.stories.tsx +50 -49
- package/src/stories/grid/GridPopoverEditBearing.stories.tsx +25 -26
- package/src/stories/grid/GridPopoverEditDropDown.stories.tsx +93 -94
- package/src/stories/grid/GridPopoverEditMultiSelect.stories.tsx +62 -63
- package/src/stories/grid/GridPopoverEditMultiSelectGrid.stories.tsx +28 -28
- package/src/stories/grid/GridReadOnly.stories.tsx +66 -67
- package/src/stories/grid/GridViewList.stories.tsx +37 -38
- package/src/stories/grid/gridFormInteraction/GridFormDropDownInteraction.stories.tsx +37 -38
- package/src/stories/grid/gridFormInteraction/GridFormEditBearingCorrectionInteraction.stories.tsx +25 -26
- package/src/stories/grid/gridFormInteraction/GridFormEditBearingInteraction.stories.tsx +25 -26
- package/src/stories/grid/gridFormInteraction/GridFormMultiSelectGridInteraction.stories.tsx +31 -31
- package/src/stories/grid/gridFormInteraction/GridFormMultiSelectInteraction.stories.tsx +47 -48
- package/src/stories/grid/gridFormInteraction/GridFormPopoverMenuInteraction.stories.tsx +44 -45
- package/src/stories/grid/gridFormInteraction/GridFormTextAreaInteraction.stories.tsx +19 -20
- package/src/stories/grid/gridFormInteraction/GridFormTextInputInteraction.stories.tsx +21 -22
- package/src/stories/grid/gridFormStatic/GridFormDropDown.stories.tsx +40 -41
- package/src/stories/grid/gridFormStatic/GridFormEditBearing.stories.tsx +14 -15
- package/src/stories/grid/gridFormStatic/GridFormEditBearingCorrection.stories.tsx +14 -15
- package/src/stories/grid/gridFormStatic/GridFormMessage.stories.tsx +10 -11
- package/src/stories/grid/gridFormStatic/GridFormMultiSelect.stories.tsx +20 -21
- package/src/stories/grid/gridFormStatic/GridFormPopoverMenu.stories.tsx +16 -17
- package/src/stories/grid/gridFormStatic/GridFormTextArea.stories.tsx +13 -14
- package/src/stories/grid/gridFormStatic/GridFormTextInput.stories.tsx +13 -14
- package/src/stories/grid/interactions/GridKeyboardInteractions.stories.tsx +68 -71
- package/src/stories/react-menu/ReactMenu.stories.tsx +26 -26
- package/src/styles/Grid.scss +9 -9
- package/src/styles/GridIcon.scss +6 -6
- package/src/styles/GridPopoverMenu.scss +3 -3
- package/src/styles/GridTheme.scss +1 -1
- package/src/styles/react-menu-customisations.scss +26 -41
- package/src/utils/__tests__/storybookTestUtil.ts +4 -0
- package/src/utils/__tests__/testQuick.ts +157 -0
- package/src/utils/__tests__/testUtil.ts +294 -0
- package/src/utils/__tests__/vitestUtil.ts +295 -0
- package/src/utils/bearing.test.ts +47 -45
- package/src/utils/bearing.ts +20 -20
- package/src/utils/deferredPromise.ts +1 -1
- package/src/utils/textMatcher.test.ts +10 -9
- package/src/utils/textMatcher.ts +8 -8
- package/src/utils/textValidator.test.ts +61 -62
- package/src/utils/textValidator.ts +11 -11
- package/src/utils/util.test.ts +21 -20
- package/src/utils/util.ts +7 -7
- package/dist/src/utils/storybookTestUtil.d.ts +0 -3
- package/dist/src/utils/testQuick.d.ts +0 -62
- package/dist/src/utils/testUtil.d.ts +0 -46
- package/dist/step-ag-grid.cjs.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export { Menu } from
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
1
|
+
export { ControlledMenu } from './components/ControlledMenu';
|
|
2
|
+
export { FocusableItem } from './components/FocusableItem';
|
|
3
|
+
export { Menu } from './components/Menu';
|
|
4
|
+
export { MenuButton } from './components/MenuButton';
|
|
5
|
+
export { MenuDivider } from './components/MenuDivider';
|
|
6
|
+
export { MenuGroup } from './components/MenuGroup';
|
|
7
|
+
export { MenuHeader } from './components/MenuHeader';
|
|
8
|
+
export { MenuItem } from './components/MenuItem';
|
|
9
|
+
export { MenuRadioGroup } from './components/MenuRadioGroup';
|
|
10
|
+
export { SubMenu } from './components/SubMenu';
|
|
11
|
+
export { useMenuState } from './hooks';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MutableRefObject } from
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
2
|
export declare const getPositionHelpers: (containerRef: MutableRefObject<HTMLElement | undefined>, menuRef: MutableRefObject<HTMLElement>, menuScroll: Window | Element, boundingBoxPadding: string | undefined) => {
|
|
3
3
|
menuRect: DOMRect;
|
|
4
4
|
containerRect: DOMRect;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { getPositionHelpers } from
|
|
2
|
-
export { positionContextMenu } from
|
|
3
|
-
export { positionMenu } from
|
|
1
|
+
export { getPositionHelpers } from './getPositionHelpers';
|
|
2
|
+
export { positionContextMenu } from './positionContextMenu';
|
|
3
|
+
export { positionMenu } from './positionMenu';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MutableRefObject } from
|
|
2
|
-
import { MenuDirection } from
|
|
3
|
-
import { getPositionHelpers } from
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { MenuDirection } from '../types';
|
|
3
|
+
import { getPositionHelpers } from './getPositionHelpers';
|
|
4
4
|
export interface placeLeftorRightParams {
|
|
5
5
|
anchorRect: DOMRect;
|
|
6
6
|
placeLeftorRightY: number;
|
|
@@ -9,7 +9,7 @@ export interface placeLeftorRightParams {
|
|
|
9
9
|
arrowRef: MutableRefObject<HTMLElement | null>;
|
|
10
10
|
arrow?: boolean;
|
|
11
11
|
direction: MenuDirection;
|
|
12
|
-
position:
|
|
12
|
+
position: 'auto' | 'anchor' | 'initial';
|
|
13
13
|
}
|
|
14
14
|
export declare const placeLeftorRight: (props: ReturnType<typeof getPositionHelpers> & placeLeftorRightParams) => {
|
|
15
15
|
arrowY: number | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MutableRefObject } from
|
|
2
|
-
import { MenuDirection } from
|
|
3
|
-
import { getPositionHelpers } from
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { MenuDirection } from '../types';
|
|
3
|
+
import { getPositionHelpers } from './getPositionHelpers';
|
|
4
4
|
export interface placeToporBottomParams {
|
|
5
5
|
anchorRect: DOMRect;
|
|
6
6
|
placeToporBottomX: number;
|
|
@@ -8,8 +8,8 @@ export interface placeToporBottomParams {
|
|
|
8
8
|
placeBottomY: number;
|
|
9
9
|
arrowRef: MutableRefObject<HTMLElement | null>;
|
|
10
10
|
arrow?: boolean;
|
|
11
|
-
direction:
|
|
12
|
-
position:
|
|
11
|
+
direction: 'left' | 'right' | 'top' | 'bottom';
|
|
12
|
+
position: 'auto' | 'anchor' | 'initial';
|
|
13
13
|
}
|
|
14
14
|
export declare const placeToporBottom: (props: ReturnType<typeof getPositionHelpers> & placeToporBottomParams) => {
|
|
15
15
|
arrowX?: number | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MenuDirection } from
|
|
2
|
-
import { getPositionHelpers } from
|
|
1
|
+
import { MenuDirection } from '../types';
|
|
2
|
+
import { getPositionHelpers } from './getPositionHelpers';
|
|
3
3
|
export declare const positionContextMenu: ({ positionHelpers, anchorPoint, }: {
|
|
4
4
|
positionHelpers: ReturnType<typeof getPositionHelpers>;
|
|
5
5
|
anchorPoint: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MutableRefObject } from
|
|
2
|
-
import { MenuDirection } from
|
|
3
|
-
import { getPositionHelpers } from
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { MenuDirection } from '../types';
|
|
3
|
+
import { getPositionHelpers } from './getPositionHelpers';
|
|
4
4
|
interface positionMenuProps {
|
|
5
5
|
offsetX: number;
|
|
6
6
|
offsetY: number;
|
|
@@ -8,8 +8,8 @@ interface positionMenuProps {
|
|
|
8
8
|
anchorRef: MutableRefObject<Element | null>;
|
|
9
9
|
arrow?: boolean;
|
|
10
10
|
direction: MenuDirection;
|
|
11
|
-
position:
|
|
12
|
-
align:
|
|
11
|
+
position: 'auto' | 'anchor' | 'initial';
|
|
12
|
+
align: 'start' | 'center' | 'end';
|
|
13
13
|
positionHelpers: ReturnType<typeof getPositionHelpers>;
|
|
14
14
|
}
|
|
15
15
|
export declare const positionMenu: (props: positionMenuProps) => {
|
|
@@ -8,4 +8,4 @@ declare const radioGroupSelector: {};
|
|
|
8
8
|
declare const submenuSelector: {};
|
|
9
9
|
declare const menuContainerSelector: {};
|
|
10
10
|
declare const menuButtonSelector: {};
|
|
11
|
-
export {
|
|
11
|
+
export { menuArrowSelector, menuButtonSelector, menuContainerSelector, menuDividerSelector, menuGroupSelector, menuHeaderSelector, menuItemSelector, menuSelector, radioGroupSelector, submenuSelector, };
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { ForwardedRef, MutableRefObject } from
|
|
2
|
-
export type MenuState =
|
|
3
|
-
export type MenuAlign =
|
|
4
|
-
export type MenuDirection =
|
|
5
|
-
export type MenuPosition =
|
|
6
|
-
export type MenuOverflow =
|
|
7
|
-
export type MenuReposition =
|
|
8
|
-
export type MenuViewScroll =
|
|
9
|
-
export type MenuItemTypeProp =
|
|
10
|
-
export type CloseReason =
|
|
1
|
+
import { ForwardedRef, MutableRefObject } from 'react';
|
|
2
|
+
export type MenuState = 'opening' | 'open' | 'closing' | 'closed';
|
|
3
|
+
export type MenuAlign = 'start' | 'center' | 'end';
|
|
4
|
+
export type MenuDirection = 'left' | 'right' | 'top' | 'bottom';
|
|
5
|
+
export type MenuPosition = 'auto' | 'anchor' | 'initial';
|
|
6
|
+
export type MenuOverflow = 'auto' | 'visible' | 'hidden';
|
|
7
|
+
export type MenuReposition = 'auto' | 'initial';
|
|
8
|
+
export type MenuViewScroll = 'auto' | 'close' | 'initial';
|
|
9
|
+
export type MenuItemTypeProp = 'checkbox' | 'radio';
|
|
10
|
+
export type CloseReason = 'click' | 'cancel' | 'blur' | 'scroll';
|
|
11
11
|
/**
|
|
12
12
|
* - `'first'` focus the first item in the menu.
|
|
13
13
|
* - `'last'` focus the last item in the menu.
|
|
14
14
|
* - `number` focus item at the specific position (zero-based).
|
|
15
15
|
*/
|
|
16
|
-
export type FocusPosition =
|
|
16
|
+
export type FocusPosition = 'first' | 'last' | number;
|
|
17
17
|
export type ClassNameProp<M = undefined> = string | ((modifiers: M) => string);
|
|
18
18
|
export type RenderProp<M, R = React.ReactNode> = R | ((modifiers: M) => R);
|
|
19
|
-
export interface BaseProps<M = undefined> extends Omit<React.HTMLAttributes<HTMLElement>,
|
|
19
|
+
export interface BaseProps<M = undefined> extends Omit<React.HTMLAttributes<HTMLElement>, 'className' | 'children'> {
|
|
20
20
|
ref?: React.Ref<any>;
|
|
21
21
|
/**
|
|
22
22
|
* Can be a string or a function which receives a modifier object and returns a CSS `class` string.
|
|
23
23
|
*/
|
|
24
24
|
className?: ClassNameProp<M>;
|
|
25
25
|
}
|
|
26
|
-
export interface BasePropsWithChildren<M = undefined> extends Omit<React.HTMLAttributes<HTMLElement>,
|
|
26
|
+
export interface BasePropsWithChildren<M = undefined> extends Omit<React.HTMLAttributes<HTMLElement>, 'className'> {
|
|
27
27
|
ref?: React.Ref<any>;
|
|
28
28
|
/**
|
|
29
29
|
* Can be a string or a function which receives a modifier object and returns a CSS `class` string.
|
|
@@ -131,7 +131,7 @@ export interface Hoverable {
|
|
|
131
131
|
/**
|
|
132
132
|
* Common props for `Menu`, `SubMenu` and `ControlledMenu`
|
|
133
133
|
*/
|
|
134
|
-
interface BaseMenuProps extends Omit<BaseProps,
|
|
134
|
+
interface BaseMenuProps extends Omit<BaseProps, 'style'> {
|
|
135
135
|
/**
|
|
136
136
|
* Can be a string or a function which receives a modifier object and returns a CSS `class` string.
|
|
137
137
|
*/
|
|
@@ -272,7 +272,7 @@ export interface RootMenuProps extends BaseMenuProps, MenuStateOptions {
|
|
|
272
272
|
/**
|
|
273
273
|
* Properties of this object are spread to the root DOM element containing the menu.
|
|
274
274
|
*/
|
|
275
|
-
containerProps?: Omit<React.HTMLAttributes<HTMLElement>,
|
|
275
|
+
containerProps?: Omit<React.HTMLAttributes<HTMLElement>, 'className'>;
|
|
276
276
|
/**
|
|
277
277
|
* A ref object attached to a DOM element within which menu will be positioned.
|
|
278
278
|
* If not provided, the nearest ancestor which has CSS `overflow` set to a value
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export { withHovering } from
|
|
1
|
+
export * from './constants';
|
|
2
|
+
export * from './utils';
|
|
3
|
+
export { withHovering } from './withHovering';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { unstable_batchedUpdates } from
|
|
2
|
-
import { MenuButtonProps } from
|
|
3
|
-
import { MenuState, MenuStateOptions } from
|
|
1
|
+
import { unstable_batchedUpdates } from 'react-dom';
|
|
2
|
+
import { MenuButtonProps } from '../components/MenuButton';
|
|
3
|
+
import { MenuState, MenuStateOptions } from '../types';
|
|
4
4
|
export declare const isMenuOpen: (state?: MenuState) => boolean;
|
|
5
5
|
export declare const batchedUpdates: typeof unstable_batchedUpdates;
|
|
6
6
|
export declare const values: {
|
|
@@ -18,7 +18,7 @@ export type TransitionMap = {
|
|
|
18
18
|
export declare const getTransition: (transition: MenuStateOptions["transition"], name: keyof TransitionMap) => boolean;
|
|
19
19
|
export declare function safeCall<T, R>(fn: (arg?: T) => R, arg?: T): R;
|
|
20
20
|
export declare function safeCall<T, R>(fn: T, arg: R): T;
|
|
21
|
-
export declare const getName: (component: Record<string, any
|
|
21
|
+
export declare const getName: (component: Record<string, any>) => any;
|
|
22
22
|
export declare const defineName: (name: string, component: React.ForwardRefExoticComponent<React.PropsWithoutRef<MenuButtonProps> & React.RefAttributes<unknown>>) => import("react").ForwardRefExoticComponent<Omit<MenuButtonProps, "ref"> & import("react").RefAttributes<unknown>>;
|
|
23
23
|
export declare const mergeProps: (target: any, source: any) => any;
|
|
24
24
|
export declare const parsePadding: (paddingStr: string | undefined) => {
|
|
@@ -29,7 +29,7 @@ export declare const parsePadding: (paddingStr: string | undefined) => {
|
|
|
29
29
|
};
|
|
30
30
|
export declare const getScrollAncestor: (node: Node | null) => Element | null;
|
|
31
31
|
export declare function commonProps(isDisabled?: boolean, isHovering?: boolean): {
|
|
32
|
-
|
|
32
|
+
'aria-disabled': true | undefined;
|
|
33
33
|
tabIndex: number;
|
|
34
34
|
};
|
|
35
35
|
export declare const indexOfNode: (nodeList: NodeListOf<Node>, node: Node) => number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { expect, waitFor } from
|
|
1
|
+
import { expect, waitFor } from '@storybook/test';
|
|
2
2
|
|
|
3
3
|
export const waitForGridReady = ({ canvasElement }: { canvasElement: HTMLElement }) =>
|
|
4
|
-
waitFor(() => expect(canvasElement.querySelector(
|
|
4
|
+
waitFor(() => expect(canvasElement.querySelector('.Grid-ready')).toBeInTheDocument(), { timeout: 5000 });
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* @param container Optional container
|
|
6
6
|
* @return HTMLElement array
|
|
7
7
|
*/
|
|
8
|
-
import { IconName } from
|
|
8
|
+
import { IconName } from '@linzjs/lui/dist/components/LuiIcon/LuiIcon';
|
|
9
9
|
|
|
10
|
-
import { wait } from
|
|
10
|
+
import { wait } from '../util';
|
|
11
11
|
|
|
12
12
|
const queryAllBySelector = <T extends HTMLElement>(selector: string, container: HTMLElement = document.body): T[] =>
|
|
13
13
|
Array.from(container.querySelectorAll<T>(selector));
|
|
@@ -17,7 +17,8 @@ const queryAllBySelector = <T extends HTMLElement>(selector: string, container:
|
|
|
17
17
|
*/
|
|
18
18
|
export interface IQueryQuick {
|
|
19
19
|
testId?: string;
|
|
20
|
-
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
21
|
+
tagName?: 'button' | 'span' | 'div' | 'input' | 'textarea' | any;
|
|
21
22
|
text?: string | RegExp;
|
|
22
23
|
icon?: IconName;
|
|
23
24
|
ariaLabel?: string;
|
|
@@ -26,11 +27,11 @@ export interface IQueryQuick {
|
|
|
26
27
|
child?: IQueryQuick;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
const escapeSelectorParam = (param: string): string => param.replace(/["\\]/g,
|
|
30
|
+
const escapeSelectorParam = (param: string): string => param.replace(/["\\]/g, '\\$&');
|
|
30
31
|
|
|
31
32
|
export const getMatcher = (matcherText: string | RegExp) => {
|
|
32
33
|
const textMatcher =
|
|
33
|
-
typeof matcherText ===
|
|
34
|
+
typeof matcherText === 'string'
|
|
34
35
|
? (text?: string) => text != null && text.toLowerCase() === matcherText.toLowerCase()
|
|
35
36
|
: (text?: string) => text != null && matcherText.test(text);
|
|
36
37
|
return (e: HTMLElement) => textMatcher(e.innerHTML?.trim()) || textMatcher(e.innerText?.trim());
|
|
@@ -46,7 +47,7 @@ const quickSelector = <T extends HTMLElement>(
|
|
|
46
47
|
props: IQueryQuick,
|
|
47
48
|
container?: HTMLElement,
|
|
48
49
|
): { selector: string; els: T[] } => {
|
|
49
|
-
let selector =
|
|
50
|
+
let selector = '';
|
|
50
51
|
let lastIQueryQuick = props;
|
|
51
52
|
for (let loop: IQueryQuick | undefined = props; loop; loop = loop.child) {
|
|
52
53
|
lastIQueryQuick = loop;
|
|
@@ -56,11 +57,11 @@ const quickSelector = <T extends HTMLElement>(
|
|
|
56
57
|
loop.testId && (selector += `[data-testid="${escapeSelectorParam(loop.testId)}"]`);
|
|
57
58
|
loop.icon && (selector += `[data-icon='${loop.icon}']`);
|
|
58
59
|
loop.classes && (selector += loop.classes);
|
|
59
|
-
selector +=
|
|
60
|
+
selector += ' ';
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
if (selector.trim() ==
|
|
63
|
-
throw
|
|
63
|
+
if (selector.trim() == '') {
|
|
64
|
+
throw 'get/query/findQuick needs at least one defined parameter';
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
let els = queryAllBySelector<T>(selector, container);
|
|
@@ -73,10 +74,10 @@ const quickSelector = <T extends HTMLElement>(
|
|
|
73
74
|
return {
|
|
74
75
|
selector: [
|
|
75
76
|
selector,
|
|
76
|
-
typeof lastIQueryQuick.text
|
|
77
|
+
typeof lastIQueryQuick.text === 'string' ? JSON.stringify(lastIQueryQuick.text) : lastIQueryQuick.text,
|
|
77
78
|
]
|
|
78
79
|
.filter((r) => r)
|
|
79
|
-
.join(
|
|
80
|
+
.join(' '),
|
|
80
81
|
els,
|
|
81
82
|
};
|
|
82
83
|
};
|
|
@@ -91,9 +92,9 @@ const quickSelector = <T extends HTMLElement>(
|
|
|
91
92
|
export const queryQuick = <T extends HTMLElement>(filter: IQueryQuick, container?: HTMLElement): T | null => {
|
|
92
93
|
const { els, selector } = quickSelector<T>(filter, container);
|
|
93
94
|
if (els.length > 1) {
|
|
94
|
-
throw `Found multiple(${els.length}) elements by selector ${selector}\n${els
|
|
95
|
-
(el, index) => `${index}: ${el.parentElement?.innerHTML}\n\n
|
|
96
|
-
|
|
95
|
+
throw `Found multiple(${els.length}) elements by selector ${selector}\n${els
|
|
96
|
+
.map((el, index) => `${index}: ${el.parentElement?.innerHTML}\n\n`)
|
|
97
|
+
.join()}`;
|
|
97
98
|
}
|
|
98
99
|
return els[0] ?? null;
|
|
99
100
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { act, waitFor, within } from
|
|
2
|
-
import userEvent from
|
|
3
|
-
import { isEqual } from
|
|
1
|
+
import { act, waitFor, within } from '@testing-library/react';
|
|
2
|
+
import userEvent from '@testing-library/user-event';
|
|
3
|
+
import { isEqual } from 'lodash-es';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { findQuick, getAllQuick, getMatcher, getQuick, IQueryQuick, queryQuick } from './testQuick';
|
|
6
6
|
|
|
7
7
|
let user = userEvent;
|
|
8
8
|
/**
|
|
@@ -10,16 +10,17 @@ let user = userEvent;
|
|
|
10
10
|
* @param customisedUserEvent
|
|
11
11
|
*/
|
|
12
12
|
export const setUpUserEvent = (customisedUserEvent: any) => {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
13
14
|
user = customisedUserEvent;
|
|
14
15
|
};
|
|
15
16
|
|
|
16
|
-
export const countRows =
|
|
17
|
+
export const countRows = (within?: HTMLElement): number => {
|
|
17
18
|
return getAllQuick({ tagName: `div[row-id]:not(:empty)` }, within).length;
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
export const findRowByIndex = async (rowIndex: number | string, within?: HTMLElement): Promise<HTMLDivElement> => {
|
|
21
|
-
await waitFor(
|
|
22
|
-
expect(getAllQuick({ classes:
|
|
22
|
+
await waitFor(() => {
|
|
23
|
+
expect(getAllQuick({ classes: '.ag-row' }).length > 0).toBe(true);
|
|
23
24
|
});
|
|
24
25
|
//if this is not wrapped in an act console errors are logged during testing
|
|
25
26
|
let row!: HTMLDivElement;
|
|
@@ -28,7 +29,6 @@ export const findRowByIndex = async (rowIndex: number | string, within?: HTMLEle
|
|
|
28
29
|
{ tagName: `.ag-center-cols-container div[row-index='${rowIndex}']:not(:empty)` },
|
|
29
30
|
within,
|
|
30
31
|
);
|
|
31
|
-
// @ts-ignore
|
|
32
32
|
let combineChildren = [...Array.from(row.children)];
|
|
33
33
|
|
|
34
34
|
const leftCols = queryQuick<HTMLDivElement>(
|
|
@@ -36,7 +36,6 @@ export const findRowByIndex = async (rowIndex: number | string, within?: HTMLEle
|
|
|
36
36
|
within,
|
|
37
37
|
);
|
|
38
38
|
if (leftCols) {
|
|
39
|
-
// @ts-ignore
|
|
40
39
|
combineChildren = [...Array.from(leftCols.children), ...combineChildren];
|
|
41
40
|
}
|
|
42
41
|
|
|
@@ -45,7 +44,6 @@ export const findRowByIndex = async (rowIndex: number | string, within?: HTMLEle
|
|
|
45
44
|
within,
|
|
46
45
|
);
|
|
47
46
|
if (rightCols) {
|
|
48
|
-
// @ts-ignore
|
|
49
47
|
combineChildren = [...Array.from(rightCols.children), ...combineChildren];
|
|
50
48
|
}
|
|
51
49
|
|
|
@@ -55,8 +53,8 @@ export const findRowByIndex = async (rowIndex: number | string, within?: HTMLEle
|
|
|
55
53
|
};
|
|
56
54
|
|
|
57
55
|
export const findRow = async (rowId: number | string, within?: HTMLElement): Promise<HTMLDivElement> => {
|
|
58
|
-
await waitFor(
|
|
59
|
-
expect(getAllQuick({ classes:
|
|
56
|
+
await waitFor(() => {
|
|
57
|
+
expect(getAllQuick({ classes: '.ag-row' }).length > 0).toBe(true);
|
|
60
58
|
});
|
|
61
59
|
//if this is not wrapped in an act console errors are logged during testing
|
|
62
60
|
let row!: HTMLDivElement;
|
|
@@ -65,7 +63,6 @@ export const findRow = async (rowId: number | string, within?: HTMLElement): Pro
|
|
|
65
63
|
{ tagName: `.ag-center-cols-container div[row-id='${rowId}']:not(:empty)` },
|
|
66
64
|
within,
|
|
67
65
|
);
|
|
68
|
-
// @ts-ignore
|
|
69
66
|
let combineChildren = [...Array.from(row.children)];
|
|
70
67
|
|
|
71
68
|
const leftCols = queryQuick<HTMLDivElement>(
|
|
@@ -73,7 +70,6 @@ export const findRow = async (rowId: number | string, within?: HTMLElement): Pro
|
|
|
73
70
|
within,
|
|
74
71
|
);
|
|
75
72
|
if (leftCols) {
|
|
76
|
-
// @ts-ignore
|
|
77
73
|
combineChildren = [...Array.from(leftCols.children), ...combineChildren];
|
|
78
74
|
}
|
|
79
75
|
|
|
@@ -82,7 +78,6 @@ export const findRow = async (rowId: number | string, within?: HTMLElement): Pro
|
|
|
82
78
|
within,
|
|
83
79
|
);
|
|
84
80
|
if (rightCols) {
|
|
85
|
-
// @ts-ignore
|
|
86
81
|
combineChildren = [...Array.from(rightCols.children), ...combineChildren];
|
|
87
82
|
}
|
|
88
83
|
|
|
@@ -91,33 +86,33 @@ export const findRow = async (rowId: number | string, within?: HTMLElement): Pro
|
|
|
91
86
|
return row;
|
|
92
87
|
};
|
|
93
88
|
|
|
94
|
-
export const queryRow =
|
|
89
|
+
export const queryRow = (rowId: number | string, within?: HTMLElement): HTMLDivElement | null => {
|
|
95
90
|
return queryQuick<HTMLDivElement>({ tagName: `div[row-id='${rowId}']:not(:empty)` }, within);
|
|
96
91
|
};
|
|
97
92
|
|
|
98
93
|
const _selectRow = async (
|
|
99
|
-
select:
|
|
94
|
+
select: 'select' | 'deselect' | 'toggle',
|
|
100
95
|
rowId: string | number,
|
|
101
96
|
within?: HTMLElement,
|
|
102
97
|
): Promise<void> => {
|
|
103
98
|
const row = await findRow(rowId, within);
|
|
104
|
-
const isSelected = row.className.includes(
|
|
105
|
-
if (select ===
|
|
106
|
-
const cell = await findCell(rowId,
|
|
99
|
+
const isSelected = row.className.includes('ag-row-selected');
|
|
100
|
+
if (select === 'toggle' || (select === 'select' && !isSelected) || (select === 'deselect' && isSelected)) {
|
|
101
|
+
const cell = await findCell(rowId, 'selection', within);
|
|
107
102
|
await user.click(cell);
|
|
108
103
|
await waitFor(async () => {
|
|
109
104
|
const row = await findRow(rowId, within);
|
|
110
|
-
const nowSelected = row.className.includes(
|
|
105
|
+
const nowSelected = row.className.includes('ag-row-selected');
|
|
111
106
|
if (nowSelected === isSelected) throw `Row ${rowId} won't select`;
|
|
112
107
|
});
|
|
113
108
|
}
|
|
114
109
|
};
|
|
115
110
|
|
|
116
111
|
export const selectRow = async (rowId: string | number, within?: HTMLElement): Promise<void> =>
|
|
117
|
-
_selectRow(
|
|
112
|
+
_selectRow('select', rowId, within);
|
|
118
113
|
|
|
119
114
|
export const deselectRow = async (rowId: string | number, within?: HTMLElement): Promise<void> =>
|
|
120
|
-
_selectRow(
|
|
115
|
+
_selectRow('deselect', rowId, within);
|
|
121
116
|
|
|
122
117
|
export const findCell = async (rowId: number | string, colId: string, within?: HTMLElement): Promise<HTMLElement> => {
|
|
123
118
|
const row = await findRow(rowId, within);
|
|
@@ -157,14 +152,14 @@ export const editCell = async (rowId: number | string, colId: string, within?: H
|
|
|
157
152
|
|
|
158
153
|
export const isCellReadOnly = async (rowId: number | string, colId: string, within?: HTMLElement): Promise<boolean> => {
|
|
159
154
|
const cell = await findCell(rowId, colId, within);
|
|
160
|
-
return cell.className.includes(
|
|
155
|
+
return cell.className.includes('GridCell-readonly');
|
|
161
156
|
};
|
|
162
157
|
|
|
163
|
-
export const findOpenPopover = () => findQuick({ classes:
|
|
158
|
+
export const findOpenPopover = () => findQuick({ classes: '.szh-menu--state-open' });
|
|
164
159
|
|
|
165
160
|
export const queryMenuOption = async (menuOptionText: string | RegExp): Promise<HTMLElement | null> => {
|
|
166
161
|
const openMenu = await findOpenPopover();
|
|
167
|
-
const els = await within(openMenu).findAllByRole(
|
|
162
|
+
const els = await within(openMenu).findAllByRole('menuitem');
|
|
168
163
|
const matcher = getMatcher(menuOptionText);
|
|
169
164
|
const result = els.find(matcher);
|
|
170
165
|
return result ?? null;
|
|
@@ -190,7 +185,7 @@ export const validateMenuOptions = async (
|
|
|
190
185
|
): Promise<boolean> => {
|
|
191
186
|
await editCell(rowId, colId);
|
|
192
187
|
const openMenu = await findOpenPopover();
|
|
193
|
-
const actualOptions = (await within(openMenu).findAllByRole(
|
|
188
|
+
const actualOptions = (await within(openMenu).findAllByRole('menuitem')).map((menuItem) => menuItem.textContent);
|
|
194
189
|
return isEqual(actualOptions, expectedMenuOptions);
|
|
195
190
|
};
|
|
196
191
|
|
|
@@ -221,7 +216,7 @@ export const openAndFindMenuOption = async (
|
|
|
221
216
|
|
|
222
217
|
export const getMultiSelectOptions = async () => {
|
|
223
218
|
const openMenu = await findOpenPopover();
|
|
224
|
-
return getAllQuick<HTMLInputElement>({ role:
|
|
219
|
+
return getAllQuick<HTMLInputElement>({ role: 'menuitem', child: { tagName: 'input,textarea' } }, openMenu).map(
|
|
225
220
|
(input) => {
|
|
226
221
|
return {
|
|
227
222
|
v: input.value,
|
|
@@ -233,7 +228,7 @@ export const getMultiSelectOptions = async () => {
|
|
|
233
228
|
|
|
234
229
|
export const findMultiSelectOption = async (value: string): Promise<HTMLElement> => {
|
|
235
230
|
const openMenu = await findOpenPopover();
|
|
236
|
-
return getQuick({ role:
|
|
231
|
+
return getQuick({ role: 'menuitem', child: { tagName: `input[value='${value}']` } }, openMenu);
|
|
237
232
|
};
|
|
238
233
|
|
|
239
234
|
export const clickMultiSelectOption = async (value: string): Promise<void> => {
|
|
@@ -255,14 +250,14 @@ export const typeOnlyInput = async (value: string): Promise<void> =>
|
|
|
255
250
|
typeInput(value, { child: { tagName: "input[type='text'], textarea" } });
|
|
256
251
|
|
|
257
252
|
export const typeInputByLabel = async (value: string, labelText: string): Promise<void> => {
|
|
258
|
-
const labels = getAllQuick({ child: { tagName:
|
|
253
|
+
const labels = getAllQuick({ child: { tagName: 'label' } }).filter((l) => l.textContent === labelText);
|
|
259
254
|
if (labels.length === 0) {
|
|
260
255
|
throw Error(`Label not found for text: ${labelText}`);
|
|
261
256
|
}
|
|
262
257
|
if (labels.length > 1) {
|
|
263
258
|
throw Error(`Multiple labels found for text: ${labelText}`);
|
|
264
259
|
}
|
|
265
|
-
const inputId = labels[0].getAttribute(
|
|
260
|
+
const inputId = labels[0].getAttribute('for');
|
|
266
261
|
await typeInput(value, { child: { tagName: `input[id='${inputId}'], textarea[id='${inputId}']` } });
|
|
267
262
|
};
|
|
268
263
|
|
|
@@ -272,16 +267,16 @@ export const typeInputByPlaceholder = async (value: string, placeholder: string)
|
|
|
272
267
|
});
|
|
273
268
|
|
|
274
269
|
export const typeOtherInput = async (value: string): Promise<void> =>
|
|
275
|
-
typeInput(value, { classes:
|
|
270
|
+
typeInput(value, { classes: '.subComponent', child: { tagName: "input[type='text']" } });
|
|
276
271
|
|
|
277
272
|
export const typeOtherTextArea = async (value: string): Promise<void> =>
|
|
278
|
-
typeInput(value, { classes:
|
|
273
|
+
typeInput(value, { classes: '.subComponent', child: { tagName: 'textarea' } });
|
|
279
274
|
|
|
280
275
|
export const closeMenu = () => user.click(document.body);
|
|
281
276
|
export const closePopover = () => user.click(document.body);
|
|
282
277
|
|
|
283
278
|
export const findActionButton = (text: string, container?: HTMLElement): Promise<HTMLElement> =>
|
|
284
|
-
findQuick({ tagName:
|
|
279
|
+
findQuick({ tagName: 'button', child: { classes: '.ActionButton-minimalAreaDisplay', text: text } }, container);
|
|
285
280
|
|
|
286
281
|
export const clickActionButton = async (text: string, container?: HTMLElement): Promise<void> => {
|
|
287
282
|
const button = await findActionButton(text, container);
|
|
@@ -289,11 +284,11 @@ export const clickActionButton = async (text: string, container?: HTMLElement):
|
|
|
289
284
|
};
|
|
290
285
|
|
|
291
286
|
export const waitForGridReady = async (props?: { grid?: HTMLElement; timeout?: number }) =>
|
|
292
|
-
waitFor(() => expect(getAllQuick({ classes:
|
|
287
|
+
waitFor(() => expect(getAllQuick({ classes: '.Grid-ready' }, props?.grid)).toBeDefined(), {
|
|
293
288
|
timeout: props?.timeout ?? 5000,
|
|
294
289
|
});
|
|
295
290
|
|
|
296
291
|
export const waitForGridRows = async (props?: { grid?: HTMLElement; timeout?: number }) =>
|
|
297
|
-
waitFor(
|
|
292
|
+
waitFor(() => expect(getAllQuick({ classes: '.ag-row' }, props?.grid).length > 0).toBe(true), {
|
|
298
293
|
timeout: props?.timeout ?? 5000,
|
|
299
294
|
});
|