@wix/patterns 1.377.0 → 1.380.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/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.js +14 -16
- package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js +14 -10
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css +12 -0
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +22 -0
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -0
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.uni.driver.js +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.uni.driver.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js +14 -15
- package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/ColumnsList.js +8 -10
- package/dist/cjs/components/CustomColumnsPanel/ColumnsList.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js +13 -26
- package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/AddItemRow.js +43 -0
- package/dist/cjs/components/EditableTable/AddItemRow.js.map +1 -0
- package/dist/cjs/components/EditableTable/EditableCell.js +14 -7
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css +17 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.js +22 -6
- package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js +2 -0
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/image/Edit.js +35 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/Edit.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/Edit.uni.driver.js +16 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/Edit.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/View.js +22 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/View.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/View.uni.driver.js +16 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/View.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/index.js +22 -0
- package/dist/cjs/components/EditableTable/cellTypes/image/index.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/index.js +3 -1
- package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/types.js +5 -0
- package/dist/cjs/components/EditableTable/types.js.map +1 -1
- package/dist/cjs/components/EditableTable/useAddRow.js +35 -0
- package/dist/cjs/components/EditableTable/useAddRow.js.map +1 -0
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js +22 -7
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/cjs/components/EditableTable/useClearFocusOnBlur.js +6 -0
- package/dist/cjs/components/EditableTable/useClearFocusOnBlur.js.map +1 -1
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.js +172 -0
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.js.map +1 -0
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.uni.driver.js +33 -0
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.uni.driver.js.map +1 -0
- package/dist/cjs/components/LayoutSwitch/index.js +10 -0
- package/dist/cjs/components/LayoutSwitch/index.js.map +1 -0
- package/dist/cjs/components/LayoutSwitchButton/LayoutSwitchButton.js +108 -0
- package/dist/cjs/components/LayoutSwitchButton/LayoutSwitchButton.js.map +1 -0
- package/dist/cjs/components/LayoutSwitchButton/index.js +10 -0
- package/dist/cjs/components/LayoutSwitchButton/index.js.map +1 -0
- package/dist/cjs/components/LayoutSwitchButton/layoutConfig.js +44 -0
- package/dist/cjs/components/LayoutSwitchButton/layoutConfig.js.map +1 -0
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js +25 -62
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.uni.driver.js +2 -2
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.uni.driver.js.map +1 -1
- package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.js +12 -119
- package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
- package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.js +2 -2
- package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.js.map +1 -1
- package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js +2 -28
- package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/exports/testkit/unidriver.js +3 -1
- package/dist/cjs/exports/testkit/unidriver.js.map +1 -1
- package/dist/cjs/hooks/useCollectionTableResize.js +4 -9
- package/dist/cjs/hooks/useCollectionTableResize.js.map +1 -1
- package/dist/cjs/hooks/useEntityPage.js.map +1 -1
- package/dist/cjs/hooks/useLayoutSwitchCollection.js +31 -0
- package/dist/cjs/hooks/useLayoutSwitchCollection.js.map +1 -0
- package/dist/cjs/index.js +35 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model/view.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CustomColumnsState.js +17 -0
- package/dist/cjs/state/CustomColumnsState.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/cjs/state/EditableTable/EditableTableState.js +25 -7
- package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/cjs/state/EditableTable/MutationState.js +1 -0
- package/dist/cjs/state/EditableTable/MutationState.js.map +1 -1
- package/dist/cjs/state/EditableTable/types.js.map +1 -1
- package/dist/cjs/state/EntityPage/EntityPageFieldsState.js +142 -0
- package/dist/cjs/state/EntityPage/EntityPageFieldsState.js.map +1 -0
- package/dist/cjs/state/EntityPage/EntityPageState.js +28 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/EntityPage/index.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/ILayoutSwitchState.js +4 -0
- package/dist/cjs/state/ILayoutSwitchState.js.map +1 -0
- package/dist/cjs/state/LayoutSwitchState.js +95 -0
- package/dist/cjs/state/LayoutSwitchState.js.map +1 -0
- package/dist/cjs/state/TableGridSwitchFoldersState.js +2 -1
- package/dist/cjs/state/TableGridSwitchFoldersState.js.map +1 -1
- package/dist/cjs/state/TableGridSwitchState.js +2 -1
- package/dist/cjs/state/TableGridSwitchState.js.map +1 -1
- package/dist/cjs/state/ViewTypeState.js +7 -3
- package/dist/cjs/state/ViewTypeState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/test-utils/CairoTestApp.js +21 -29
- package/dist/cjs/test-utils/CairoTestApp.js.map +1 -1
- package/dist/cjs/testkit/jsdom.js +3 -1
- package/dist/cjs/testkit/jsdom.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/View.md +1 -1
- package/dist/docs/index.json +24 -24
- package/dist/docs/useEntityPage.md +0 -1
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.js +7 -6
- package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +3 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css +12 -0
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +15 -0
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -0
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.uni.driver.js +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.uni.driver.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js +2 -3
- package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
- package/dist/esm/components/CustomColumnsPanel/ColumnsList.js +8 -4
- package/dist/esm/components/CustomColumnsPanel/ColumnsList.js.map +1 -1
- package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js +3 -13
- package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EditableTable/AddItemRow.js +14 -0
- package/dist/esm/components/EditableTable/AddItemRow.js.map +1 -0
- package/dist/esm/components/EditableTable/EditableCell.js +14 -2
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css +17 -3
- package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTable.js +4 -1
- package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js +3 -1
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/image/Edit.js +7 -0
- package/dist/esm/components/EditableTable/cellTypes/image/Edit.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/image/Edit.uni.driver.js +12 -0
- package/dist/esm/components/EditableTable/cellTypes/image/Edit.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/image/View.js +4 -0
- package/dist/esm/components/EditableTable/cellTypes/image/View.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/image/View.uni.driver.js +12 -0
- package/dist/esm/components/EditableTable/cellTypes/image/View.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/image/index.js +17 -0
- package/dist/esm/components/EditableTable/cellTypes/image/index.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/index.js +3 -1
- package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/types.js.map +1 -1
- package/dist/esm/components/EditableTable/useAddRow.js +28 -0
- package/dist/esm/components/EditableTable/useAddRow.js.map +1 -0
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js +17 -3
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/esm/components/EditableTable/useClearFocusOnBlur.js +6 -0
- package/dist/esm/components/EditableTable/useClearFocusOnBlur.js.map +1 -1
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.js +67 -0
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.js.map +1 -0
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.uni.driver.js +28 -0
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.uni.driver.js.map +1 -0
- package/dist/esm/components/LayoutSwitch/index.js +2 -0
- package/dist/esm/components/LayoutSwitch/index.js.map +1 -0
- package/dist/esm/components/LayoutSwitchButton/LayoutSwitchButton.js +38 -0
- package/dist/esm/components/LayoutSwitchButton/LayoutSwitchButton.js.map +1 -0
- package/dist/esm/components/LayoutSwitchButton/index.js +2 -0
- package/dist/esm/components/LayoutSwitchButton/index.js.map +1 -0
- package/dist/esm/components/LayoutSwitchButton/layoutConfig.js +17 -0
- package/dist/esm/components/LayoutSwitchButton/layoutConfig.js.map +1 -0
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/TableGridSwitch/TableGridSwitch.js +20 -17
- package/dist/esm/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
- package/dist/esm/components/TableGridSwitch/TableGridSwitch.uni.driver.js +2 -2
- package/dist/esm/components/TableGridSwitch/TableGridSwitch.uni.driver.js.map +1 -1
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js +4 -40
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.js +6 -2
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.js.map +1 -1
- package/dist/esm/components/TableGridSwitchButton/layoutConfig.js +1 -12
- package/dist/esm/components/TableGridSwitchButton/layoutConfig.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/exports/testkit/unidriver.js +1 -0
- package/dist/esm/exports/testkit/unidriver.js.map +1 -1
- package/dist/esm/hooks/useCollectionTableResize.js +7 -8
- package/dist/esm/hooks/useCollectionTableResize.js.map +1 -1
- package/dist/esm/hooks/useEntityPage.js.map +1 -1
- package/dist/esm/hooks/useLayoutSwitchCollection.js +28 -0
- package/dist/esm/hooks/useLayoutSwitchCollection.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/CustomColumnsState.js +18 -1
- package/dist/esm/state/CustomColumnsState.js.map +1 -1
- package/dist/esm/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/esm/state/EditableTable/EditableTableState.js +25 -7
- package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/esm/state/EditableTable/MutationState.js +1 -0
- package/dist/esm/state/EditableTable/MutationState.js.map +1 -1
- package/dist/esm/state/EntityPage/EntityPageFieldsState.js +126 -0
- package/dist/esm/state/EntityPage/EntityPageFieldsState.js.map +1 -0
- package/dist/esm/state/EntityPage/EntityPageState.js +22 -0
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/EntityPage/index.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/ILayoutSwitchState.js +2 -0
- package/dist/esm/state/ILayoutSwitchState.js.map +1 -0
- package/dist/esm/state/LayoutSwitchState.js +88 -0
- package/dist/esm/state/LayoutSwitchState.js.map +1 -0
- package/dist/esm/state/TableGridSwitchFoldersState.js +1 -0
- package/dist/esm/state/TableGridSwitchFoldersState.js.map +1 -1
- package/dist/esm/state/TableGridSwitchState.js +1 -0
- package/dist/esm/state/TableGridSwitchState.js.map +1 -1
- package/dist/esm/state/ViewTypeState.js +8 -3
- package/dist/esm/state/ViewTypeState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/test-utils/CairoTestApp.js +1 -3
- package/dist/esm/test-utils/CairoTestApp.js.map +1 -1
- package/dist/esm/testkit/jsdom.js +2 -0
- package/dist/esm/testkit/jsdom.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.d.ts +1 -0
- package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +38 -40
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts +13 -0
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -0
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +65 -34
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/ColumnListTableListItem.d.ts +1 -1
- package/dist/types/components/CustomColumnsPanel/ColumnListTableListItem.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/ColumnsList.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +2 -2
- package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +3 -3
- package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/AddItemRow.d.ts +6 -0
- package/dist/types/components/EditableTable/AddItemRow.d.ts.map +1 -0
- package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.d.ts +1 -1
- package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +27 -5
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/image/Edit.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/image/Edit.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/image/Edit.uni.driver.d.ts +19 -0
- package/dist/types/components/EditableTable/cellTypes/image/Edit.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/image/View.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/image/View.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/image/View.uni.driver.d.ts +16 -0
- package/dist/types/components/EditableTable/cellTypes/image/View.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/image/index.d.ts +5 -0
- package/dist/types/components/EditableTable/cellTypes/image/index.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/index.d.ts +2 -1
- package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/types.d.ts +22 -9
- package/dist/types/components/EditableTable/types.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useAddRow.d.ts +7 -0
- package/dist/types/components/EditableTable/useAddRow.d.ts.map +1 -0
- package/dist/types/components/EditableTable/useCellFocusAndEditing.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useClearFocusOnBlur.d.ts +6 -0
- package/dist/types/components/EditableTable/useClearFocusOnBlur.d.ts.map +1 -1
- package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +14 -14
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +41 -41
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +14 -14
- package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +12 -12
- package/dist/types/components/LayoutSwitch/LayoutSwitch.d.ts +18 -0
- package/dist/types/components/LayoutSwitch/LayoutSwitch.d.ts.map +1 -0
- package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +17812 -0
- package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts.map +1 -0
- package/dist/types/components/LayoutSwitch/index.d.ts +2 -0
- package/dist/types/components/LayoutSwitch/index.d.ts.map +1 -0
- package/dist/types/components/LayoutSwitchButton/LayoutSwitchButton.d.ts +12 -0
- package/dist/types/components/LayoutSwitchButton/LayoutSwitchButton.d.ts.map +1 -0
- package/dist/types/components/LayoutSwitchButton/index.d.ts +2 -0
- package/dist/types/components/LayoutSwitchButton/index.d.ts.map +1 -0
- package/dist/types/components/LayoutSwitchButton/layoutConfig.d.ts +8 -0
- package/dist/types/components/LayoutSwitchButton/layoutConfig.d.ts.map +1 -0
- package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +40 -40
- package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
- package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
- package/dist/types/components/Table/Table.uni.driver.d.ts +32 -58
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +40 -40
- package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts +2 -2
- package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +85 -123
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.d.ts +1 -1
- package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.d.ts +1 -1
- package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts +1 -6
- package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
- package/dist/types/exports/testkit/unidriver.d.ts +1 -0
- package/dist/types/exports/testkit/unidriver.d.ts.map +1 -1
- package/dist/types/hooks/useCollectionTableResize.d.ts +2 -6
- package/dist/types/hooks/useCollectionTableResize.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPage.d.ts +10 -2
- package/dist/types/hooks/useEntityPage.d.ts.map +1 -1
- package/dist/types/hooks/useLayoutSwitchCollection.d.ts +10 -0
- package/dist/types/hooks/useLayoutSwitchCollection.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model/view.d.ts +1 -1
- package/dist/types/model/view.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/CustomColumnsState.d.ts +27 -2
- package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellInteractionState.d.ts +1 -4
- package/dist/types/state/EditableTable/CellInteractionState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/EditableTableState.d.ts +1 -1
- package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/MutationState.d.ts +1 -1
- package/dist/types/state/EditableTable/MutationState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/types.d.ts +6 -0
- package/dist/types/state/EditableTable/types.d.ts.map +1 -1
- package/dist/types/state/EntityPage/EntityPageFieldsState.d.ts +25 -0
- package/dist/types/state/EntityPage/EntityPageFieldsState.d.ts.map +1 -0
- package/dist/types/state/EntityPage/EntityPageState.d.ts +22 -4
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/EntityPage/index.d.ts +1 -0
- package/dist/types/state/EntityPage/index.d.ts.map +1 -1
- package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/ILayoutSwitchState.d.ts +10 -0
- package/dist/types/state/ILayoutSwitchState.d.ts.map +1 -0
- package/dist/types/state/LayoutSwitchState.d.ts +41 -0
- package/dist/types/state/LayoutSwitchState.d.ts.map +1 -0
- package/dist/types/state/TableGridSwitchFoldersState.d.ts.map +1 -1
- package/dist/types/state/TableGridSwitchState.d.ts.map +1 -1
- package/dist/types/state/ViewTypeState.d.ts +3 -1
- package/dist/types/state/ViewTypeState.d.ts.map +1 -1
- package/dist/types/test-utils/CairoTestApp.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +210 -210
- package/dist/types/testkit/jsdom.d.ts +18013 -224
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +229 -210
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +241 -222
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.tsx +15 -14
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css +12 -0
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +25 -0
- package/src/components/CollectionTable/CollectionTableWSRTable.tsx +10 -1
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.uni.driver.ts +1 -1
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomColumnsPanel/ColumnListTableListItem.tsx +3 -4
- package/src/components/CustomColumnsPanel/ColumnsList.tsx +9 -6
- package/src/components/CustomColumnsPanel/CustomColumnsPanel.tsx +4 -15
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/AddItemRow.tsx +35 -0
- package/src/components/EditableTable/EditableCell.st.css +17 -3
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.tsx +26 -3
- package/src/components/EditableTable/EditableTable.tsx +13 -2
- package/src/components/EditableTable/EditableTable.uni.driver.ts +8 -1
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/image/Edit.tsx +29 -0
- package/src/components/EditableTable/cellTypes/image/Edit.uni.driver.ts +16 -0
- package/src/components/EditableTable/cellTypes/image/View.tsx +7 -0
- package/src/components/EditableTable/cellTypes/image/View.uni.driver.ts +13 -0
- package/src/components/EditableTable/cellTypes/image/index.ts +18 -0
- package/src/components/EditableTable/cellTypes/index.ts +3 -0
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
- package/src/components/EditableTable/types.ts +33 -9
- package/src/components/EditableTable/useAddRow.ts +39 -0
- package/src/components/EditableTable/useCellFocusAndEditing.ts +16 -3
- package/src/components/EditableTable/useClearFocusOnBlur.ts +6 -0
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LayoutSwitch/LayoutSwitch.tsx +121 -0
- package/src/components/LayoutSwitch/LayoutSwitch.uni.driver.ts +36 -0
- package/src/components/LayoutSwitch/index.ts +1 -0
- package/src/components/LayoutSwitchButton/LayoutSwitchButton.tsx +102 -0
- package/src/components/LayoutSwitchButton/index.ts +1 -0
- package/src/components/LayoutSwitchButton/layoutConfig.tsx +26 -0
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
- package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
- package/src/components/TableGridSwitch/TableGridSwitch.tsx +26 -46
- package/src/components/TableGridSwitch/TableGridSwitch.uni.driver.ts +2 -4
- package/src/components/TableGridSwitchButton/TableGridSwitchButton.tsx +5 -102
- package/src/components/TableGridSwitchButton/TableGridSwitchButton.uni.driver.ts +9 -3
- package/src/components/TableGridSwitchButton/layoutConfig.tsx +1 -17
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/exports/testkit/unidriver.ts +1 -0
- package/src/hooks/useCollectionTableResize.ts +8 -11
- package/src/hooks/useEntityPage.ts +20 -12
- package/src/hooks/useLayoutSwitchCollection.ts +60 -0
- package/src/index.ts +6 -0
- package/src/model/view.ts +1 -1
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CustomColumnsState.ts +51 -1
- package/src/state/EditableTable/CellInteractionState.ts +1 -4
- package/src/state/EditableTable/EditableTableState.ts +31 -8
- package/src/state/EditableTable/MutationState.ts +2 -1
- package/src/state/EditableTable/types.ts +13 -2
- package/src/state/EntityPage/EntityPageFieldsState.ts +158 -0
- package/src/state/EntityPage/EntityPageState.ts +57 -6
- package/src/state/EntityPage/index.ts +1 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/ILayoutSwitchState.ts +10 -0
- package/src/state/LayoutSwitchState.ts +147 -0
- package/src/state/TableGridSwitchFoldersState.ts +1 -0
- package/src/state/TableGridSwitchState.ts +1 -0
- package/src/state/ViewTypeState.ts +10 -4
- package/src/styles.global.css +1 -1
- package/src/test-utils/CairoTestApp.tsx +1 -2
- package/src/testkit/jsdom.ts +5 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","constructor","params","_defineProperty2","default","Map","TaskState","SelectState","keyGetter","column","id","EventEmitter","action","select","onColumnClick","toggle","isChecked","value","searchValue","columnsCollection","refreshAllPages","table","container","CollectionState","events","queryName","environment","componentId","collection","filter","Boolean","join","fetchData","filteredColumns","items","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","dragAndDrop","CustomColumnsDragAndDropState","customColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","makeObservable","observable","persistCustomColumns","bound","setSearchValue","toSelectedColumns","computed","orderedColumns","selectedOrderedColumns","init","columns","customColumnsState","selectedColumns","some","selectedColumn","isSelected","dataCapsule","viewsProps","_touched","setItem","registerSelectedColumnChange","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","fireImmediately","selectedValues","setValue","emitEvents","disposer","_getStoredCustomColumns","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","_fetchFromStorage","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","_selectedColumnsFromUrl","storedCustomColumns","selectedColumnsFromStorage","tableColumn","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","trim","searchLower","toLowerCase","title","includes","exports"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction, observable } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport { cairoCustomizeColumnsInSidePanel } from '@wix/bex-core/bi';\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<T, F extends FiltersMap> {\n readonly table;\n readonly container;\n\n readonly columnsCollection;\n\n readonly dragAndDrop;\n\n readonly customColumnsHistory;\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n searchValue = '';\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n this.table = params.table;\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: [\n this.container.environment.componentId,\n this.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n fetchData: async () => {\n const { filteredColumns } = this;\n\n const items = filteredColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n\n return {\n items,\n };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n });\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n makeObservable(this, {\n searchValue: observable,\n persistCustomColumns: action.bound,\n setSearchValue: action.bound,\n toSelectedColumns: computed,\n orderedColumns: computed,\n selectedOrderedColumns: computed,\n filteredColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem('custom-columns', table.selectedColumns.value);\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem('custom-columns'),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (customColumnsState?.customColumnsHistory?._selectedColumnsFromUrl) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get filteredColumns(): Column[] {\n const { orderedColumns, searchValue } = this;\n\n if (!searchValue.trim()) {\n return orderedColumns;\n }\n\n const searchLower = searchValue.toLowerCase();\n return orderedColumns.filter((column) => {\n const name =\n column.name ||\n (typeof column.title === 'string' ? column.title : column.id);\n return name.toLowerCase().includes(searchLower);\n });\n }\n\n setSearchValue = action((value: string) => {\n this.searchValue = value;\n this.columnsCollection.refreshAllPages();\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","constructor","params","_defineProperty2","default","Map","TaskState","SelectState","keyGetter","column","id","EventEmitter","action","select","onColumnClick","toggle","isChecked","value","searchValue","columnsCollection","refreshAllPages","table","container","CollectionState","events","queryName","environment","componentId","collection","filter","Boolean","join","fetchData","filteredColumns","items","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","dragAndDrop","CustomColumnsDragAndDropState","customColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","makeObservable","observable","persistCustomColumns","bound","setSearchValue","toSelectedColumns","computed","orderedColumns","selectedOrderedColumns","init","columns","customColumnsState","selectedColumns","some","selectedColumn","isSelected","dataCapsule","viewsProps","_touched","setItem","registerSelectedColumnChange","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","fireImmediately","selectedValues","setValue","emitEvents","disposer","_getStoredCustomColumns","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","_fetchFromStorage","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","_selectedColumnsFromUrl","storedCustomColumns","selectedColumnsFromStorage","tableColumn","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","showFieldTypeIcons","collectionDataExtension","sidePanelTransition","sidePanel","transition","onClose","cairoFiltersPanelUsed","isOpened","feature","origin","close","trim","searchLower","toLowerCase","title","includes","exports"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TaskState,\n TransitionState,\n TypedEmitter,\n withoutDefaults,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction, observable } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport {\n cairoCustomizeColumnsInSidePanel,\n cairoFiltersPanelUsed,\n} from '@wix/bex-core/bi';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport type { CollectionDataExtensionState } from '../components/DataExtension';\n\nexport type CustomColumnsPanelState<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> = {\n readonly columnsCollection: CollectionState<Column, FiltersMap>;\n readonly searchValue: string;\n readonly orderedColumns: Column[];\n readonly dragAndDrop?: CustomColumnsDragAndDropState<T, F>;\n readonly select: SelectState<{ id: string }>;\n setSearchValue(value: string): void;\n onColumnCheckboxToggle(column: Column): void;\n customizeColumnsInSidePanelBi(params: {\n actionName: CustomColumnsActionName;\n }): void;\n init(): () => void;\n readonly showFieldTypeIcons: boolean;\n readonly collectionDataExtension?: CollectionDataExtensionState<T, F> | null;\n readonly sidePanelTransition?: TransitionState<string>;\n onClose(): void;\n};\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<T, F extends FiltersMap> {\n readonly table;\n readonly container;\n\n readonly columnsCollection;\n\n readonly dragAndDrop;\n\n readonly customColumnsHistory;\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n searchValue = '';\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n this.table = params.table;\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: [\n this.container.environment.componentId,\n this.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n fetchData: async () => {\n const { filteredColumns } = this;\n\n const items = filteredColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n\n return {\n items,\n };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n });\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n makeObservable(this, {\n searchValue: observable,\n persistCustomColumns: action.bound,\n setSearchValue: action.bound,\n toSelectedColumns: computed,\n orderedColumns: computed,\n selectedOrderedColumns: computed,\n filteredColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem('custom-columns', table.selectedColumns.value);\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem('custom-columns'),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (customColumnsState?.customColumnsHistory?._selectedColumnsFromUrl) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get showFieldTypeIcons() {\n return this.table.showFieldTypeIcons;\n }\n\n get collectionDataExtension() {\n return this.table.collectionDataExtension;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\n }\n\n get filteredColumns(): Column[] {\n const { orderedColumns, searchValue } = this;\n\n if (!searchValue.trim()) {\n return orderedColumns;\n }\n\n const searchLower = searchValue.toLowerCase();\n return orderedColumns.filter((column) => {\n const name =\n column.name ||\n (typeof column.title === 'string' ? column.title : column.id);\n return name.toLowerCase().includes(searchLower);\n });\n }\n\n setSearchValue = action((value: string) => {\n this.searchValue = value;\n this.columnsCollection.refreshAllPages();\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_utils","CellInteractionState","constructor","commitHandler","parent","_defineProperty2","default","undefined","Set","_commitHandler","_parent","makeObservable","focusedCell","observable","ref","editingCell","editingValue","editTrigger","selectedCells","selectionAnchor","isSelecting","isEditing","computed","selectedCellsList","focusCell","action","clearFocus","startEdit","commitEdit","cancelEdit","setEditingValue","selectRange","selectAll","moveFocus","moveToNextCell","moveToPreviousCell","startSweep","sweepTo","stopSweep","rowKey","columnId","clear","add","cellKey","trigger","_this$focusedCell","_this$focusedCell2","rk","cid","value","from","to","fromPos","_toIndices","toPos","keyedItems","editableColumns","minRow","Math","min","row","maxRow","max","minCol","col","maxCol","newKeys","r","c","key","id","_diffSelection","ki","length","_toPosition","direction","extend","pos","target","has","delete","isCellFocused","_this$focusedCell3","_this$focusedCell4","isCellEditing","_this$editingCell","_this$editingCell2","isCellSelected","result","parseCellKey","push","scrollFocusedCellIntoView","requestAnimationFrame","cellEl","focusedCellElement","scrollIntoView","block","inline","_adjustScrollForStickyElements","td","parentElement","cellLeft","getBoundingClientRect","left","maxPrevRight","child","Array","children","right","_cellEl$closest","scrollParent","closest","scrollLeft","headerEl","tableState","headerElement","scrollEl","collection","scrollableContent","cellRect","scrollRect","effectiveTop","bottom","top","scrollTop","getSelectionBorder","noBorder","isNeighborSelected","neighbor","exports"],"sources":["../../../../src/state/EditableTable/CellInteractionState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { Cell, CellBorder } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport { cellKey, parseCellKey, noBorder } from './utils';\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\ntype CommitHandler = (editingValue: any, cell: Cell) => void;\nexport type EditTrigger =\n | { kind: 'type'; key: string }\n | 'enter'\n | 'doubleClick';\n\nexport class CellInteractionState<T, F extends FiltersMap> {\n focusedCell: Cell | null = null;\n editingCell: Cell | null = null;\n editingValue: any = undefined;\n editTrigger: EditTrigger | null = null;\n selectedCells = new Set<string>();\n selectionAnchor: Cell | null = null;\n focusedCellElement: HTMLElement | null | undefined = null;\n /** True while the user is performing a mouse sweep selection. */\n isSelecting = false;\n private readonly _parent: EditableTableState<T, F>;\n private readonly _commitHandler: CommitHandler;\n\n constructor(commitHandler: CommitHandler, parent: EditableTableState<T, F>) {\n this._commitHandler = commitHandler;\n this._parent = parent;\n makeObservable(this, {\n focusedCell: observable.ref,\n editingCell: observable.ref,\n editingValue: observable.ref,\n editTrigger: observable.ref,\n selectedCells: observable,\n selectionAnchor: observable.ref,\n isSelecting: observable.ref,\n isEditing: computed,\n selectedCellsList: computed,\n focusCell: action,\n clearFocus: action,\n startEdit: action,\n commitEdit: action,\n cancelEdit: action,\n setEditingValue: action,\n selectRange: action,\n selectAll: action,\n moveFocus: action,\n moveToNextCell: action,\n moveToPreviousCell: action,\n startSweep: action,\n sweepTo: action,\n stopSweep: action,\n });\n }\n\n get isEditing(): boolean {\n return this.editingCell !== null;\n }\n\n focusCell(rowKey: string, columnId: string) {\n if (this.editingCell) {\n this.commitEdit();\n }\n this.focusedCell = { rowKey, columnId };\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rowKey, columnId));\n this.selectionAnchor = { rowKey, columnId };\n }\n\n clearFocus() {\n this.focusedCell = null;\n this.selectedCells.clear();\n this.selectionAnchor = null;\n this.cancelEdit();\n }\n\n startEdit(\n rowKey?: string,\n columnId?: string,\n trigger: EditTrigger = 'enter',\n ) {\n const rk = rowKey ?? this.focusedCell?.rowKey;\n const cid = columnId ?? this.focusedCell?.columnId;\n if (rk != null && cid != null) {\n this.editingValue = undefined;\n this.editTrigger = trigger;\n this.editingCell = { rowKey: rk, columnId: cid };\n this.focusedCell = { rowKey: rk, columnId: cid };\n // Collapse any multi-cell range selection down to the editing cell.\n // Without this, range-selected cells remain visually selected alongside\n // the editing cell, producing an invalid \"two cells selected\" state.\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rk, cid));\n this.selectionAnchor = { rowKey: rk, columnId: cid };\n }\n }\n\n setEditingValue(value: any) {\n this.editingValue = value;\n }\n\n commitEdit() {\n try {\n if (this.editingCell) {\n this._commitHandler(this.editingValue, this.editingCell);\n }\n } finally {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n }\n\n cancelEdit() {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n\n selectRange(from: Cell, to: Cell) {\n const fromPos = this._parent._toIndices(from);\n const toPos = this._parent._toIndices(to);\n if (!fromPos || !toPos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n const minRow = Math.min(fromPos.row, toPos.row);\n const maxRow = Math.max(fromPos.row, toPos.row);\n const minCol = Math.min(fromPos.col, toPos.col);\n const maxCol = Math.max(fromPos.col, toPos.col);\n\n const newKeys = new Set<string>();\n for (let r = minRow; r <= maxRow; r++) {\n for (let c = minCol; c <= maxCol; c++) {\n newKeys.add(cellKey(keyedItems[r].key, editableColumns[c].id));\n }\n }\n\n this._diffSelection(newKeys);\n this.focusedCell = to;\n }\n\n selectAll() {\n const { keyedItems, editableColumns } = this._parent;\n const newKeys = new Set<string>();\n for (const ki of keyedItems) {\n for (const col of editableColumns) {\n newKeys.add(cellKey(ki.key, col.id));\n }\n }\n\n this._diffSelection(newKeys);\n\n if (keyedItems.length > 0 && editableColumns.length > 0) {\n this.selectionAnchor = this._parent._toPosition(0, 0)!;\n this.focusedCell = this._parent._toPosition(\n keyedItems.length - 1,\n editableColumns.length - 1,\n )!;\n }\n }\n\n moveFocus(direction: Direction, extend = false) {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n switch (direction) {\n case 'up':\n row = Math.max(0, row - 1);\n break;\n case 'down':\n row = Math.min(keyedItems.length - 1, row + 1);\n break;\n case 'left':\n col = Math.max(0, col - 1);\n break;\n case 'right':\n col = Math.min(editableColumns.length - 1, col + 1);\n break;\n }\n\n const target = this._parent._toPosition(row, col)!;\n if (extend && this.selectionAnchor) {\n this.selectRange(this.selectionAnchor, target);\n } else {\n this.focusCell(target.rowKey, target.columnId);\n }\n }\n\n moveToNextCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col++;\n if (col >= editableColumns.length) {\n col = 0;\n row++;\n if (row >= keyedItems.length) {\n row = keyedItems.length - 1;\n col = editableColumns.length - 1;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n moveToPreviousCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col--;\n if (col < 0) {\n col = editableColumns.length - 1;\n row--;\n if (row < 0) {\n row = 0;\n col = 0;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n startSweep(rowKey: string, columnId: string) {\n this.isSelecting = true;\n this.focusCell(rowKey, columnId);\n }\n\n sweepTo(rowKey: string, columnId: string) {\n if (!this.isSelecting || !this.selectionAnchor) {\n return;\n }\n this.selectRange(this.selectionAnchor, { rowKey, columnId });\n }\n\n stopSweep() {\n this.isSelecting = false;\n }\n\n private _diffSelection(newKeys: Set<string>) {\n for (const key of this.selectedCells) {\n if (!newKeys.has(key)) {\n this.selectedCells.delete(key);\n }\n }\n for (const key of newKeys) {\n if (!this.selectedCells.has(key)) {\n this.selectedCells.add(key);\n }\n }\n }\n\n isCellFocused(rowKey: string, columnId: string): boolean {\n return (\n this.focusedCell?.rowKey === rowKey &&\n this.focusedCell?.columnId === columnId\n );\n }\n\n isCellEditing(rowKey: string, columnId: string): boolean {\n return (\n this.editingCell?.rowKey === rowKey &&\n this.editingCell?.columnId === columnId\n );\n }\n\n isCellSelected(rowKey: string, columnId: string): boolean {\n return this.selectedCells.has(cellKey(rowKey, columnId));\n }\n\n get selectedCellsList(): Cell[] {\n const result: Cell[] = [];\n for (const key of this.selectedCells) {\n const pos = parseCellKey(key);\n if (pos) {\n result.push(pos);\n }\n }\n return result;\n }\n\n scrollFocusedCellIntoView() {\n if (typeof requestAnimationFrame === 'undefined') {\n return;\n }\n requestAnimationFrame(() => {\n const cellEl = this.focusedCellElement;\n if (!cellEl) {\n return;\n }\n\n cellEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n this._adjustScrollForStickyElements(cellEl);\n });\n }\n\n /**\n * After scrollIntoView, the cell may be hidden behind sticky columns\n * or the sticky header. If so, scroll a bit more to fully reveal it.\n */\n private _adjustScrollForStickyElements(cellEl: HTMLElement) {\n const td = cellEl.parentElement;\n if (!td) {\n return;\n }\n\n // Horizontal: check if cell is behind a sticky column.\n // Sticky columns stay in place while other columns scroll, so their\n // bounding rect's right edge can overlap the focused cell's left edge.\n const row = td.parentElement;\n const cellLeft = td.getBoundingClientRect().left;\n if (row) {\n let maxPrevRight = 0;\n for (const child of Array.from(row.children)) {\n if (child === td) {\n break;\n }\n const right = child.getBoundingClientRect().right;\n if (right > maxPrevRight) {\n maxPrevRight = right;\n }\n }\n if (cellLeft < maxPrevRight) {\n const scrollParent = cellEl.closest('table')?.parentElement;\n if (scrollParent) {\n scrollParent.scrollLeft -= maxPrevRight - cellLeft;\n }\n }\n }\n\n // Vertical: same pattern — check if cell is behind the sticky header\n // or below the visible area of the page-level scroll container.\n const headerEl = this._parent.tableState.headerElement;\n const scrollEl = this._parent.collection.scrollableContent;\n if (scrollEl) {\n const cellRect = td.getBoundingClientRect();\n const scrollRect = scrollEl.getBoundingClientRect();\n const effectiveTop = headerEl\n ? headerEl.getBoundingClientRect().bottom\n : scrollRect.top;\n\n if (cellRect.top < effectiveTop) {\n scrollEl.scrollTop -= effectiveTop - cellRect.top + 2;\n } else if (cellRect.bottom > scrollRect.bottom) {\n scrollEl.scrollTop += cellRect.bottom - scrollRect.bottom + 2;\n }\n }\n }\n\n getSelectionBorder(rowKey: string, columnId: string): CellBorder {\n if (!this.isCellSelected(rowKey, columnId)) {\n return noBorder;\n }\n\n const pos = this._parent._toIndices({ rowKey, columnId });\n if (!pos) {\n return noBorder;\n }\n\n const isNeighborSelected = (row: number, col: number) => {\n const neighbor = this._parent._toPosition(row, col);\n return (\n neighbor !== null &&\n this.selectedCells.has(cellKey(neighbor.rowKey, neighbor.columnId))\n );\n };\n\n return {\n top: !isNeighborSelected(pos.row - 1, pos.col),\n bottom: !isNeighborSelected(pos.row + 1, pos.col),\n left: !isNeighborSelected(pos.row, pos.col - 1),\n right: !isNeighborSelected(pos.row, pos.col + 1),\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_utils","CellInteractionState","constructor","commitHandler","parent","_defineProperty2","default","undefined","Set","_commitHandler","_parent","makeObservable","focusedCell","observable","ref","editingCell","editingValue","editTrigger","selectedCells","selectionAnchor","isSelecting","isEditing","computed","selectedCellsList","focusCell","action","clearFocus","startEdit","commitEdit","cancelEdit","setEditingValue","selectRange","selectAll","moveFocus","moveToNextCell","moveToPreviousCell","startSweep","sweepTo","stopSweep","rowKey","columnId","clear","add","cellKey","trigger","_this$focusedCell","_this$focusedCell2","rk","cid","value","from","to","fromPos","_toIndices","toPos","keyedItems","editableColumns","minRow","Math","min","row","maxRow","max","minCol","col","maxCol","newKeys","r","c","key","id","_diffSelection","ki","length","_toPosition","direction","extend","pos","target","has","delete","isCellFocused","_this$focusedCell3","_this$focusedCell4","isCellEditing","_this$editingCell","_this$editingCell2","isCellSelected","result","parseCellKey","push","scrollFocusedCellIntoView","requestAnimationFrame","cellEl","focusedCellElement","scrollIntoView","block","inline","_adjustScrollForStickyElements","td","parentElement","cellLeft","getBoundingClientRect","left","maxPrevRight","child","Array","children","right","_cellEl$closest","scrollParent","closest","scrollLeft","headerEl","tableState","headerElement","scrollEl","collection","scrollableContent","cellRect","scrollRect","effectiveTop","bottom","top","scrollTop","getSelectionBorder","noBorder","isNeighborSelected","neighbor","exports"],"sources":["../../../../src/state/EditableTable/CellInteractionState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { Cell, CellBorder } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport { cellKey, parseCellKey, noBorder } from './utils';\nimport { EditTrigger } from '../../components/EditableTable/types';\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\ntype CommitHandler = (editingValue: any, cell: Cell) => void;\n\nexport class CellInteractionState<T, F extends FiltersMap> {\n focusedCell: Cell | null = null;\n editingCell: Cell | null = null;\n editingValue: any = undefined;\n editTrigger: EditTrigger | null = null;\n selectedCells = new Set<string>();\n selectionAnchor: Cell | null = null;\n focusedCellElement: HTMLElement | null | undefined = null;\n /** True while the user is performing a mouse sweep selection. */\n isSelecting = false;\n private readonly _parent: EditableTableState<T, F>;\n private readonly _commitHandler: CommitHandler;\n\n constructor(commitHandler: CommitHandler, parent: EditableTableState<T, F>) {\n this._commitHandler = commitHandler;\n this._parent = parent;\n makeObservable(this, {\n focusedCell: observable.ref,\n editingCell: observable.ref,\n editingValue: observable.ref,\n editTrigger: observable.ref,\n selectedCells: observable,\n selectionAnchor: observable.ref,\n isSelecting: observable.ref,\n isEditing: computed,\n selectedCellsList: computed,\n focusCell: action,\n clearFocus: action,\n startEdit: action,\n commitEdit: action,\n cancelEdit: action,\n setEditingValue: action,\n selectRange: action,\n selectAll: action,\n moveFocus: action,\n moveToNextCell: action,\n moveToPreviousCell: action,\n startSweep: action,\n sweepTo: action,\n stopSweep: action,\n });\n }\n\n get isEditing(): boolean {\n return this.editingCell !== null;\n }\n\n focusCell(rowKey: string, columnId: string) {\n if (this.editingCell) {\n this.commitEdit();\n }\n this.focusedCell = { rowKey, columnId };\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rowKey, columnId));\n this.selectionAnchor = { rowKey, columnId };\n }\n\n clearFocus() {\n this.focusedCell = null;\n this.selectedCells.clear();\n this.selectionAnchor = null;\n this.cancelEdit();\n }\n\n startEdit(\n rowKey?: string,\n columnId?: string,\n trigger: EditTrigger = 'enter',\n ) {\n const rk = rowKey ?? this.focusedCell?.rowKey;\n const cid = columnId ?? this.focusedCell?.columnId;\n if (rk != null && cid != null) {\n this.editingValue = undefined;\n this.editTrigger = trigger;\n this.editingCell = { rowKey: rk, columnId: cid };\n this.focusedCell = { rowKey: rk, columnId: cid };\n // Collapse any multi-cell range selection down to the editing cell.\n // Without this, range-selected cells remain visually selected alongside\n // the editing cell, producing an invalid \"two cells selected\" state.\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rk, cid));\n this.selectionAnchor = { rowKey: rk, columnId: cid };\n }\n }\n\n setEditingValue(value: any) {\n this.editingValue = value;\n }\n\n commitEdit() {\n try {\n if (this.editingCell) {\n this._commitHandler(this.editingValue, this.editingCell);\n }\n } finally {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n }\n\n cancelEdit() {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n\n selectRange(from: Cell, to: Cell) {\n const fromPos = this._parent._toIndices(from);\n const toPos = this._parent._toIndices(to);\n if (!fromPos || !toPos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n const minRow = Math.min(fromPos.row, toPos.row);\n const maxRow = Math.max(fromPos.row, toPos.row);\n const minCol = Math.min(fromPos.col, toPos.col);\n const maxCol = Math.max(fromPos.col, toPos.col);\n\n const newKeys = new Set<string>();\n for (let r = minRow; r <= maxRow; r++) {\n for (let c = minCol; c <= maxCol; c++) {\n newKeys.add(cellKey(keyedItems[r].key, editableColumns[c].id));\n }\n }\n\n this._diffSelection(newKeys);\n this.focusedCell = to;\n }\n\n selectAll() {\n const { keyedItems, editableColumns } = this._parent;\n const newKeys = new Set<string>();\n for (const ki of keyedItems) {\n for (const col of editableColumns) {\n newKeys.add(cellKey(ki.key, col.id));\n }\n }\n\n this._diffSelection(newKeys);\n\n if (keyedItems.length > 0 && editableColumns.length > 0) {\n this.selectionAnchor = this._parent._toPosition(0, 0)!;\n this.focusedCell = this._parent._toPosition(\n keyedItems.length - 1,\n editableColumns.length - 1,\n )!;\n }\n }\n\n moveFocus(direction: Direction, extend = false) {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n switch (direction) {\n case 'up':\n row = Math.max(0, row - 1);\n break;\n case 'down':\n row = Math.min(keyedItems.length - 1, row + 1);\n break;\n case 'left':\n col = Math.max(0, col - 1);\n break;\n case 'right':\n col = Math.min(editableColumns.length - 1, col + 1);\n break;\n }\n\n const target = this._parent._toPosition(row, col)!;\n if (extend && this.selectionAnchor) {\n this.selectRange(this.selectionAnchor, target);\n } else {\n this.focusCell(target.rowKey, target.columnId);\n }\n }\n\n moveToNextCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col++;\n if (col >= editableColumns.length) {\n col = 0;\n row++;\n if (row >= keyedItems.length) {\n row = keyedItems.length - 1;\n col = editableColumns.length - 1;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n moveToPreviousCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col--;\n if (col < 0) {\n col = editableColumns.length - 1;\n row--;\n if (row < 0) {\n row = 0;\n col = 0;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n startSweep(rowKey: string, columnId: string) {\n this.isSelecting = true;\n this.focusCell(rowKey, columnId);\n }\n\n sweepTo(rowKey: string, columnId: string) {\n if (!this.isSelecting || !this.selectionAnchor) {\n return;\n }\n this.selectRange(this.selectionAnchor, { rowKey, columnId });\n }\n\n stopSweep() {\n this.isSelecting = false;\n }\n\n private _diffSelection(newKeys: Set<string>) {\n for (const key of this.selectedCells) {\n if (!newKeys.has(key)) {\n this.selectedCells.delete(key);\n }\n }\n for (const key of newKeys) {\n if (!this.selectedCells.has(key)) {\n this.selectedCells.add(key);\n }\n }\n }\n\n isCellFocused(rowKey: string, columnId: string): boolean {\n return (\n this.focusedCell?.rowKey === rowKey &&\n this.focusedCell?.columnId === columnId\n );\n }\n\n isCellEditing(rowKey: string, columnId: string): boolean {\n return (\n this.editingCell?.rowKey === rowKey &&\n this.editingCell?.columnId === columnId\n );\n }\n\n isCellSelected(rowKey: string, columnId: string): boolean {\n return this.selectedCells.has(cellKey(rowKey, columnId));\n }\n\n get selectedCellsList(): Cell[] {\n const result: Cell[] = [];\n for (const key of this.selectedCells) {\n const pos = parseCellKey(key);\n if (pos) {\n result.push(pos);\n }\n }\n return result;\n }\n\n scrollFocusedCellIntoView() {\n if (typeof requestAnimationFrame === 'undefined') {\n return;\n }\n requestAnimationFrame(() => {\n const cellEl = this.focusedCellElement;\n if (!cellEl) {\n return;\n }\n\n cellEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n this._adjustScrollForStickyElements(cellEl);\n });\n }\n\n /**\n * After scrollIntoView, the cell may be hidden behind sticky columns\n * or the sticky header. If so, scroll a bit more to fully reveal it.\n */\n private _adjustScrollForStickyElements(cellEl: HTMLElement) {\n const td = cellEl.parentElement;\n if (!td) {\n return;\n }\n\n // Horizontal: check if cell is behind a sticky column.\n // Sticky columns stay in place while other columns scroll, so their\n // bounding rect's right edge can overlap the focused cell's left edge.\n const row = td.parentElement;\n const cellLeft = td.getBoundingClientRect().left;\n if (row) {\n let maxPrevRight = 0;\n for (const child of Array.from(row.children)) {\n if (child === td) {\n break;\n }\n const right = child.getBoundingClientRect().right;\n if (right > maxPrevRight) {\n maxPrevRight = right;\n }\n }\n if (cellLeft < maxPrevRight) {\n const scrollParent = cellEl.closest('table')?.parentElement;\n if (scrollParent) {\n scrollParent.scrollLeft -= maxPrevRight - cellLeft;\n }\n }\n }\n\n // Vertical: same pattern — check if cell is behind the sticky header\n // or below the visible area of the page-level scroll container.\n const headerEl = this._parent.tableState.headerElement;\n const scrollEl = this._parent.collection.scrollableContent;\n if (scrollEl) {\n const cellRect = td.getBoundingClientRect();\n const scrollRect = scrollEl.getBoundingClientRect();\n const effectiveTop = headerEl\n ? headerEl.getBoundingClientRect().bottom\n : scrollRect.top;\n\n if (cellRect.top < effectiveTop) {\n scrollEl.scrollTop -= effectiveTop - cellRect.top + 2;\n } else if (cellRect.bottom > scrollRect.bottom) {\n scrollEl.scrollTop += cellRect.bottom - scrollRect.bottom + 2;\n }\n }\n }\n\n getSelectionBorder(rowKey: string, columnId: string): CellBorder {\n if (!this.isCellSelected(rowKey, columnId)) {\n return noBorder;\n }\n\n const pos = this._parent._toIndices({ rowKey, columnId });\n if (!pos) {\n return noBorder;\n }\n\n const isNeighborSelected = (row: number, col: number) => {\n const neighbor = this._parent._toPosition(row, col);\n return (\n neighbor !== null &&\n this.selectedCells.has(cellKey(neighbor.rowKey, neighbor.columnId))\n );\n };\n\n return {\n top: !isNeighborSelected(pos.row - 1, pos.col),\n bottom: !isNeighborSelected(pos.row + 1, pos.col),\n left: !isNeighborSelected(pos.row, pos.col - 1),\n right: !isNeighborSelected(pos.row, pos.col + 1),\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -119,7 +119,7 @@ class EditableTableState {
|
|
|
119
119
|
return this.mutation.init();
|
|
120
120
|
}
|
|
121
121
|
addItem(afterItemKey) {
|
|
122
|
-
this.mutation.addItem(afterItemKey);
|
|
122
|
+
return this.mutation.addItem(afterItemKey);
|
|
123
123
|
}
|
|
124
124
|
duplicateItem(rowKey) {
|
|
125
125
|
this.mutation.duplicateItem(rowKey);
|
|
@@ -170,19 +170,37 @@ class EditableTableState {
|
|
|
170
170
|
}
|
|
171
171
|
// Plain click on a different cell: commit the edit and move focus.
|
|
172
172
|
this.cellInteraction.commitEdit();
|
|
173
|
+
|
|
174
|
+
// If the target cell wants edit-on-click, enter edit directly.
|
|
175
|
+
const col = this._columnMap.get(columnId);
|
|
176
|
+
const res = col ? this.resolveCellTypeByColumnId(col.id) : null;
|
|
177
|
+
if (res != null && res.editOnClick) {
|
|
178
|
+
const val = this.getCellDisplayValue(rowKey, columnId);
|
|
179
|
+
if (res.editOnClick(val) && this.isCellEditable(rowKey, columnId)) {
|
|
180
|
+
this.cellInteraction.focusCell(rowKey, columnId);
|
|
181
|
+
this.cellInteraction.startEdit(rowKey, columnId, 'click');
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
173
185
|
this.cellInteraction.focusCell(rowKey, columnId);
|
|
174
186
|
return;
|
|
175
187
|
}
|
|
176
188
|
const column = this._columnMap.get(columnId);
|
|
177
189
|
const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;
|
|
178
|
-
if (resolved != null && resolved.toggleValue) {
|
|
179
|
-
// Toggle cells
|
|
180
|
-
//
|
|
181
|
-
// interacts with the checkbox or presses Enter — not on the bare cell
|
|
182
|
-
// click — so that clicking to focus doesn't inadvertently change the value.
|
|
190
|
+
if (resolved != null && resolved.toggleValue || resolved != null && resolved.showEditWhenFocused) {
|
|
191
|
+
// Toggle/showEditWhenFocused cells: click focuses the cell and shows the
|
|
192
|
+
// EditComponent affordance. Keyboard navigation remains active.
|
|
183
193
|
this.cellInteraction.focusCell(rowKey, columnId);
|
|
184
194
|
return;
|
|
185
195
|
}
|
|
196
|
+
if (resolved != null && resolved.editOnClick) {
|
|
197
|
+
const value = this.getCellDisplayValue(rowKey, columnId);
|
|
198
|
+
if (resolved.editOnClick(value) && this.isCellEditable(rowKey, columnId)) {
|
|
199
|
+
this.cellInteraction.focusCell(rowKey, columnId);
|
|
200
|
+
this.cellInteraction.startEdit(rowKey, columnId, 'click');
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
186
204
|
if (shiftKey && this.cellInteraction.selectionAnchor) {
|
|
187
205
|
this.cellInteraction.selectRange(this.cellInteraction.selectionAnchor, {
|
|
188
206
|
rowKey,
|
|
@@ -201,7 +219,7 @@ class EditableTableState {
|
|
|
201
219
|
// Toggle-value cells (e.g. boolean) activate on single click, not double-click.
|
|
202
220
|
// Entering edit mode on double-click would apply the editing box-shadow
|
|
203
221
|
// without any EditComponent being shown, causing a visual border glitch.
|
|
204
|
-
if (resolved != null && resolved.toggleValue) {
|
|
222
|
+
if (resolved != null && resolved.toggleValue || resolved != null && resolved.showEditWhenFocused) {
|
|
205
223
|
return;
|
|
206
224
|
}
|
|
207
225
|
if (this.isCellEditable(rowKey, columnId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_bexCore","_ToolbarCollectionState","_TableState","_CellInteractionState","_CellValueState","_ClipboardState","_MutationState","EditableTableState","constructor","params","_defineProperty2","default","ConditionalModalState","items","tableState","onAddItemActionComplete","columnId","forceDirection","multiple","collection","sort","id","clearResult","toolbar","ToolbarCollectionState","container","componentType","TableState","cellValue","CellValueState","cellInteraction","CellInteractionState","editingValue","cell","commitHandler","clipboard","ClipboardState","mutation","MutationState","mutations","createOptimisticActions","makeObservable","addItemDisabled","observable","updateItemDisabled","removeItemDisabled","_allColumns","ref","editableColumns","computed","_columnMap","init","action","confirmDeleteItems","permissions","keyedItems","visibleColumns","itemsToRenderCount","Map","map","c","_getKeyedItem","key","getKeyedItem","_toIndices","pos","row","findIndex","ki","rowKey","col","_toPosition","visibleIds","length","find","filter","undefined","columns","_buildCellTypeMap","addItem","afterItemKey","duplicateItem","deleteItems","rowKeys","translate","t","deleteConfirmModal","open","theme","title","content","primaryButtonText","secondaryButtonText","primaryButtonOnClick","resolveCellTypeByColumnId","getCellDisplayValue","getCellValidation","isCellEditable","clearCells","cells","handleCellClick","shiftKey","isEditing","isCellEditing","commitEdit","focusCell","column","get","resolved","toggleValue","selectionAnchor","selectRange","handleCellDoubleClick","startEdit","exports"],"sources":["../../../../src/state/EditableTable/EditableTableState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n ConditionalModalState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { MessageModalLayoutProps } from '@wix/design-system';\nimport type { KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { TableState } from '../TableState';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { CellInteractionState } from './CellInteractionState';\nimport { CellValueState } from './CellValueState';\nimport { ClipboardState } from './ClipboardState';\nimport { MutationState } from './MutationState';\nimport type { EditableTableMutationHandlers } from './MutationState';\nimport type { Cell, EditableColumn, ValidationResult } from './types';\n\nexport interface EditableTablePermissions {\n addItemDisabled?: boolean;\n updateItemDisabled?: boolean;\n removeItemDisabled?: boolean;\n}\n\nexport interface EditableTableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n readonly permissions?: EditableTablePermissions;\n readonly mutations: EditableTableMutationHandlers<T>;\n readonly createOptimisticActions: (\n collection: CollectionState<T, F>,\n ) => CollectionOptimisticActions<T, F>;\n}\n\nexport interface EditableTableStatePublicAPI<T, F extends FiltersMap> {\n /** Underlying CollectionState instance */\n readonly collection: CollectionState<T, F>;\n /** Underlying ToolbarCollectionState instance */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /** Reset active filters & sorting and adds new items to the collection */\n onAddItemActionComplete(items: T[]): void;\n /** Sort by column */\n sort: (\n columnId: string,\n params?: { forceDirection?: SortOrder; multiple?: boolean },\n ) => void;\n}\n\nexport class EditableTableState<T, F extends FiltersMap>\n implements ICollectionComponentState, EditableTableStatePublicAPI<T, F>\n{\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tableState: TableState<T, F>;\n\n readonly cellInteraction: CellInteractionState<T, F>;\n readonly cellValue: CellValueState<T, F>;\n readonly clipboard: ClipboardState<T, F>;\n readonly mutation: MutationState<T, F>;\n readonly deleteConfirmModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n\n addItemDisabled = false;\n updateItemDisabled = false;\n removeItemDisabled = false;\n\n _allColumns: EditableColumn<T>[] = [];\n\n constructor(params: EditableTableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'EditableTable',\n });\n\n this.tableState = new TableState({\n collection: params.collection,\n container: params.container,\n toolbar: this.toolbar,\n });\n\n this.cellValue = new CellValueState<T, F>(this);\n\n this.cellInteraction = new CellInteractionState<T, F>(\n (editingValue, cell) => {\n this.cellValue.commitHandler(editingValue, cell);\n },\n this,\n );\n this.clipboard = new ClipboardState<T, F>(this);\n this.mutation = new MutationState<T, F>(\n this,\n params.mutations,\n params.createOptimisticActions,\n );\n\n makeObservable(this, {\n addItemDisabled: observable,\n updateItemDisabled: observable,\n removeItemDisabled: observable,\n _allColumns: observable.ref,\n editableColumns: computed,\n _columnMap: computed,\n init: action,\n confirmDeleteItems: action,\n });\n\n if (params.permissions) {\n this.addItemDisabled = params.permissions.addItemDisabled ?? false;\n this.updateItemDisabled = params.permissions.updateItemDisabled ?? false;\n this.removeItemDisabled = params.permissions.removeItemDisabled ?? false;\n }\n }\n\n get collection() {\n return this.tableState.collection;\n }\n\n get keyedItems() {\n return this.tableState.keyedItems;\n }\n\n get visibleColumns() {\n return this.tableState.visibleColumns;\n }\n\n get itemsToRenderCount() {\n return this.tableState.itemsToRenderCount;\n }\n\n get _columnMap(): Map<string, EditableColumn<T>> {\n return new Map(this._allColumns.map((c) => [c.id, c]));\n }\n\n _getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.collection.getKeyedItem(key);\n }\n\n _toIndices(pos: Cell): { row: number; col: number } | null {\n const row = this.keyedItems.findIndex((ki) => ki.key === pos.rowKey);\n const col = this.editableColumns.findIndex((c) => c.id === pos.columnId);\n return row === -1 || col === -1 ? null : { row, col };\n }\n\n _toPosition(row: number, col: number): Cell | null {\n const ki = this.keyedItems[row];\n const c = this.editableColumns[col];\n return ki && c ? { rowKey: ki.key, columnId: c.id } : null;\n }\n\n onAddItemActionComplete = (items: T[]) => {\n return this.tableState.onAddItemActionComplete(items);\n };\n\n get editableColumns(): EditableColumn<T>[] {\n const visibleIds = this.visibleColumns.map((c) => c.id);\n if (!visibleIds.length) {\n return this._allColumns;\n }\n return visibleIds\n .map((id) => this._allColumns.find((c) => c.id === id))\n .filter((c): c is EditableColumn<T> => c !== undefined);\n }\n\n init(columns: EditableColumn<T>[]) {\n this._allColumns = columns;\n this.cellValue._buildCellTypeMap();\n return this.mutation.init();\n }\n\n addItem(afterItemKey?: string) {\n this.mutation.addItem(afterItemKey);\n }\n\n duplicateItem(rowKey: string) {\n this.mutation.duplicateItem(rowKey);\n }\n\n deleteItems(rowKeys: string[]) {\n this.mutation.deleteItems(rowKeys);\n }\n\n confirmDeleteItems(rowKeys: string[]) {\n const { translate: t } = this.collection;\n this.deleteConfirmModal.open({\n theme: 'destructive',\n title: t('cairo.deleteModal.title'),\n content: t('cairo.deleteModal.body'),\n primaryButtonText: t('cairo.delete.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n primaryButtonOnClick: () => {\n this.deleteItems(rowKeys);\n },\n });\n }\n\n resolveCellTypeByColumnId(columnId: string) {\n return this.cellValue.resolveCellTypeByColumnId(columnId);\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n return this.cellValue.getCellDisplayValue(rowKey, columnId);\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n return this.cellValue.getCellValidation(rowKey, columnId);\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n return this.cellValue.isCellEditable(rowKey, columnId);\n }\n\n clearCells(cells: Cell[]) {\n this.cellValue.clearCells(cells);\n }\n\n handleCellClick(rowKey: string, columnId: string, shiftKey: boolean) {\n if (this.cellInteraction.isEditing) {\n if (this.cellInteraction.isCellEditing(rowKey, columnId)) {\n // Click landed inside the active editor — let the editor handle it.\n return;\n }\n // Shift-click while editing: ignore — extending a range selection during\n // an active edit is not a meaningful action.\n if (shiftKey) {\n return;\n }\n // Plain click on a different cell: commit the edit and move focus.\n this.cellInteraction.commitEdit();\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n if (resolved?.toggleValue) {\n // Toggle cells (e.g. boolean): click focuses the cell and shows the\n // checkbox affordance. The toggle itself is committed when the user\n // interacts with the checkbox or presses Enter — not on the bare cell\n // click — so that clicking to focus doesn't inadvertently change the value.\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n if (shiftKey && this.cellInteraction.selectionAnchor) {\n this.cellInteraction.selectRange(this.cellInteraction.selectionAnchor, {\n rowKey,\n columnId,\n });\n } else {\n this.cellInteraction.focusCell(rowKey, columnId);\n }\n }\n\n handleCellDoubleClick(rowKey: string, columnId: string) {\n if (this.updateItemDisabled) {\n return;\n }\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n // Toggle-value cells (e.g. boolean) activate on single click, not double-click.\n // Entering edit mode on double-click would apply the editing box-shadow\n // without any EditComponent being shown, causing a visual border glitch.\n if (resolved?.toggleValue) {\n return;\n }\n if (this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.startEdit(rowKey, columnId, 'doubleClick');\n }\n }\n\n sort = (\n columnId: string,\n {\n forceDirection,\n multiple,\n }: { forceDirection?: SortOrder; multiple?: boolean } = {},\n ) => {\n this.collection.sort(\n { id: columnId },\n { forceDirection, clearResult: true, multiple },\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_bexCore","_ToolbarCollectionState","_TableState","_CellInteractionState","_CellValueState","_ClipboardState","_MutationState","EditableTableState","constructor","params","_defineProperty2","default","ConditionalModalState","items","tableState","onAddItemActionComplete","columnId","forceDirection","multiple","collection","sort","id","clearResult","toolbar","ToolbarCollectionState","container","componentType","TableState","cellValue","CellValueState","cellInteraction","CellInteractionState","editingValue","cell","commitHandler","clipboard","ClipboardState","mutation","MutationState","mutations","createOptimisticActions","makeObservable","addItemDisabled","observable","updateItemDisabled","removeItemDisabled","_allColumns","ref","editableColumns","computed","_columnMap","init","action","confirmDeleteItems","permissions","keyedItems","visibleColumns","itemsToRenderCount","Map","map","c","_getKeyedItem","key","getKeyedItem","_toIndices","pos","row","findIndex","ki","rowKey","col","_toPosition","visibleIds","length","find","filter","undefined","columns","_buildCellTypeMap","addItem","afterItemKey","duplicateItem","deleteItems","rowKeys","translate","t","deleteConfirmModal","open","theme","title","content","primaryButtonText","secondaryButtonText","primaryButtonOnClick","resolveCellTypeByColumnId","getCellDisplayValue","getCellValidation","isCellEditable","clearCells","cells","handleCellClick","shiftKey","isEditing","isCellEditing","commitEdit","get","res","editOnClick","val","focusCell","startEdit","column","resolved","toggleValue","showEditWhenFocused","value","selectionAnchor","selectRange","handleCellDoubleClick","exports"],"sources":["../../../../src/state/EditableTable/EditableTableState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n ConditionalModalState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { MessageModalLayoutProps } from '@wix/design-system';\nimport type { KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { TableState } from '../TableState';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { CellInteractionState } from './CellInteractionState';\nimport { CellValueState } from './CellValueState';\nimport { ClipboardState } from './ClipboardState';\nimport { MutationState } from './MutationState';\nimport type { EditableTableMutationHandlers } from './MutationState';\nimport type { Cell, EditableColumn, ValidationResult } from './types';\n\nexport interface EditableTablePermissions {\n addItemDisabled?: boolean;\n updateItemDisabled?: boolean;\n removeItemDisabled?: boolean;\n}\n\nexport interface EditableTableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n readonly permissions?: EditableTablePermissions;\n readonly mutations: EditableTableMutationHandlers<T>;\n readonly createOptimisticActions: (\n collection: CollectionState<T, F>,\n ) => CollectionOptimisticActions<T, F>;\n}\n\nexport interface EditableTableStatePublicAPI<T, F extends FiltersMap> {\n /** Underlying CollectionState instance */\n readonly collection: CollectionState<T, F>;\n /** Underlying ToolbarCollectionState instance */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /** Reset active filters & sorting and adds new items to the collection */\n onAddItemActionComplete(items: T[]): void;\n /** Sort by column */\n sort: (\n columnId: string,\n params?: { forceDirection?: SortOrder; multiple?: boolean },\n ) => void;\n}\n\nexport class EditableTableState<T, F extends FiltersMap>\n implements ICollectionComponentState, EditableTableStatePublicAPI<T, F>\n{\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tableState: TableState<T, F>;\n\n readonly cellInteraction: CellInteractionState<T, F>;\n readonly cellValue: CellValueState<T, F>;\n readonly clipboard: ClipboardState<T, F>;\n readonly mutation: MutationState<T, F>;\n readonly deleteConfirmModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n\n addItemDisabled = false;\n updateItemDisabled = false;\n removeItemDisabled = false;\n\n _allColumns: EditableColumn<T>[] = [];\n\n constructor(params: EditableTableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'EditableTable',\n });\n\n this.tableState = new TableState({\n collection: params.collection,\n container: params.container,\n toolbar: this.toolbar,\n });\n\n this.cellValue = new CellValueState<T, F>(this);\n\n this.cellInteraction = new CellInteractionState<T, F>(\n (editingValue, cell) => {\n this.cellValue.commitHandler(editingValue, cell);\n },\n this,\n );\n this.clipboard = new ClipboardState<T, F>(this);\n this.mutation = new MutationState<T, F>(\n this,\n params.mutations,\n params.createOptimisticActions,\n );\n\n makeObservable(this, {\n addItemDisabled: observable,\n updateItemDisabled: observable,\n removeItemDisabled: observable,\n _allColumns: observable.ref,\n editableColumns: computed,\n _columnMap: computed,\n init: action,\n confirmDeleteItems: action,\n });\n\n if (params.permissions) {\n this.addItemDisabled = params.permissions.addItemDisabled ?? false;\n this.updateItemDisabled = params.permissions.updateItemDisabled ?? false;\n this.removeItemDisabled = params.permissions.removeItemDisabled ?? false;\n }\n }\n\n get collection() {\n return this.tableState.collection;\n }\n\n get keyedItems() {\n return this.tableState.keyedItems;\n }\n\n get visibleColumns() {\n return this.tableState.visibleColumns;\n }\n\n get itemsToRenderCount() {\n return this.tableState.itemsToRenderCount;\n }\n\n get _columnMap(): Map<string, EditableColumn<T>> {\n return new Map(this._allColumns.map((c) => [c.id, c]));\n }\n\n _getKeyedItem(key: string): KeyedItem<T> | undefined | null {\n return this.collection.getKeyedItem(key);\n }\n\n _toIndices(pos: Cell): { row: number; col: number } | null {\n const row = this.keyedItems.findIndex((ki) => ki.key === pos.rowKey);\n const col = this.editableColumns.findIndex((c) => c.id === pos.columnId);\n return row === -1 || col === -1 ? null : { row, col };\n }\n\n _toPosition(row: number, col: number): Cell | null {\n const ki = this.keyedItems[row];\n const c = this.editableColumns[col];\n return ki && c ? { rowKey: ki.key, columnId: c.id } : null;\n }\n\n onAddItemActionComplete = (items: T[]) => {\n return this.tableState.onAddItemActionComplete(items);\n };\n\n get editableColumns(): EditableColumn<T>[] {\n const visibleIds = this.visibleColumns.map((c) => c.id);\n if (!visibleIds.length) {\n return this._allColumns;\n }\n return visibleIds\n .map((id) => this._allColumns.find((c) => c.id === id))\n .filter((c): c is EditableColumn<T> => c !== undefined);\n }\n\n init(columns: EditableColumn<T>[]) {\n this._allColumns = columns;\n this.cellValue._buildCellTypeMap();\n return this.mutation.init();\n }\n\n addItem(afterItemKey?: string): string {\n return this.mutation.addItem(afterItemKey);\n }\n\n duplicateItem(rowKey: string) {\n this.mutation.duplicateItem(rowKey);\n }\n\n deleteItems(rowKeys: string[]) {\n this.mutation.deleteItems(rowKeys);\n }\n\n confirmDeleteItems(rowKeys: string[]) {\n const { translate: t } = this.collection;\n this.deleteConfirmModal.open({\n theme: 'destructive',\n title: t('cairo.deleteModal.title'),\n content: t('cairo.deleteModal.body'),\n primaryButtonText: t('cairo.delete.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n primaryButtonOnClick: () => {\n this.deleteItems(rowKeys);\n },\n });\n }\n\n resolveCellTypeByColumnId(columnId: string) {\n return this.cellValue.resolveCellTypeByColumnId(columnId);\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n return this.cellValue.getCellDisplayValue(rowKey, columnId);\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n return this.cellValue.getCellValidation(rowKey, columnId);\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n return this.cellValue.isCellEditable(rowKey, columnId);\n }\n\n clearCells(cells: Cell[]) {\n this.cellValue.clearCells(cells);\n }\n\n handleCellClick(rowKey: string, columnId: string, shiftKey: boolean) {\n if (this.cellInteraction.isEditing) {\n if (this.cellInteraction.isCellEditing(rowKey, columnId)) {\n // Click landed inside the active editor — let the editor handle it.\n return;\n }\n // Shift-click while editing: ignore — extending a range selection during\n // an active edit is not a meaningful action.\n if (shiftKey) {\n return;\n }\n // Plain click on a different cell: commit the edit and move focus.\n this.cellInteraction.commitEdit();\n\n // If the target cell wants edit-on-click, enter edit directly.\n const col = this._columnMap.get(columnId);\n const res = col ? this.resolveCellTypeByColumnId(col.id) : null;\n if (res?.editOnClick) {\n const val = this.getCellDisplayValue(rowKey, columnId);\n if (res.editOnClick(val) && this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n // Toggle/showEditWhenFocused cells: click focuses the cell and shows the\n // EditComponent affordance. Keyboard navigation remains active.\n this.cellInteraction.focusCell(rowKey, columnId);\n return;\n }\n\n if (resolved?.editOnClick) {\n const value = this.getCellDisplayValue(rowKey, columnId);\n if (\n resolved.editOnClick(value) &&\n this.isCellEditable(rowKey, columnId)\n ) {\n this.cellInteraction.focusCell(rowKey, columnId);\n this.cellInteraction.startEdit(rowKey, columnId, 'click');\n return;\n }\n }\n\n if (shiftKey && this.cellInteraction.selectionAnchor) {\n this.cellInteraction.selectRange(this.cellInteraction.selectionAnchor, {\n rowKey,\n columnId,\n });\n } else {\n this.cellInteraction.focusCell(rowKey, columnId);\n }\n }\n\n handleCellDoubleClick(rowKey: string, columnId: string) {\n if (this.updateItemDisabled) {\n return;\n }\n const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;\n // Toggle-value cells (e.g. boolean) activate on single click, not double-click.\n // Entering edit mode on double-click would apply the editing box-shadow\n // without any EditComponent being shown, causing a visual border glitch.\n if (resolved?.toggleValue || resolved?.showEditWhenFocused) {\n return;\n }\n if (this.isCellEditable(rowKey, columnId)) {\n this.cellInteraction.startEdit(rowKey, columnId, 'doubleClick');\n }\n }\n\n sort = (\n columnId: string,\n {\n forceDirection,\n multiple,\n }: { forceDirection?: SortOrder; multiple?: boolean } = {},\n ) => {\n this.collection.sort(\n { id: columnId },\n { forceDirection, clearResult: true, multiple },\n );\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAUA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAmCO,MAAMQ,kBAAkB,CAE/B;EAkBEC,WAAWA,CAACC,MAAsC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAVtB,IAAIC,8BAAqB,CAErD,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,2BAEe,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BACF,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BACL,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBAES,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mCAsFVE,KAAU,IAAK;MACxC,OAAO,IAAI,CAACC,UAAU,CAACC,uBAAuB,CAACF,KAAK,CAAC;IACvD,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,gBA8IM,CACLK,QAAgB,EAChB;MACEC,cAAc;MACdC;IACkD,CAAC,GAAG,CAAC,CAAC,KACvD;MACH,IAAI,CAACC,UAAU,CAACC,IAAI,CAClB;QAAEC,EAAE,EAAEL;MAAS,CAAC,EAChB;QAAEC,cAAc;QAAEK,WAAW,EAAE,IAAI;QAAEJ;MAAS,CAChD,CAAC;IACH,CAAC;IA9OC,IAAI,CAACK,OAAO,GACVd,MAAM,CAACc,OAAO,IACd,IAAIC,8CAAsB,CAAC;MACzBL,UAAU,EAAEV,MAAM,CAACU,UAAU;MAC7BM,SAAS,EAAEhB,MAAM,CAACgB,SAAS;MAC3BC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEJ,IAAI,CAACZ,UAAU,GAAG,IAAIa,sBAAU,CAAC;MAC/BR,UAAU,EAAEV,MAAM,CAACU,UAAU;MAC7BM,SAAS,EAAEhB,MAAM,CAACgB,SAAS;MAC3BF,OAAO,EAAE,IAAI,CAACA;IAChB,CAAC,CAAC;IAEF,IAAI,CAACK,SAAS,GAAG,IAAIC,8BAAc,CAAO,IAAI,CAAC;IAE/C,IAAI,CAACC,eAAe,GAAG,IAAIC,0CAAoB,CAC7C,CAACC,YAAY,EAAEC,IAAI,KAAK;MACtB,IAAI,CAACL,SAAS,CAACM,aAAa,CAACF,YAAY,EAAEC,IAAI,CAAC;IAClD,CAAC,EACD,IACF,CAAC;IACD,IAAI,CAACE,SAAS,GAAG,IAAIC,8BAAc,CAAO,IAAI,CAAC;IAC/C,IAAI,CAACC,QAAQ,GAAG,IAAIC,4BAAa,CAC/B,IAAI,EACJ7B,MAAM,CAAC8B,SAAS,EAChB9B,MAAM,CAAC+B,uBACT,CAAC;IAED,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,eAAe,EAAEC,gBAAU;MAC3BC,kBAAkB,EAAED,gBAAU;MAC9BE,kBAAkB,EAAEF,gBAAU;MAC9BG,WAAW,EAAEH,gBAAU,CAACI,GAAG;MAC3BC,eAAe,EAAEC,cAAQ;MACzBC,UAAU,EAAED,cAAQ;MACpBE,IAAI,EAAEC,YAAM;MACZC,kBAAkB,EAAED;IACtB,CAAC,CAAC;IAEF,IAAI3C,MAAM,CAAC6C,WAAW,EAAE;MACtB,IAAI,CAACZ,eAAe,GAAGjC,MAAM,CAAC6C,WAAW,CAACZ,eAAe,IAAI,KAAK;MAClE,IAAI,CAACE,kBAAkB,GAAGnC,MAAM,CAAC6C,WAAW,CAACV,kBAAkB,IAAI,KAAK;MACxE,IAAI,CAACC,kBAAkB,GAAGpC,MAAM,CAAC6C,WAAW,CAACT,kBAAkB,IAAI,KAAK;IAC1E;EACF;EAEA,IAAI1B,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACL,UAAU,CAACK,UAAU;EACnC;EAEA,IAAIoC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACzC,UAAU,CAACyC,UAAU;EACnC;EAEA,IAAIC,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAAC1C,UAAU,CAAC0C,cAAc;EACvC;EAEA,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC3C,UAAU,CAAC2C,kBAAkB;EAC3C;EAEA,IAAIP,UAAUA,CAAA,EAAmC;IAC/C,OAAO,IAAIQ,GAAG,CAAC,IAAI,CAACZ,WAAW,CAACa,GAAG,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACvC,EAAE,EAAEuC,CAAC,CAAC,CAAC,CAAC;EACxD;EAEAC,aAAaA,CAACC,GAAW,EAAmC;IAC1D,OAAO,IAAI,CAAC3C,UAAU,CAAC4C,YAAY,CAACD,GAAG,CAAC;EAC1C;EAEAE,UAAUA,CAACC,GAAS,EAAuC;IACzD,MAAMC,GAAG,GAAG,IAAI,CAACX,UAAU,CAACY,SAAS,CAAEC,EAAE,IAAKA,EAAE,CAACN,GAAG,KAAKG,GAAG,CAACI,MAAM,CAAC;IACpE,MAAMC,GAAG,GAAG,IAAI,CAACtB,eAAe,CAACmB,SAAS,CAAEP,CAAC,IAAKA,CAAC,CAACvC,EAAE,KAAK4C,GAAG,CAACjD,QAAQ,CAAC;IACxE,OAAOkD,GAAG,KAAK,CAAC,CAAC,IAAII,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG;MAAEJ,GAAG;MAAEI;IAAI,CAAC;EACvD;EAEAC,WAAWA,CAACL,GAAW,EAAEI,GAAW,EAAe;IACjD,MAAMF,EAAE,GAAG,IAAI,CAACb,UAAU,CAACW,GAAG,CAAC;IAC/B,MAAMN,CAAC,GAAG,IAAI,CAACZ,eAAe,CAACsB,GAAG,CAAC;IACnC,OAAOF,EAAE,IAAIR,CAAC,GAAG;MAAES,MAAM,EAAED,EAAE,CAACN,GAAG;MAAE9C,QAAQ,EAAE4C,CAAC,CAACvC;IAAG,CAAC,GAAG,IAAI;EAC5D;EAMA,IAAI2B,eAAeA,CAAA,EAAwB;IACzC,MAAMwB,UAAU,GAAG,IAAI,CAAChB,cAAc,CAACG,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACvC,EAAE,CAAC;IACvD,IAAI,CAACmD,UAAU,CAACC,MAAM,EAAE;MACtB,OAAO,IAAI,CAAC3B,WAAW;IACzB;IACA,OAAO0B,UAAU,CACdb,GAAG,CAAEtC,EAAE,IAAK,IAAI,CAACyB,WAAW,CAAC4B,IAAI,CAAEd,CAAC,IAAKA,CAAC,CAACvC,EAAE,KAAKA,EAAE,CAAC,CAAC,CACtDsD,MAAM,CAAEf,CAAC,IAA6BA,CAAC,KAAKgB,SAAS,CAAC;EAC3D;EAEAzB,IAAIA,CAAC0B,OAA4B,EAAE;IACjC,IAAI,CAAC/B,WAAW,GAAG+B,OAAO;IAC1B,IAAI,CAACjD,SAAS,CAACkD,iBAAiB,CAAC,CAAC;IAClC,OAAO,IAAI,CAACzC,QAAQ,CAACc,IAAI,CAAC,CAAC;EAC7B;EAEA4B,OAAOA,CAACC,YAAqB,EAAU;IACrC,OAAO,IAAI,CAAC3C,QAAQ,CAAC0C,OAAO,CAACC,YAAY,CAAC;EAC5C;EAEAC,aAAaA,CAACZ,MAAc,EAAE;IAC5B,IAAI,CAAChC,QAAQ,CAAC4C,aAAa,CAACZ,MAAM,CAAC;EACrC;EAEAa,WAAWA,CAACC,OAAiB,EAAE;IAC7B,IAAI,CAAC9C,QAAQ,CAAC6C,WAAW,CAACC,OAAO,CAAC;EACpC;EAEA9B,kBAAkBA,CAAC8B,OAAiB,EAAE;IACpC,MAAM;MAAEC,SAAS,EAAEC;IAAE,CAAC,GAAG,IAAI,CAAClE,UAAU;IACxC,IAAI,CAACmE,kBAAkB,CAACC,IAAI,CAAC;MAC3BC,KAAK,EAAE,aAAa;MACpBC,KAAK,EAAEJ,CAAC,CAAC,yBAAyB,CAAC;MACnCK,OAAO,EAAEL,CAAC,CAAC,wBAAwB,CAAC;MACpCM,iBAAiB,EAAEN,CAAC,CAAC,qBAAqB,CAAC;MAC3CO,mBAAmB,EAAEP,CAAC,CAAC,qBAAqB,CAAC;MAC7CQ,oBAAoB,EAAEA,CAAA,KAAM;QAC1B,IAAI,CAACX,WAAW,CAACC,OAAO,CAAC;MAC3B;IACF,CAAC,CAAC;EACJ;EAEAW,yBAAyBA,CAAC9E,QAAgB,EAAE;IAC1C,OAAO,IAAI,CAACY,SAAS,CAACkE,yBAAyB,CAAC9E,QAAQ,CAAC;EAC3D;EAEA+E,mBAAmBA,CAAC1B,MAAc,EAAErD,QAAgB,EAAO;IACzD,OAAO,IAAI,CAACY,SAAS,CAACmE,mBAAmB,CAAC1B,MAAM,EAAErD,QAAQ,CAAC;EAC7D;EAEAgF,iBAAiBA,CAAC3B,MAAc,EAAErD,QAAgB,EAAoB;IACpE,OAAO,IAAI,CAACY,SAAS,CAACoE,iBAAiB,CAAC3B,MAAM,EAAErD,QAAQ,CAAC;EAC3D;EAEAiF,cAAcA,CAAC5B,MAAc,EAAErD,QAAgB,EAAW;IACxD,OAAO,IAAI,CAACY,SAAS,CAACqE,cAAc,CAAC5B,MAAM,EAAErD,QAAQ,CAAC;EACxD;EAEAkF,UAAUA,CAACC,KAAa,EAAE;IACxB,IAAI,CAACvE,SAAS,CAACsE,UAAU,CAACC,KAAK,CAAC;EAClC;EAEAC,eAAeA,CAAC/B,MAAc,EAAErD,QAAgB,EAAEqF,QAAiB,EAAE;IACnE,IAAI,IAAI,CAACvE,eAAe,CAACwE,SAAS,EAAE;MAClC,IAAI,IAAI,CAACxE,eAAe,CAACyE,aAAa,CAAClC,MAAM,EAAErD,QAAQ,CAAC,EAAE;QACxD;QACA;MACF;MACA;MACA;MACA,IAAIqF,QAAQ,EAAE;QACZ;MACF;MACA;MACA,IAAI,CAACvE,eAAe,CAAC0E,UAAU,CAAC,CAAC;;MAEjC;MACA,MAAMlC,GAAG,GAAG,IAAI,CAACpB,UAAU,CAACuD,GAAG,CAACzF,QAAQ,CAAC;MACzC,MAAM0F,GAAG,GAAGpC,GAAG,GAAG,IAAI,CAACwB,yBAAyB,CAACxB,GAAG,CAACjD,EAAE,CAAC,GAAG,IAAI;MAC/D,IAAIqF,GAAG,YAAHA,GAAG,CAAEC,WAAW,EAAE;QACpB,MAAMC,GAAG,GAAG,IAAI,CAACb,mBAAmB,CAAC1B,MAAM,EAAErD,QAAQ,CAAC;QACtD,IAAI0F,GAAG,CAACC,WAAW,CAACC,GAAG,CAAC,IAAI,IAAI,CAACX,cAAc,CAAC5B,MAAM,EAAErD,QAAQ,CAAC,EAAE;UACjE,IAAI,CAACc,eAAe,CAAC+E,SAAS,CAACxC,MAAM,EAAErD,QAAQ,CAAC;UAChD,IAAI,CAACc,eAAe,CAACgF,SAAS,CAACzC,MAAM,EAAErD,QAAQ,EAAE,OAAO,CAAC;UACzD;QACF;MACF;MAEA,IAAI,CAACc,eAAe,CAAC+E,SAAS,CAACxC,MAAM,EAAErD,QAAQ,CAAC;MAChD;IACF;IAEA,MAAM+F,MAAM,GAAG,IAAI,CAAC7D,UAAU,CAACuD,GAAG,CAACzF,QAAQ,CAAC;IAC5C,MAAMgG,QAAQ,GAAGD,MAAM,GAAG,IAAI,CAACjB,yBAAyB,CAACiB,MAAM,CAAC1F,EAAE,CAAC,GAAG,IAAI;IAC1E,IAAI2F,QAAQ,YAARA,QAAQ,CAAEC,WAAW,IAAID,QAAQ,YAARA,QAAQ,CAAEE,mBAAmB,EAAE;MAC1D;MACA;MACA,IAAI,CAACpF,eAAe,CAAC+E,SAAS,CAACxC,MAAM,EAAErD,QAAQ,CAAC;MAChD;IACF;IAEA,IAAIgG,QAAQ,YAARA,QAAQ,CAAEL,WAAW,EAAE;MACzB,MAAMQ,KAAK,GAAG,IAAI,CAACpB,mBAAmB,CAAC1B,MAAM,EAAErD,QAAQ,CAAC;MACxD,IACEgG,QAAQ,CAACL,WAAW,CAACQ,KAAK,CAAC,IAC3B,IAAI,CAAClB,cAAc,CAAC5B,MAAM,EAAErD,QAAQ,CAAC,EACrC;QACA,IAAI,CAACc,eAAe,CAAC+E,SAAS,CAACxC,MAAM,EAAErD,QAAQ,CAAC;QAChD,IAAI,CAACc,eAAe,CAACgF,SAAS,CAACzC,MAAM,EAAErD,QAAQ,EAAE,OAAO,CAAC;QACzD;MACF;IACF;IAEA,IAAIqF,QAAQ,IAAI,IAAI,CAACvE,eAAe,CAACsF,eAAe,EAAE;MACpD,IAAI,CAACtF,eAAe,CAACuF,WAAW,CAAC,IAAI,CAACvF,eAAe,CAACsF,eAAe,EAAE;QACrE/C,MAAM;QACNrD;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAI,CAACc,eAAe,CAAC+E,SAAS,CAACxC,MAAM,EAAErD,QAAQ,CAAC;IAClD;EACF;EAEAsG,qBAAqBA,CAACjD,MAAc,EAAErD,QAAgB,EAAE;IACtD,IAAI,IAAI,CAAC4B,kBAAkB,EAAE;MAC3B;IACF;IACA,MAAMmE,MAAM,GAAG,IAAI,CAAC7D,UAAU,CAACuD,GAAG,CAACzF,QAAQ,CAAC;IAC5C,MAAMgG,QAAQ,GAAGD,MAAM,GAAG,IAAI,CAACjB,yBAAyB,CAACiB,MAAM,CAAC1F,EAAE,CAAC,GAAG,IAAI;IAC1E;IACA;IACA;IACA,IAAI2F,QAAQ,YAARA,QAAQ,CAAEC,WAAW,IAAID,QAAQ,YAARA,QAAQ,CAAEE,mBAAmB,EAAE;MAC1D;IACF;IACA,IAAI,IAAI,CAACjB,cAAc,CAAC5B,MAAM,EAAErD,QAAQ,CAAC,EAAE;MACzC,IAAI,CAACc,eAAe,CAACgF,SAAS,CAACzC,MAAM,EAAErD,QAAQ,EAAE,aAAa,CAAC;IACjE;EACF;AAcF;AAACuG,OAAA,CAAAhH,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MutationState","constructor","parent","handlers","createOptimisticActions","_defineProperty2","default","_parent","_handlers","_optimisticActions","collection","init","addItem","afterItemKey","newItem","createItem","createOne","submit","submitCreate","successToast","errorToast","_err","retry","message","action","onClick","text","duplicateItem","rowKey","keyedItem","keyedItems","find","ki","key","sourceItem","item","
|
|
1
|
+
{"version":3,"names":["MutationState","constructor","parent","handlers","createOptimisticActions","_defineProperty2","default","_parent","_handlers","_optimisticActions","collection","init","addItem","afterItemKey","newItem","createItem","createOne","submit","submitCreate","successToast","errorToast","_err","retry","message","action","onClick","text","itemKey","duplicateItem","rowKey","keyedItem","keyedItems","find","ki","key","sourceItem","item","newId","sourceId","duplicate","k","Object","keys","String","deleteItems","rowKeys","items","map","_this$_parent$keyedIt","filter","length","deleteMany","submitDelete","updateItems","updatedItems","updateMany","keepPosition","submitUpdate","exports"],"sources":["../../../../src/state/EditableTable/MutationState.ts"],"sourcesContent":["import type {\n CollectionOptimisticActions,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\n\nexport interface EditableTableMutationHandlers<T> {\n /** Factory to create a new empty item with a fresh ID */\n createItem: () => T;\n /** Submit updated items to the server */\n submitUpdate: (items: T[]) => Promise<T[] | void>;\n /** Submit newly created items to the server */\n submitCreate: (items: T[]) => Promise<T[] | void>;\n /** Submit item deletions to the server */\n submitDelete: (items: T[]) => Promise<void>;\n}\n\nexport class MutationState<T, F extends FiltersMap> {\n private readonly _handlers: EditableTableMutationHandlers<T>;\n private readonly _optimisticActions: CollectionOptimisticActions<T, F>;\n private readonly _parent: EditableTableState<T, F>;\n\n constructor(\n parent: EditableTableState<T, F>,\n handlers: EditableTableMutationHandlers<T>,\n createOptimisticActions: (\n collection: CollectionState<T, F>,\n ) => CollectionOptimisticActions<T, F>,\n ) {\n this._parent = parent;\n this._handlers = handlers;\n this._optimisticActions = createOptimisticActions(parent.collection);\n }\n\n init() {\n return this._optimisticActions.init();\n }\n\n addItem(afterItemKey?: string): string {\n const newItem = this._handlers.createItem();\n this._optimisticActions.createOne(newItem, {\n submit: this._handlers.submitCreate,\n afterItemKey,\n successToast: 'Item created',\n errorToast: (_err: unknown, { retry }: { retry: () => void }) => ({\n message: 'Failed to create item',\n action: { onClick: retry, text: 'Retry' },\n }),\n });\n return this._parent.collection.itemKey(newItem);\n }\n\n duplicateItem(rowKey: string) {\n const keyedItem = this._parent.keyedItems.find((ki) => ki.key === rowKey);\n if (!keyedItem) {\n return;\n }\n\n const sourceItem = keyedItem.item;\n const newItem = this._handlers.createItem();\n const { itemKey } = this._parent.collection;\n const newId = itemKey(newItem);\n const sourceId = itemKey(sourceItem);\n const duplicate = { ...sourceItem } as any;\n for (const k of Object.keys(duplicate)) {\n if (String(duplicate[k]) === sourceId) {\n duplicate[k] = newId;\n break;\n }\n }\n this._optimisticActions.createOne(duplicate as T, {\n submit: this._handlers.submitCreate,\n afterItemKey: keyedItem.key,\n successToast: 'Item duplicated',\n errorToast: (_err: unknown, { retry }: { retry: () => void }) => ({\n message: 'Failed to duplicate item',\n action: { onClick: retry, text: 'Retry' },\n }),\n });\n }\n\n deleteItems(rowKeys: string[]) {\n const items = rowKeys\n .map((key) => this._parent.keyedItems.find((ki) => ki.key === key)?.item)\n .filter((item): item is T => item != null);\n if (items.length === 0) {\n return;\n }\n\n this._optimisticActions.deleteMany(items, {\n submit: this._handlers.submitDelete,\n successToast:\n items.length === 1 ? 'Item deleted' : `${items.length} items deleted`,\n errorToast: (_err: unknown, { retry }: { retry: () => void }) => ({\n message: 'Failed to delete items',\n action: { onClick: retry, text: 'Retry' },\n }),\n });\n }\n\n updateItems(updatedItems: T[]) {\n if (updatedItems.length === 0) {\n return;\n }\n this._optimisticActions.updateMany(updatedItems, {\n keepPosition: true,\n submit: this._handlers.submitUpdate,\n successToast:\n updatedItems.length === 1\n ? 'Item updated'\n : `${updatedItems.length} items updated`,\n errorToast: (_err: unknown, { retry }: { retry: () => void }) => ({\n message: 'Failed to update items',\n action: { onClick: retry, text: 'Retry' },\n }),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type {\n CellViewProps,\n CellEditProps,\n} from '../../components/EditableTable/types';\n\nexport interface Cell {\n rowKey: string;\n columnId: string;\n}\n\nexport interface CellBorder {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\nexport type ValidationRule =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type {\n CellViewProps,\n CellEditProps,\n} from '../../components/EditableTable/types';\n\nexport interface Cell {\n rowKey: string;\n columnId: string;\n}\n\nexport interface CellBorder {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n}\n\nexport type ValidationRule =\n | { type: 'required'; message: string }\n | { type: 'min' | 'max'; value: number; message: string }\n | { type: 'minLength' | 'maxLength'; value: number; message: string }\n | { type: 'pattern'; value: RegExp; message: string }\n | { type: 'custom'; validate: (value: unknown) => boolean; message: string }\n | {\n type: 'specificValues';\n values: { id: string; value: string }[];\n message: string;\n };\n\nexport interface ValidationResult {\n valid: boolean;\n errors?: string[];\n}\n\nexport interface CellType {\n type: keyof CellTypeConfigMap;\n\n /** Render cell in view mode (read-only display) */\n ViewComponent: ComponentType<CellViewProps<any>>;\n\n /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */\n EditComponent?: ComponentType<CellEditProps<any>>;\n\n /** Serialize value to clipboard string */\n serialize?: (value: any) => string;\n\n /** Deserialize clipboard string to value */\n deserialize?: (raw: string) => any;\n\n /** Validate a cell value. Return null if valid, or error message string. */\n validate?: (value: any, rules?: ValidationRule[]) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Can this cell type be cleared with Delete key? (default: true) */\n clearable?: boolean;\n\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?: (value: any) => any;\n\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?: (value: any) => boolean;\n\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * CMS-web pattern: text clears to '', number clears only for digits, date blocks non-digits.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?: (params: {\n key: string;\n validation?: ValidationRule[];\n }) => { value?: any } | undefined;\n\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before commitEdit() from EditableCell (blur/Enter) and useKeyboardNavigation (Tab).\n * The value is written back to editingValue via runInAction before committing. */\n normalizeOnCommit?: (value: any) => any;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\n date: never;\n object: never;\n image: never;\n custom: Omit<CellType, 'type'>;\n}\n\ninterface EditableColumnBase<T> extends Omit<TableColumn<T>, 'render'> {\n id: string;\n /** Column type — maps to a CellType in the registry */\n cellType: keyof CellTypeConfigMap;\n\n /** Extract the cell value from the row data */\n getValue: (item: T) => any;\n\n /** Return updated item with new cell value (immutable) */\n setValue?: (item: T, value: any) => T;\n\n /** Column-level validation rules */\n validation?: ValidationRule[];\n\n /** Is this column editable? (default: true if setValue exists) */\n editable?: boolean | ((item: T) => boolean);\n}\n\nexport type EditableColumn<\n T,\n C extends keyof CellTypeConfigMap = keyof CellTypeConfigMap,\n> = C extends C\n ? EditableColumnBase<T> & {\n cellType: C;\n typeConfig?: CellTypeConfigMap[C] extends never\n ? never\n : CellTypeConfigMap[C];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
|