@wix/patterns 1.375.0 → 1.377.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.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- 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/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/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.js +9 -8
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css +3 -0
- 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/EditableCell.uni.driver.js +5 -5
- package/dist/cjs/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableColumnHeader.uni.driver.js +28 -0
- package/dist/cjs/components/EditableTable/EditableColumnHeader.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/EditableTable.js +29 -7
- package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js +8 -2
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +3 -3
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.js +107 -0
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.js.map +1 -0
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css +12 -0
- package/dist/cjs/components/EditableTable/{cellTypes/select/View.st.css.js → HeaderActionsPopover.st.css.js} +4 -4
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -0
- 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.js +4 -2
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.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.js +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.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/index.js +1 -3
- 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.js +123 -42
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css +9 -0
- 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/SpecificValuesEdit.uni.driver.js +25 -0
- package/dist/cjs/components/EditableTable/cellTypes/text/SpecificValuesEdit.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/text/View.js +16 -8
- package/dist/cjs/components/EditableTable/cellTypes/text/View.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/text/index.js +11 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.js +9 -15
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.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.js +5 -35
- package/dist/cjs/components/EditableTable/cellTypes/url/View.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/cellTypes/url/View.uni.driver.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/url/View.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/index.js +19 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/headerActionTypes.js +4 -0
- package/dist/cjs/components/EditableTable/headerActionTypes.js.map +1 -0
- package/dist/cjs/components/EditableTable/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/types.js.map +1 -1
- package/dist/cjs/components/EditableTable/useBuiltInHeaderActions.js +109 -0
- package/dist/cjs/components/EditableTable/useBuiltInHeaderActions.js.map +1 -0
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js +7 -3
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/cjs/components/EditableTable/useKeyboardNavigation.js +9 -6
- package/dist/cjs/components/EditableTable/useKeyboardNavigation.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/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/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/model/tableColumn.js.map +1 -1
- package/dist/cjs/providers/PatternsFieldsProvider.js +37 -0
- package/dist/cjs/providers/PatternsFieldsProvider.js.map +1 -0
- package/dist/cjs/providers/SchemaProvider.js +39 -0
- package/dist/cjs/providers/SchemaProvider.js.map +1 -0
- package/dist/cjs/providers/index.js +12 -0
- package/dist/cjs/providers/index.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/CustomFields/CustomFieldsAllNamespacesFormState.js +2 -2
- package/dist/cjs/state/CustomFields/CustomFieldsAllNamespacesFormState.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellValueState.js +28 -11
- package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/cjs/state/EditableTable/EditableTableState.js +29 -14
- package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/cjs/state/EditableTable/index.js.map +1 -1
- package/dist/cjs/state/EditableTable/types.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/KanbanState/KanbanState.js +6 -2
- package/dist/cjs/state/KanbanState/KanbanState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/test-utils/CairoTestApp.js +29 -21
- package/dist/cjs/test-utils/CairoTestApp.js.map +1 -1
- package/dist/cjs/types/SchemaConfig.js +4 -0
- package/dist/cjs/types/SchemaConfig.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/AutoCompleteFilter.md +19 -3
- package/dist/docs/CollectionEmptyState.md +2 -2
- package/dist/docs/CollectionNoResultsState.md +2 -2
- package/dist/docs/CollectionPremiumEmptyState.md +2 -2
- package/dist/docs/DateRangeFilter.md +54 -0
- package/dist/docs/MultiSelectCheckboxFilter.md +23 -3
- package/dist/docs/MultiSelectCollectionFilter.md +33 -7
- package/dist/docs/PickerContent.md +24 -0
- package/dist/docs/PickerModal.md +24 -0
- package/dist/docs/SingleSelectFilter.md +19 -4
- package/dist/docs/Table.md +11 -0
- package/dist/docs/TableFolders.md +11 -0
- package/dist/docs/TableGridSwitch.md +10 -0
- package/dist/docs/TableGridSwitchFolders.md +10 -0
- package/dist/docs/index.json +22 -22
- 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/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.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/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.js +2 -3
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css +3 -0
- 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/EditableCell.uni.driver.js +3 -3
- package/dist/esm/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableColumnHeader.uni.driver.js +24 -0
- package/dist/esm/components/EditableTable/EditableColumnHeader.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/EditableTable.js +9 -3
- package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js +6 -0
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js +1 -1
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.js +33 -0
- package/dist/esm/components/EditableTable/HeaderActionsPopover.js.map +1 -0
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css +12 -0
- package/dist/esm/components/EditableTable/{cellTypes/select/View.st.css.js → HeaderActionsPopover.st.css.js} +4 -4
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.js +2 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.js.map +1 -1
- 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.js +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.js.map +1 -1
- 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/index.js +1 -3
- 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/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.js +59 -30
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css +9 -0
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/SpecificValuesEdit.uni.driver.js +18 -0
- package/dist/esm/components/EditableTable/cellTypes/text/SpecificValuesEdit.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/text/View.js +10 -3
- package/dist/esm/components/EditableTable/cellTypes/text/View.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/index.js +7 -1
- package/dist/esm/components/EditableTable/cellTypes/text/index.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.js +3 -7
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.js +2 -5
- package/dist/esm/components/EditableTable/cellTypes/url/View.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.uni.driver.js +5 -3
- package/dist/esm/components/EditableTable/cellTypes/url/View.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/index.js +19 -0
- package/dist/esm/components/EditableTable/cellTypes/url/index.js.map +1 -1
- package/dist/esm/components/EditableTable/headerActionTypes.js +2 -0
- package/dist/esm/components/EditableTable/headerActionTypes.js.map +1 -0
- package/dist/esm/components/EditableTable/types.js.map +1 -1
- package/dist/esm/components/EditableTable/useBuiltInHeaderActions.js +69 -0
- package/dist/esm/components/EditableTable/useBuiltInHeaderActions.js.map +1 -0
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js +6 -3
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/esm/components/EditableTable/useKeyboardNavigation.js +4 -2
- package/dist/esm/components/EditableTable/useKeyboardNavigation.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/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- 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/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- 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/MultipleDragOverlayEffect.st.css.js.map +1 -1
- 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/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- 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/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/providers/PatternsFieldsProvider.js +18 -0
- package/dist/esm/providers/PatternsFieldsProvider.js.map +1 -0
- package/dist/esm/providers/SchemaProvider.js +13 -0
- package/dist/esm/providers/SchemaProvider.js.map +1 -0
- package/dist/esm/providers/index.js +2 -0
- package/dist/esm/providers/index.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CustomFields/CustomFieldsAllNamespacesFormState.js +2 -1
- package/dist/esm/state/CustomFields/CustomFieldsAllNamespacesFormState.js.map +1 -1
- package/dist/esm/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/esm/state/EditableTable/CellValueState.js +34 -11
- package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/esm/state/EditableTable/EditableTableState.js +26 -13
- package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/KanbanState/KanbanState.js +6 -2
- package/dist/esm/state/KanbanState/KanbanState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/test-utils/CairoTestApp.js +3 -1
- package/dist/esm/test-utils/CairoTestApp.js.map +1 -1
- package/dist/esm/types/SchemaConfig.js +2 -0
- package/dist/esm/types/SchemaConfig.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/components/ActionCell/useActionCellColumn.d.ts +1 -0
- package/dist/types/components/ActionCell/useActionCellColumn.d.ts.map +1 -1
- package/dist/types/components/ActionCell/useActionCellColumnBase.d.ts +1 -0
- package/dist/types/components/ActionCell/useActionCellColumnBase.d.ts.map +1 -1
- package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +409 -28
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.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/DragHandle/DragHandle.st.css.d.ts.map +1 -1
- package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +6 -3
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableColumnHeader.uni.driver.d.ts +17 -0
- package/dist/types/components/EditableTable/EditableColumnHeader.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/EditableTable.d.ts +2 -0
- package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +116 -4
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.d.ts +8 -0
- package/dist/types/components/EditableTable/HeaderActionsPopover.d.ts.map +1 -0
- package/dist/types/components/EditableTable/{cellTypes/select/View.st.css.d.ts → HeaderActionsPopover.st.css.d.ts} +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.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/index.d.ts +1 -2
- 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/text/Edit.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/{select/Edit.uni.driver.d.ts → text/SpecificValuesEdit.uni.driver.d.ts} +5 -2
- package/dist/types/components/EditableTable/cellTypes/text/SpecificValuesEdit.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/text/View.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/View.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/View.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/View.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/headerActionTypes.d.ts +16 -0
- package/dist/types/components/EditableTable/headerActionTypes.d.ts.map +1 -0
- package/dist/types/components/EditableTable/index.d.ts +1 -0
- package/dist/types/components/EditableTable/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/types.d.ts +9 -1
- package/dist/types/components/EditableTable/types.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useBuiltInHeaderActions.d.ts +6 -0
- package/dist/types/components/EditableTable/useBuiltInHeaderActions.d.ts.map +1 -0
- package/dist/types/components/EditableTable/useCellFocusAndEditing.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useKeyboardNavigation.d.ts.map +1 -1
- package/dist/types/components/ExportButton/ExportButton.uni.driver.d.ts +94 -1
- package/dist/types/components/ExportButton/ExportButton.uni.driver.d.ts.map +1 -1
- package/dist/types/components/ExportButton/ExportModal.uni.driver.d.ts +94 -1
- package/dist/types/components/ExportButton/ExportModal.uni.driver.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 +201 -15
- package/dist/types/components/Grid/Grid.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +414 -42
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +201 -15
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +94 -1
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +94 -1
- package/dist/types/components/ImportButton/ImportModal.uni.driver.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 +11 -11
- package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
- 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 +425 -42
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableRowPlaceholderStates.uni.driver.d.ts +2 -0
- package/dist/types/components/NestedTable/NestedTableRowPlaceholderStates.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.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 +412 -31
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +424 -43
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +665 -98
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/Tags/BulkAssignTagsPopover/AsyncJobProgressModal.uni.driver.d.ts +1 -1
- package/dist/types/components/Tags/BulkAssignTagsPopover/BulkAssignTagsPopover.uni.driver.d.ts +1 -1
- package/dist/types/components/TagsAssignButton/TagsAssignButton.uni.driver.d.ts +1 -1
- package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
- package/dist/types/model/tableColumn.d.ts +1 -1
- package/dist/types/model/tableColumn.d.ts.map +1 -1
- package/dist/types/providers/PatternsFieldsProvider.d.ts +11 -0
- package/dist/types/providers/PatternsFieldsProvider.d.ts.map +1 -0
- package/dist/types/providers/SchemaProvider.d.ts +16 -0
- package/dist/types/providers/SchemaProvider.d.ts.map +1 -0
- package/dist/types/providers/index.d.ts +2 -0
- package/dist/types/providers/index.d.ts.map +1 -1
- package/dist/types/state/CustomFields/CustomFieldsAllNamespacesFormState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellInteractionState.d.ts +4 -1
- package/dist/types/state/EditableTable/CellInteractionState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellValueState.d.ts +3 -1
- package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/EditableTableState.d.ts +5 -2
- package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/index.d.ts +1 -1
- package/dist/types/state/EditableTable/index.d.ts.map +1 -1
- package/dist/types/state/EditableTable/types.d.ts +15 -9
- package/dist/types/state/EditableTable/types.d.ts.map +1 -1
- package/dist/types/state/KanbanState/KanbanState.d.ts.map +1 -1
- package/dist/types/test-utils/CairoTestApp.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +2577 -307
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +2700 -322
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +2687 -309
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +2698 -320
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/types/SchemaConfig.d.ts +112 -0
- package/dist/types/types/SchemaConfig.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +11 -8
- 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/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- 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/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css +3 -0
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.tsx +4 -4
- package/src/components/EditableTable/EditableCell.uni.driver.ts +3 -3
- package/src/components/EditableTable/EditableColumnHeader.uni.driver.ts +42 -0
- package/src/components/EditableTable/EditableTable.tsx +23 -3
- package/src/components/EditableTable/EditableTable.uni.driver.ts +16 -0
- package/src/components/EditableTable/EditableTableContextMenu.tsx +3 -1
- package/src/components/EditableTable/HeaderActionsPopover.st.css +12 -0
- package/src/components/EditableTable/{cellTypes/select/View.st.css.ts → HeaderActionsPopover.st.css.ts} +3 -3
- package/src/components/EditableTable/HeaderActionsPopover.tsx +85 -0
- 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/Edit.tsx +10 -1
- 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/Edit.tsx +1 -1
- 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/index.ts +0 -3
- 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 +9 -0
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.tsx +119 -43
- package/src/components/EditableTable/cellTypes/text/SpecificValuesEdit.uni.driver.ts +27 -0
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.tsx +15 -5
- package/src/components/EditableTable/cellTypes/text/index.ts +7 -1
- package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/Edit.tsx +7 -12
- package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/View.tsx +2 -23
- package/src/components/EditableTable/cellTypes/url/View.uni.driver.ts +6 -3
- package/src/components/EditableTable/cellTypes/url/index.ts +18 -0
- package/src/components/EditableTable/headerActionTypes.ts +16 -0
- package/src/components/EditableTable/index.ts +1 -0
- package/src/components/EditableTable/types.ts +6 -2
- package/src/components/EditableTable/useBuiltInHeaderActions.tsx +96 -0
- package/src/components/EditableTable/useCellFocusAndEditing.ts +6 -3
- package/src/components/EditableTable/useKeyboardNavigation.ts +4 -2
- 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/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/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/model/tableColumn.ts +1 -1
- package/src/providers/PatternsFieldsProvider.tsx +32 -0
- package/src/providers/SchemaProvider.tsx +51 -0
- package/src/providers/index.ts +2 -0
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CustomFields/CustomFieldsAllNamespacesFormState.ts +4 -2
- package/src/state/EditableTable/CellInteractionState.ts +4 -1
- package/src/state/EditableTable/CellValueState.ts +36 -11
- package/src/state/EditableTable/EditableTableState.ts +30 -13
- package/src/state/EditableTable/index.ts +0 -1
- package/src/state/EditableTable/types.ts +11 -8
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/KanbanState/KanbanState.ts +6 -1
- package/src/styles.global.css +1 -1
- package/src/test-utils/CairoTestApp.tsx +2 -1
- package/src/types/SchemaConfig.ts +151 -0
- package/src/version.ts +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.js +0 -101
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.js.map +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.uni.driver.js +0 -22
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.uni.driver.js.map +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/View.js +0 -36
- package/dist/cjs/components/EditableTable/cellTypes/select/View.js.map +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/View.st.css +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/View.st.css.js.map +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/View.uni.driver.js +0 -12
- package/dist/cjs/components/EditableTable/cellTypes/select/View.uni.driver.js.map +0 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/index.js +0 -20
- package/dist/cjs/components/EditableTable/cellTypes/select/index.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.js +0 -48
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.uni.driver.js +0 -15
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.uni.driver.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/View.js +0 -11
- package/dist/esm/components/EditableTable/cellTypes/select/View.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/View.st.css +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/View.st.css.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/View.uni.driver.js +0 -8
- package/dist/esm/components/EditableTable/cellTypes/select/View.uni.driver.js.map +0 -1
- package/dist/esm/components/EditableTable/cellTypes/select/index.js +0 -15
- package/dist/esm/components/EditableTable/cellTypes/select/index.js.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.d.ts +0 -4
- package/dist/types/components/EditableTable/cellTypes/select/Edit.d.ts.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.uni.driver.d.ts.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/View.d.ts +0 -4
- package/dist/types/components/EditableTable/cellTypes/select/View.d.ts.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/View.st.css.d.ts.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/View.uni.driver.d.ts +0 -15
- package/dist/types/components/EditableTable/cellTypes/select/View.uni.driver.d.ts.map +0 -1
- package/dist/types/components/EditableTable/cellTypes/select/index.d.ts +0 -5
- package/dist/types/components/EditableTable/cellTypes/select/index.d.ts.map +0 -1
- package/src/components/EditableTable/cellTypes/select/Edit.tsx +0 -98
- package/src/components/EditableTable/cellTypes/select/Edit.uni.driver.ts +0 -24
- package/src/components/EditableTable/cellTypes/select/View.st.css +0 -1
- package/src/components/EditableTable/cellTypes/select/View.tsx +0 -21
- package/src/components/EditableTable/cellTypes/select/View.uni.driver.ts +0 -9
- package/src/components/EditableTable/cellTypes/select/index.ts +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_cellTypes","_utils","cellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","_defineProperty2","default","_parent","makeObservable","_pendingCells","observable","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","resolveCellType","get","textCellType","getCellDisplayValue","rowKey","columnId","pending","_getPendingCell","value","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","isCellEditable","resolved","cellType","editable","EditComponent","setValue","serializeCellValue","serialize","String","cells","changes","cell","clearable","pendingKey","_pendingCellKey","delete","deserialize","push","length","toggleValue","newValue","updatedItem","mutation","updateItems","editingValue","_applyValue","key","id","tryDeserialize","rawValue","error","rawChanges","set","rowItems","result","runCellValidation","validation","validate","currentItem","Array","from","values","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { runCellValidation, validResult } from './utils';\n\nconst cellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<string, { value: any; errors: string[] }>();\n\n private readonly _parent: EditableTableState<T, F>;\n\n constructor(parent: EditableTableState<T, F>) {\n this._parent = parent;\n\n makeObservable(this, {\n _pendingCells: observable,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n });\n }\n\n resolveCellType(type: string): CellType {\n return cellTypeMap.get(type) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellType(column.cellType);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n if (!column.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellType(column.cellType);\n const pending = this._getPendingCell(rowKey, columnId);\n const value = pending ? pending.value : column.getValue(keyedItem.item);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects cellType.clearable. */\n clearCells(cells: Cell[]) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n const resolved = this.resolveCellType(column.cellType);\n if (resolved.clearable === false) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const value = resolved.deserialize ? resolved.deserialize('') : '';\n changes.push({ rowKey: cell.rowKey, columnId: cell.columnId, value });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellType(column.cellType);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = column.getValue(keyedItem.item);\n const newValue = resolved.toggleValue(value);\n const updatedItem = column.setValue(keyedItem.item, newValue);\n this._parent.mutation.updateItems([updatedItem]);\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n this._applyValue(cell.rowKey, cell.columnId, editingValue);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellType(column.cellType);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n return { value: rawValue, error: 'Value is not compatible' };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, { value, errors: [error] });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowItems = new Map<string, T>();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n continue;\n }\n\n const resolved = this.resolveCellType(column.cellType);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const currentItem = rowItems.get(rowKey) ?? keyedItem.item;\n rowItems.set(rowKey, column.setValue(currentItem, value));\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n this._parent.mutation.updateItems(Array.from(rowItems.values()));\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellType(column.cellType);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const updatedItem = column.setValue(keyedItem.item, value);\n this._parent.mutation.updateItems([updatedItem]);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_cellTypes","_utils","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","_defineProperty2","default","_parent","makeObservable","_pendingCells","observable","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","_buildCellTypeMap","col","_allColumns","cellType","typeConfig","set","id","get","textCellType","_cellTypeMap","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","isCellEditable","resolved","editable","EditComponent","setValue","serializeCellValue","serialize","String","cells","changes","cell","clearable","pendingKey","_pendingCellKey","delete","deserialize","push","length","toggleValue","newValue","updatedItem","mutation","updateItems","editingValue","normalized","normalizeOnCommit","_applyValue","key","tryDeserialize","rawValue","error","rawChanges","rowItems","result","runCellValidation","validation","validate","currentItem","Array","from","values","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { runCellValidation, validResult } from './utils';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<string, { value: any; errors: string[] }>();\n\n private readonly _parent: EditableTableState<T, F>;\n private _cellTypeMap: Map<string, CellType> = builtInCellTypeMap;\n\n constructor(parent: EditableTableState<T, F>) {\n this._parent = parent;\n\n makeObservable(this, {\n _pendingCells: observable,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n });\n }\n\n _buildCellTypeMap() {\n const map = new Map<string, CellType>();\n for (const col of this._parent._allColumns) {\n if (\n col.cellType === 'custom' &&\n col.typeConfig &&\n typeof col.typeConfig === 'object' &&\n 'ViewComponent' in col.typeConfig\n ) {\n map.set(col.id, {\n type: 'custom',\n ...(col.typeConfig as Omit<CellType, 'type'>),\n });\n } else {\n map.set(col.id, builtInCellTypeMap.get(col.cellType) ?? textCellType);\n }\n }\n this._cellTypeMap = map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n if (!column.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const pending = this._getPendingCell(rowKey, columnId);\n const value = pending ? pending.value : column.getValue(keyedItem.item);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects cellType.clearable. */\n clearCells(cells: Cell[]) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.clearable === false) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const value = resolved.deserialize ? resolved.deserialize('') : '';\n changes.push({ rowKey: cell.rowKey, columnId: cell.columnId, value });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = column.getValue(keyedItem.item);\n const newValue = resolved.toggleValue(value);\n const updatedItem = column.setValue(keyedItem.item, newValue);\n this._parent.mutation.updateItems([updatedItem]);\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n return { value: rawValue, error: 'Value is not compatible' };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, { value, errors: [error] });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowItems = new Map<string, T>();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const currentItem = rowItems.get(rowKey) ?? keyedItem.item;\n rowItems.set(rowKey, column.setValue(currentItem, value));\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n this._parent.mutation.updateItems(Array.from(rowItems.values()));\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n const updatedItem = column.setValue(keyedItem.item, value);\n this._parent.mutation.updateItems([updatedItem]);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ exports.__esModule = true;
|
|
|
5
5
|
exports.EditableTableState = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
|
+
var _bexCore = require("@wix/bex-core");
|
|
8
9
|
var _ToolbarCollectionState = require("../ToolbarCollectionState");
|
|
9
10
|
var _TableState = require("../TableState");
|
|
10
11
|
var _CellInteractionState = require("./CellInteractionState");
|
|
@@ -19,6 +20,7 @@ class EditableTableState {
|
|
|
19
20
|
(0, _defineProperty2.default)(this, "cellValue", void 0);
|
|
20
21
|
(0, _defineProperty2.default)(this, "clipboard", void 0);
|
|
21
22
|
(0, _defineProperty2.default)(this, "mutation", void 0);
|
|
23
|
+
(0, _defineProperty2.default)(this, "deleteConfirmModal", new _bexCore.ConditionalModalState());
|
|
22
24
|
(0, _defineProperty2.default)(this, "addItemDisabled", false);
|
|
23
25
|
(0, _defineProperty2.default)(this, "updateItemDisabled", false);
|
|
24
26
|
(0, _defineProperty2.default)(this, "removeItemDisabled", false);
|
|
@@ -61,7 +63,8 @@ class EditableTableState {
|
|
|
61
63
|
_allColumns: _mobx.observable.ref,
|
|
62
64
|
editableColumns: _mobx.computed,
|
|
63
65
|
_columnMap: _mobx.computed,
|
|
64
|
-
init: _mobx.action
|
|
66
|
+
init: _mobx.action,
|
|
67
|
+
confirmDeleteItems: _mobx.action
|
|
65
68
|
});
|
|
66
69
|
if (params.permissions) {
|
|
67
70
|
this.addItemDisabled = params.permissions.addItemDisabled ?? false;
|
|
@@ -112,6 +115,7 @@ class EditableTableState {
|
|
|
112
115
|
}
|
|
113
116
|
init(columns) {
|
|
114
117
|
this._allColumns = columns;
|
|
118
|
+
this.cellValue._buildCellTypeMap();
|
|
115
119
|
return this.mutation.init();
|
|
116
120
|
}
|
|
117
121
|
addItem(afterItemKey) {
|
|
@@ -123,8 +127,23 @@ class EditableTableState {
|
|
|
123
127
|
deleteItems(rowKeys) {
|
|
124
128
|
this.mutation.deleteItems(rowKeys);
|
|
125
129
|
}
|
|
126
|
-
|
|
127
|
-
|
|
130
|
+
confirmDeleteItems(rowKeys) {
|
|
131
|
+
const {
|
|
132
|
+
translate: t
|
|
133
|
+
} = this.collection;
|
|
134
|
+
this.deleteConfirmModal.open({
|
|
135
|
+
theme: 'destructive',
|
|
136
|
+
title: t('cairo.deleteModal.title'),
|
|
137
|
+
content: t('cairo.deleteModal.body'),
|
|
138
|
+
primaryButtonText: t('cairo.delete.button'),
|
|
139
|
+
secondaryButtonText: t('cairo.cancel.button'),
|
|
140
|
+
primaryButtonOnClick: () => {
|
|
141
|
+
this.deleteItems(rowKeys);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
resolveCellTypeByColumnId(columnId) {
|
|
146
|
+
return this.cellValue.resolveCellTypeByColumnId(columnId);
|
|
128
147
|
}
|
|
129
148
|
getCellDisplayValue(rowKey, columnId) {
|
|
130
149
|
return this.cellValue.getCellDisplayValue(rowKey, columnId);
|
|
@@ -149,22 +168,18 @@ class EditableTableState {
|
|
|
149
168
|
if (shiftKey) {
|
|
150
169
|
return;
|
|
151
170
|
}
|
|
152
|
-
const column = this._columnMap.get(columnId);
|
|
153
|
-
const resolved = column ? this.resolveCellType(column.cellType) : null;
|
|
154
|
-
// Toggle-cell click while editing: ignore — committing and simultaneously
|
|
155
|
-
// toggling a boolean would be two unexpected actions from one click.
|
|
156
|
-
if (resolved != null && resolved.toggleValue) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
171
|
// Plain click on a different cell: commit the edit and move focus.
|
|
160
172
|
this.cellInteraction.commitEdit();
|
|
161
173
|
this.cellInteraction.focusCell(rowKey, columnId);
|
|
162
174
|
return;
|
|
163
175
|
}
|
|
164
176
|
const column = this._columnMap.get(columnId);
|
|
165
|
-
const resolved = column ? this.
|
|
166
|
-
if (resolved != null && resolved.toggleValue
|
|
167
|
-
|
|
177
|
+
const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;
|
|
178
|
+
if (resolved != null && resolved.toggleValue) {
|
|
179
|
+
// Toggle cells (e.g. boolean): click focuses the cell and shows the
|
|
180
|
+
// checkbox affordance. The toggle itself is committed when the user
|
|
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.
|
|
168
183
|
this.cellInteraction.focusCell(rowKey, columnId);
|
|
169
184
|
return;
|
|
170
185
|
}
|
|
@@ -182,7 +197,7 @@ class EditableTableState {
|
|
|
182
197
|
return;
|
|
183
198
|
}
|
|
184
199
|
const column = this._columnMap.get(columnId);
|
|
185
|
-
const resolved = column ? this.
|
|
200
|
+
const resolved = column ? this.resolveCellTypeByColumnId(column.id) : null;
|
|
186
201
|
// Toggle-value cells (e.g. boolean) activate on single click, not double-click.
|
|
187
202
|
// Entering edit mode on double-click would apply the editing box-shadow
|
|
188
203
|
// without any EditComponent being shown, causing a visual border glitch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_ToolbarCollectionState","_TableState","_CellInteractionState","_CellValueState","_ClipboardState","_MutationState","EditableTableState","constructor","params","_defineProperty2","default","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","permissions","keyedItems","visibleColumns","itemsToRenderCount","Map","map","c","_getKeyedItem","key","getKeyedItem","_toIndices","pos","row","findIndex","ki","rowKey","col","_toPosition","visibleIds","length","find","filter","undefined","columns","addItem","afterItemKey","duplicateItem","deleteItems","rowKeys","resolveCellType","type","getCellDisplayValue","getCellValidation","isCellEditable","clearCells","cells","handleCellClick","shiftKey","isEditing","isCellEditing","column","get","resolved","cellType","toggleValue","commitEdit","focusCell","toggleCell","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 FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\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\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 });\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 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 resolveCellType(type: string) {\n return this.cellValue.resolveCellType(type);\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 const column = this._columnMap.get(columnId);\n const resolved = column ? this.resolveCellType(column.cellType) : null;\n // Toggle-cell click while editing: ignore — committing and simultaneously\n // toggling a boolean would be two unexpected actions from one click.\n if (resolved?.toggleValue) {\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.resolveCellType(column.cellType) : null;\n if (resolved?.toggleValue && !this.updateItemDisabled) {\n this.cellValue.toggleCell(rowKey, columnId);\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.resolveCellType(column.cellType) : 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","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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_EditableTableState","require","exports","EditableTableState"],"sources":["../../../../src/state/EditableTable/index.ts"],"sourcesContent":["export { EditableTableState } from './EditableTableState';\nexport type {\n EditableTableStateParams,\n EditableTableStatePublicAPI,\n EditableTablePermissions,\n} from './EditableTableState';\n\nexport type { EditableTableMutationHandlers } from './MutationState';\n\nexport type {\n Cell,\n ValidationResult,\n CellType,\n EditableColumn,\n
|
|
1
|
+
{"version":3,"names":["_EditableTableState","require","exports","EditableTableState"],"sources":["../../../../src/state/EditableTable/index.ts"],"sourcesContent":["export { EditableTableState } from './EditableTableState';\nexport type {\n EditableTableStateParams,\n EditableTableStatePublicAPI,\n EditableTablePermissions,\n} from './EditableTableState';\n\nexport type { EditableTableMutationHandlers } from './MutationState';\n\nexport type {\n Cell,\n ValidationResult,\n CellType,\n EditableColumn,\n} from './types';\n"],"mappings":";;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAA0DC,OAAA,CAAAC,kBAAA,GAAAH,mBAAA,CAAAG,kBAAA","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\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 /** 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 onTypeToEdit?: (params: {\n key: string;\n }) => { value?: any } | undefined;\n\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\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 | { type: 'specificValues'; values: { id: string; value: string }[]; message: string };\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 /** 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}\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 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":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "FormPageHeader2036921673";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
15
|
+
"root": "FormPageHeader2036921673__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader2036921673\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"FormPageHeader2036921673__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -101,10 +101,14 @@ class KanbanState {
|
|
|
101
101
|
var _this$kanbanStateBIRe, _this$kanbanStateBIRe2;
|
|
102
102
|
const disposers = [this.stagesCollectionState.init(), this.stagesOptimisticActions.init(), this.kanbanStateBIReporter.initAdditionalFeaturesAvailability(), this.toolbar.init({
|
|
103
103
|
featuresInitializers: []
|
|
104
|
-
}), this.dragAndDropState.init(), (0, _mobx.reaction)(() =>
|
|
104
|
+
}), this.dragAndDropState.init(), (0, _mobx.reaction)(() => ({
|
|
105
|
+
filters: this.queryComputed.filters,
|
|
106
|
+
search: this.queryComputed.search
|
|
107
|
+
}), () => {
|
|
105
108
|
this.triggerDebouncedStagesRefresh();
|
|
106
109
|
}, {
|
|
107
|
-
fireImmediately: false
|
|
110
|
+
fireImmediately: false,
|
|
111
|
+
equals: _mobx.comparer.structural
|
|
108
112
|
})];
|
|
109
113
|
this.kanbanStateBIReporter.init();
|
|
110
114
|
await this.loadStages();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_ToolbarCollectionState","_KanbanStageState","_mobx","_KanbanCardDragAndDrop","_uuid","_events","_KanbanStateBIReporter","KanbanComponentType","exports","KanbanState","constructor","params","_defineProperty2","default","EventEmitter","container","kanbanId","items","toolbarQueryCollectionState","createToolbarQueryCollectionState","stageType","stages","stagesCollectionState","createStagesCollectionState","stagesOptimisticActions","CollectionOptimisticActions","collection","toolbar","ToolbarCollectionState","componentType","reportBi","ev","isSearchEvent","src","evid","isLoadEndEvent","dragAndDropState","KanbanDragAndDropState","kanbanState","kanbanStateBIReporter","KanbanStateBIReporter","makeObservable","kanbanStageStates","observable","updateStage","action","computed","isRefetching","refetchKanban","hasStagesError","isLoading","isLoadingStages","debouncedStagesRefresh","lodash","debounce","isChangingFiltersValue","currentSearchTerm","queryComputed","search","_searchResultsBiEventCallback","reportSearchTriggered","initializeStageStates","query","filters","asComputed","triggerDebouncedStagesRefresh","init","_this$kanbanStateBIRe","_this$kanbanStateBIRe2","disposers","initAdditionalFeaturesAvailability","featuresInitializers","reaction","fireImmediately","loadStages","appLoaded","call","Object","keys","stageStateDisposers","forEach","stageId","disposeStageState","d","_this$stagesCollectio","initTask","status","promise","catch","error","showErrorToast","fetchAllByStageIds","stageData","fetchStagesData","processAllStages","result","keyedItems","map","item","getStageState","stage","itemKey","getStageStateByKey","stageKey","values","some","length","isInSearchMode","isInFilterMode","hasActiveFilters","getIsChangingFiltersValue","_this$stagesCollectio2","isError","startTime","performance","now","toolbarBIReporter","loadStart","runInAction","clearResultBeforeRefresh","refreshAllPages","reportOnLoadEnd","Math","round","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","showError","CollectionState","errorMonitor","history","onlineState","queryCache","translate","fqdn","parseFqdn","undefined","queryName","fetchData","Promise","resolve","total","cursor","itemName","paginationMode","stageName","stageIds","getStageIds","ids","cleanupUnusedStageStates","processCurrentStages","currentStageIds","Set","has","disposer","Reflect","deleteProperty","keyedStage","hasDataForStage","createNewStageState","updateExistingStageState","KanbanStageState","initialPage","getInitialPageData","name","key","stageState","initialPageData","itemsCollectionState","setInitialPage","setPages","processed","unprocessed","setTotals","setTotal","setCursor","getStageIdFromItem","stageField","originalStage","updatedStage","optimisticActions","updateOne","submit","keepPosition","setStages","getKey","newStageIds","createStage","createOne","_items","scrollToStage","events","emit","scrollToCardInStage","cardKey","deleteStage","deleteOne","reorderStages","fromIndex","toIndex","from","over","after","actionMove","moveId","uuid","isFromHandle","filtersKeyHash","originQuery","_orderByMode","move","collectionSnapshot","moveItemBetweenStages","originalItem","updatedItem","fromStageId","toStageId","deleteItem","createItem","deleteCard","card","createCard","updateCard","updateItem","getStageIndexByKey","findIndex","getStageNameByKey","find","s","getStageById"],"sources":["../../../../src/state/KanbanState/KanbanState.ts"],"sourcesContent":["import {\n CollectionState,\n CollectionStateParams,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n WixPatternsContainer,\n stringFilter,\n CollectionOptimisticActions,\n ComputedQuery,\n parseFqdn,\n} from '@wix/bex-core';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { KanbanDragEndItemEvent } from './KanbanDragEndEvent';\nimport { KanbanStageState } from './KanbanStageState';\nimport {\n observable,\n makeObservable,\n runInAction,\n action,\n computed,\n reaction,\n} from 'mobx';\nimport { KanbanDragAndDropState } from '../../components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop';\nimport { v4 as uuid } from 'uuid';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '@wix/bex-core/events';\nimport { KanbanStateBIReporter } from './KanbanStateBIReporter';\n\nexport const KanbanComponentType = 'TableKanbanSwitch';\n\nexport type stageType = 'DONE' | 'NONE';\n\nexport interface KanbanStateBaseParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n fqdn?: string;\n kanbanId: string;\n stages: {\n fetchData: CollectionStateParams<S, F>['fetchData'];\n stageKey: CollectionStateParams<S, F>['itemKey'];\n stageName: CollectionStateParams<S, F>['itemName'];\n stageType?(stage: S): stageType;\n };\n items: {\n fetchData: CollectionStateParams<T, F>['fetchData'];\n itemKey: CollectionStateParams<T, F>['itemKey'];\n itemName: CollectionStateParams<T, F>['itemName'];\n stageField: string;\n filters?: F;\n fetchAllByStageIds?: (params: {\n ids: string[];\n filters: ComputedQuery<F>['filters'];\n search?: ComputedQuery<F>['search'];\n }) => Promise<Record<string, DataResultRaw<T>>>;\n dragAndDrop?: {\n onSubmit?: (event: KanbanDragEndItemEvent<T, S>) => Promise<T>;\n };\n create?: {\n navigateToEntityPage: ({ stage }: { stage: S }) => void;\n title: string;\n };\n };\n}\n\nexport interface KanbanStateParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> extends KanbanStateBaseParams<T, S, F> {\n readonly container: WixPatternsContainer;\n}\n\nexport interface KanbanStateParamsAPI<\n T,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n readonly toolbar: ToolbarCollectionState<T, F>;\n}\n\nexport class KanbanState<T, S, F extends FiltersMap = OptionalFiltersMap>\n implements ICollectionComponentState, KanbanStateParamsAPI<T, F>\n{\n readonly container: WixPatternsContainer;\n kanbanStageStates: Record<\n string,\n KanbanStageState<T, S, F & { stageId: ReturnType<typeof stringFilter> }>\n > = {};\n private stageStateDisposers: Record<string, () => void> = {};\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly stagesCollectionState: CollectionState<S, F>;\n readonly toolbarQueryCollectionState: CollectionState<T, F>;\n readonly dragAndDropState: KanbanDragAndDropState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >;\n readonly debouncedStagesRefresh: () => unknown;\n readonly stageType: KanbanStateBaseParams<T, S, F>['stages']['stageType'];\n items: KanbanStateBaseParams<T, S, F>['items'];\n isRefetching = false;\n isChangingFiltersValue = false;\n private stagesOptimisticActions: CollectionOptimisticActions<S, F>;\n readonly events = new EventEmitter() as TypedEmitter<{\n scrollToStage: (params: { stageKey: string }) => void;\n scrollToCardInStage: (params: {\n stageKey: string;\n cardKey: string;\n }) => void;\n }>;\n readonly kanbanStateBIReporter: KanbanStateBIReporter<T, S, F>;\n readonly kanbanId: string;\n private _searchResultsBiEventCallback: (() => void) | null = null;\n\n constructor(params: KanbanStateParams<T, S, F>) {\n this.container = params.container;\n this.kanbanId = params.kanbanId;\n this.items = params.items;\n this.toolbarQueryCollectionState =\n this.createToolbarQueryCollectionState(params);\n\n this.stageType = params.stages.stageType;\n\n this.stagesCollectionState = this.createStagesCollectionState(params);\n\n this.stagesOptimisticActions = new CollectionOptimisticActions({\n collection: this.stagesCollectionState,\n container: this.container,\n });\n\n this.toolbar = new ToolbarCollectionState({\n collection: this.toolbarQueryCollectionState,\n container: params.container,\n componentType: KanbanComponentType,\n reportBi: (ev) => {\n // Filter out BI events to avoid duplicates - KanbanStateBIReporter handles them\n const isSearchEvent =\n ev.src === 144 && (ev.evid === 116 || ev.evid === 117); // cairoFilterToggled or cairoSearchResults or cairoLoadEnd\n const isLoadEndEvent = ev.src === 144 && ev.evid === 111; // cairoLoadEnd\n if (!isSearchEvent && !isLoadEndEvent) {\n this.container.reportBi(ev);\n }\n },\n });\n\n this.dragAndDropState = new KanbanDragAndDropState({\n kanbanState: this as any,\n });\n\n this.kanbanStateBIReporter = new KanbanStateBIReporter(this);\n\n makeObservable(this, {\n kanbanStageStates: observable,\n updateStage: action,\n stages: computed,\n isRefetching: observable,\n refetchKanban: action,\n hasStagesError: computed,\n isLoading: computed,\n isLoadingStages: computed,\n });\n\n this.debouncedStagesRefresh = this.container.lodash.debounce(async () => {\n this.isChangingFiltersValue = false;\n const currentSearchTerm = this.queryComputed.search || '';\n\n if (currentSearchTerm) {\n this._searchResultsBiEventCallback =\n this.kanbanStateBIReporter.reportSearchTriggered(currentSearchTerm);\n } else {\n this._searchResultsBiEventCallback = null;\n }\n\n await this.initializeStageStates();\n if (this._searchResultsBiEventCallback) {\n this._searchResultsBiEventCallback();\n this._searchResultsBiEventCallback = null;\n }\n }, 300);\n }\n\n get query() {\n return this.toolbarQueryCollectionState.query;\n }\n\n get filters() {\n return this.toolbarQueryCollectionState.filters;\n }\n\n get queryComputed() {\n return this.query.asComputed;\n }\n\n triggerDebouncedStagesRefresh() {\n this.isChangingFiltersValue = true;\n this.debouncedStagesRefresh();\n }\n\n async init() {\n const disposers = [\n this.stagesCollectionState.init(),\n this.stagesOptimisticActions.init(),\n this.kanbanStateBIReporter.initAdditionalFeaturesAvailability(),\n this.toolbar.init({ featuresInitializers: [] }),\n this.dragAndDropState.init(),\n reaction(\n () => this.queryComputed,\n () => {\n this.triggerDebouncedStagesRefresh();\n },\n {\n fireImmediately: false,\n },\n ),\n ];\n\n this.kanbanStateBIReporter.init();\n await this.loadStages();\n await this.initializeStageStates();\n this.kanbanStateBIReporter.appLoaded?.();\n\n return () => {\n Object.keys(this.stageStateDisposers).forEach((stageId) => {\n this.disposeStageState(stageId);\n });\n\n disposers.forEach((d) => d?.());\n };\n }\n\n async loadStages() {\n await this.stagesCollectionState?.initTask?.status?.promise?.catch(\n (error) => {\n this.showErrorToast(error);\n },\n );\n }\n\n async initializeStageStates() {\n if (!this.items.fetchAllByStageIds) {\n return;\n }\n try {\n const stageData = await this.fetchStagesData();\n this.processAllStages(stageData);\n } catch (error) {\n this.showErrorToast(error);\n }\n }\n\n get stages() {\n return this.stagesCollectionState.result.keyedItems.map(\n (item: any) => item.item,\n );\n }\n\n getStageState(stage: S) {\n return this.kanbanStageStates[this.stagesCollectionState.itemKey(stage)];\n }\n\n getStageStateByKey(stageKey: string) {\n return this.kanbanStageStates[stageKey];\n }\n\n get isLoading() {\n return (\n this.isLoadingStages ||\n Object.values(this.kanbanStageStates).some((stage) => stage.isLoading)\n );\n }\n\n get isLoadingStages() {\n return (\n this.stagesCollectionState.initTask.status.isLoading ||\n this.isRefetching ||\n Object.keys(this.kanbanStageStates).length !==\n this.stagesCollectionState.result.keyedItems.length\n );\n }\n\n isInSearchMode() {\n const search = this.queryComputed.search;\n return search && search.length > 0;\n }\n\n isInFilterMode() {\n return this.queryComputed.hasActiveFilters;\n }\n\n getIsChangingFiltersValue() {\n return this.isChangingFiltersValue;\n }\n\n stageKey(stage: S) {\n return this.stagesCollectionState.itemKey(stage);\n }\n\n get hasStagesError() {\n return this.stagesCollectionState.result.status?.isError;\n }\n\n // Public methods\n public async refetchKanban() {\n const startTime = performance.now();\n this.toolbar.toolbarBIReporter.loadStart();\n runInAction(() => {\n this.isRefetching = true;\n });\n try {\n await this.stagesCollectionState.clearResultBeforeRefresh();\n await this.stagesCollectionState.refreshAllPages();\n await this.initializeStageStates();\n } catch (error) {\n this.showErrorToast(error);\n } finally {\n // Report refetch completion with timing\n this.kanbanStateBIReporter.reportOnLoadEnd(\n Math.round(performance.now() - startTime),\n );\n runInAction(() => {\n this.isRefetching = false;\n });\n }\n }\n\n // Private methods\n showErrorToast(error: unknown) {\n const resolvedError =\n this.container.errorHandler?.getResolvedError?.(error);\n resolvedError && this.container.errorHandler?.showError?.(resolvedError);\n }\n\n private createToolbarQueryCollectionState(\n params: KanbanStateParams<T, S, F>,\n ) {\n return new CollectionState<T, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n fqdn: params.fqdn ? parseFqdn(params.fqdn) : undefined,\n queryName: `kanban-toolbar-query-items-${this.kanbanId}`,\n fetchData: () =>\n Promise.resolve({\n items: [],\n total: 0,\n cursor: null,\n }),\n itemKey: () => '',\n itemName: () => '',\n filters: params.items.filters ?? ({} as F),\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private createStagesCollectionState(params: KanbanStateParams<T, S, F>) {\n return new CollectionState<S, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: `kanban-stages-${params.kanbanId}`,\n fetchData: params.stages.fetchData,\n itemKey: params.stages.stageKey,\n itemName: params.stages.stageName,\n filters: {} as F,\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private async fetchStagesData() {\n const stageIds = this.getStageIds();\n\n return this.items.fetchAllByStageIds!({\n ids: stageIds,\n filters: this.queryComputed.filters,\n search: this.queryComputed.search,\n });\n }\n\n private getStageIds(): string[] {\n return this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n );\n }\n\n private processAllStages(stageData: Record<string, DataResultRaw<T>>) {\n this.cleanupUnusedStageStates();\n this.processCurrentStages(stageData);\n }\n\n private cleanupUnusedStageStates() {\n // Get current stage IDs to identify which ones are no longer needed\n const currentStageIds = new Set(\n this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n ),\n );\n\n // Clean up stage states that no longer exist\n Object.keys(this.kanbanStageStates).forEach((stageId) => {\n if (!currentStageIds.has(stageId)) {\n this.disposeStageState(stageId);\n }\n });\n }\n\n private disposeStageState(stageId: string) {\n // Dispose of the stage state using stored disposer\n const disposer = this.stageStateDisposers[stageId];\n if (disposer) {\n disposer();\n Reflect.deleteProperty(this.stageStateDisposers, stageId);\n }\n runInAction(() => {\n Reflect.deleteProperty(this.kanbanStageStates, stageId);\n });\n }\n\n private processCurrentStages(stageData: Record<string, DataResultRaw<T>>) {\n this.stagesCollectionState.result.keyedItems.forEach((keyedStage) => {\n const stage = keyedStage.item;\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n const hasDataForStage = !!stageData[stageId];\n\n if (!this.kanbanStageStates[stageId]) {\n this.createNewStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n } else {\n this.updateExistingStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n }\n });\n });\n }\n\n private createNewStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n this.kanbanStageStates[stageId] = new KanbanStageState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >({\n container: this.container,\n fetchData: this.items.fetchData,\n itemKey: this.items.itemKey,\n itemName: this.items.itemName,\n initialPage: hasDataForStage\n ? this.getInitialPageData(stageData)\n : {\n items: [],\n total: 0,\n cursor: null,\n },\n name: this.stagesCollectionState.itemName(stage),\n key: this.stagesCollectionState.itemKey(stage),\n kanbanId: this.kanbanId,\n stage,\n query: this.query as any,\n });\n const disposer = this.kanbanStageStates[stageId].init();\n this.stageStateDisposers[stageId] = disposer;\n }\n\n private updateExistingStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n const stageState = this.kanbanStageStates[stageId];\n stageState.name = this.stagesCollectionState.itemName(stage);\n\n runInAction(() => {\n const initialPageData = this.getInitialPageData(\n hasDataForStage\n ? stageData\n : {\n items: [],\n total: 0,\n cursor: null,\n },\n );\n\n stageState.itemsCollectionState.setInitialPage(initialPageData);\n\n // Directly update QueryResultState to trigger MobX reactivity for keyedItems\n const items = initialPageData.items || [];\n const total = initialPageData.total ?? items.length;\n const cursor = initialPageData.cursor;\n\n stageState.itemsCollectionState.result.setPages({\n processed: [items],\n unprocessed: [items],\n });\n\n stageState.itemsCollectionState.result.setTotals({\n processed: total,\n unprocessed: total,\n });\n\n stageState.setTotal(stageData?.total ?? 0);\n\n if (cursor != null) {\n stageState.itemsCollectionState.paginationMode.setCursor(cursor);\n }\n });\n }\n\n private getInitialPageData(stageData: DataResultRaw<T>) {\n return {\n items: stageData?.items,\n total: stageData?.total,\n cursor: stageData?.cursor,\n };\n }\n\n private getStageIdFromItem(item: T): string {\n return (item as Record<string, any>)[this.items.stageField];\n }\n\n // optimistic actions\n\n updateStage(originalStage: S, updatedStage: S) {\n const stageId = this.stagesCollectionState.itemKey(originalStage);\n const stageState = this.getStageStateByKey(stageId);\n\n this.stagesCollectionState.optimisticActions.updateOne(updatedStage, {\n submit: async (items) => {\n // just return the item that was passed in\n return Promise.resolve(items[0]);\n },\n keepPosition: true,\n });\n\n runInAction(() => {\n if (\n stageState.name !== this.stagesCollectionState.itemName(updatedStage)\n ) {\n stageState.name = this.stagesCollectionState.itemName(updatedStage);\n }\n });\n }\n\n setStages(stages: S[]) {\n runInAction(() => {\n const getKey = (stage: S) => this.stagesCollectionState.itemKey(stage);\n const currentStageIds = new Set(Object.keys(this.kanbanStageStates));\n const newStageIds = new Set(stages.map(getKey));\n\n this.stagesCollectionState.result.setPages({\n processed: [stages],\n unprocessed: [stages],\n });\n this.stagesCollectionState.result.setTotals({\n processed: stages.length,\n unprocessed: stages.length,\n });\n\n currentStageIds.forEach((stageId) => {\n if (!newStageIds.has(stageId)) {\n this.disposeStageState(stageId);\n }\n });\n\n stages.forEach((stage) => {\n const stageId = getKey(stage);\n if (!this.kanbanStageStates[stageId]) {\n this.createNewStageState(\n stage,\n stageId,\n { items: [], total: 0, cursor: null },\n false,\n );\n } else {\n this.kanbanStageStates[stageId].name =\n this.stagesCollectionState.itemName(stage);\n }\n });\n });\n }\n\n createStage(stage: S) {\n this.stagesCollectionState.optimisticActions.createOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.createNewStageState(\n stage,\n stageId,\n {\n items: [],\n total: 0,\n cursor: null,\n },\n false,\n );\n });\n }\n\n scrollToStage({ stageKey }: { stageKey: string }) {\n this.events.emit('scrollToStage', { stageKey });\n }\n\n scrollToCardInStage({\n stageKey,\n cardKey,\n }: {\n stageKey: string;\n cardKey: string;\n }) {\n this.events.emit('scrollToCardInStage', { stageKey, cardKey });\n }\n\n deleteStage(stage: S) {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.stagesCollectionState.optimisticActions.deleteOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n this.disposeStageState(stageId);\n }\n\n reorderStages(fromIndex: number, toIndex: number) {\n const keyedItems = this.stagesCollectionState.result.keyedItems;\n if (fromIndex === toIndex) {\n return;\n }\n\n const from = keyedItems[fromIndex];\n const over = keyedItems[toIndex];\n\n let after;\n if (toIndex === 0) {\n after = null;\n } else if (fromIndex < toIndex) {\n after = over;\n } else {\n after = keyedItems[toIndex - 1];\n }\n\n const actionMove = {\n moveId: uuid(),\n from,\n over,\n after,\n isFromHandle: false,\n filtersKeyHash: this.stagesCollectionState.query.filtersKeyHash,\n query: this.stagesCollectionState.originQuery,\n };\n\n this.stagesCollectionState.optimisticActions._orderByMode = 'moves';\n this.stagesCollectionState.optimisticActions.move(actionMove, {\n collectionSnapshot: {},\n });\n }\n\n moveItemBetweenStages(\n originalItem: T,\n updatedItem: T,\n fromStageId: string,\n toStageId: string,\n ) {\n this.getStageStateByKey(fromStageId).deleteItem(originalItem);\n this.getStageStateByKey(toStageId).createItem(updatedItem);\n }\n\n // optimistic actions card\n deleteCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).deleteItem(card);\n }\n\n createCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).createItem(card);\n }\n\n updateCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).updateItem(card);\n }\n\n // Helper functions for BI reporting\n getStageIndexByKey(stageKey: string): number {\n return this.stages.findIndex(\n (stage) => this.stagesCollectionState.itemKey(stage) === stageKey,\n );\n }\n\n getStageNameByKey(stageKey: string): string {\n const stage = this.stages.find(\n (s) => this.stagesCollectionState.itemKey(s) === stageKey,\n );\n return stage ? this.stagesCollectionState.itemName(stage) : '';\n }\n\n getStageById(stageKey: string): S | undefined {\n return this.stages.find(\n (stage) => this.stagesCollectionState.itemKey(stage) === stageKey,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_ToolbarCollectionState","_KanbanStageState","_mobx","_KanbanCardDragAndDrop","_uuid","_events","_KanbanStateBIReporter","KanbanComponentType","exports","KanbanState","constructor","params","_defineProperty2","default","EventEmitter","container","kanbanId","items","toolbarQueryCollectionState","createToolbarQueryCollectionState","stageType","stages","stagesCollectionState","createStagesCollectionState","stagesOptimisticActions","CollectionOptimisticActions","collection","toolbar","ToolbarCollectionState","componentType","reportBi","ev","isSearchEvent","src","evid","isLoadEndEvent","dragAndDropState","KanbanDragAndDropState","kanbanState","kanbanStateBIReporter","KanbanStateBIReporter","makeObservable","kanbanStageStates","observable","updateStage","action","computed","isRefetching","refetchKanban","hasStagesError","isLoading","isLoadingStages","debouncedStagesRefresh","lodash","debounce","isChangingFiltersValue","currentSearchTerm","queryComputed","search","_searchResultsBiEventCallback","reportSearchTriggered","initializeStageStates","query","filters","asComputed","triggerDebouncedStagesRefresh","init","_this$kanbanStateBIRe","_this$kanbanStateBIRe2","disposers","initAdditionalFeaturesAvailability","featuresInitializers","reaction","fireImmediately","equals","comparer","structural","loadStages","appLoaded","call","Object","keys","stageStateDisposers","forEach","stageId","disposeStageState","d","_this$stagesCollectio","initTask","status","promise","catch","error","showErrorToast","fetchAllByStageIds","stageData","fetchStagesData","processAllStages","result","keyedItems","map","item","getStageState","stage","itemKey","getStageStateByKey","stageKey","values","some","length","isInSearchMode","isInFilterMode","hasActiveFilters","getIsChangingFiltersValue","_this$stagesCollectio2","isError","startTime","performance","now","toolbarBIReporter","loadStart","runInAction","clearResultBeforeRefresh","refreshAllPages","reportOnLoadEnd","Math","round","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","showError","CollectionState","errorMonitor","history","onlineState","queryCache","translate","fqdn","parseFqdn","undefined","queryName","fetchData","Promise","resolve","total","cursor","itemName","paginationMode","stageName","stageIds","getStageIds","ids","cleanupUnusedStageStates","processCurrentStages","currentStageIds","Set","has","disposer","Reflect","deleteProperty","keyedStage","hasDataForStage","createNewStageState","updateExistingStageState","KanbanStageState","initialPage","getInitialPageData","name","key","stageState","initialPageData","itemsCollectionState","setInitialPage","setPages","processed","unprocessed","setTotals","setTotal","setCursor","getStageIdFromItem","stageField","originalStage","updatedStage","optimisticActions","updateOne","submit","keepPosition","setStages","getKey","newStageIds","createStage","createOne","_items","scrollToStage","events","emit","scrollToCardInStage","cardKey","deleteStage","deleteOne","reorderStages","fromIndex","toIndex","from","over","after","actionMove","moveId","uuid","isFromHandle","filtersKeyHash","originQuery","_orderByMode","move","collectionSnapshot","moveItemBetweenStages","originalItem","updatedItem","fromStageId","toStageId","deleteItem","createItem","deleteCard","card","createCard","updateCard","updateItem","getStageIndexByKey","findIndex","getStageNameByKey","find","s","getStageById"],"sources":["../../../../src/state/KanbanState/KanbanState.ts"],"sourcesContent":["import {\n CollectionState,\n CollectionStateParams,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n WixPatternsContainer,\n stringFilter,\n CollectionOptimisticActions,\n ComputedQuery,\n parseFqdn,\n} from '@wix/bex-core';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { KanbanDragEndItemEvent } from './KanbanDragEndEvent';\nimport { KanbanStageState } from './KanbanStageState';\nimport {\n observable,\n makeObservable,\n runInAction,\n action,\n computed,\n reaction,\n comparer,\n} from 'mobx';\nimport { KanbanDragAndDropState } from '../../components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop';\nimport { v4 as uuid } from 'uuid';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '@wix/bex-core/events';\nimport { KanbanStateBIReporter } from './KanbanStateBIReporter';\n\nexport const KanbanComponentType = 'TableKanbanSwitch';\n\nexport type stageType = 'DONE' | 'NONE';\n\nexport interface KanbanStateBaseParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n fqdn?: string;\n kanbanId: string;\n stages: {\n fetchData: CollectionStateParams<S, F>['fetchData'];\n stageKey: CollectionStateParams<S, F>['itemKey'];\n stageName: CollectionStateParams<S, F>['itemName'];\n stageType?(stage: S): stageType;\n };\n items: {\n fetchData: CollectionStateParams<T, F>['fetchData'];\n itemKey: CollectionStateParams<T, F>['itemKey'];\n itemName: CollectionStateParams<T, F>['itemName'];\n stageField: string;\n filters?: F;\n fetchAllByStageIds?: (params: {\n ids: string[];\n filters: ComputedQuery<F>['filters'];\n search?: ComputedQuery<F>['search'];\n }) => Promise<Record<string, DataResultRaw<T>>>;\n dragAndDrop?: {\n onSubmit?: (event: KanbanDragEndItemEvent<T, S>) => Promise<T>;\n };\n create?: {\n navigateToEntityPage: ({ stage }: { stage: S }) => void;\n title: string;\n };\n };\n}\n\nexport interface KanbanStateParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> extends KanbanStateBaseParams<T, S, F> {\n readonly container: WixPatternsContainer;\n}\n\nexport interface KanbanStateParamsAPI<\n T,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n readonly toolbar: ToolbarCollectionState<T, F>;\n}\n\nexport class KanbanState<T, S, F extends FiltersMap = OptionalFiltersMap>\n implements ICollectionComponentState, KanbanStateParamsAPI<T, F>\n{\n readonly container: WixPatternsContainer;\n kanbanStageStates: Record<\n string,\n KanbanStageState<T, S, F & { stageId: ReturnType<typeof stringFilter> }>\n > = {};\n private stageStateDisposers: Record<string, () => void> = {};\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly stagesCollectionState: CollectionState<S, F>;\n readonly toolbarQueryCollectionState: CollectionState<T, F>;\n readonly dragAndDropState: KanbanDragAndDropState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >;\n readonly debouncedStagesRefresh: () => unknown;\n readonly stageType: KanbanStateBaseParams<T, S, F>['stages']['stageType'];\n items: KanbanStateBaseParams<T, S, F>['items'];\n isRefetching = false;\n isChangingFiltersValue = false;\n private stagesOptimisticActions: CollectionOptimisticActions<S, F>;\n readonly events = new EventEmitter() as TypedEmitter<{\n scrollToStage: (params: { stageKey: string }) => void;\n scrollToCardInStage: (params: {\n stageKey: string;\n cardKey: string;\n }) => void;\n }>;\n readonly kanbanStateBIReporter: KanbanStateBIReporter<T, S, F>;\n readonly kanbanId: string;\n private _searchResultsBiEventCallback: (() => void) | null = null;\n\n constructor(params: KanbanStateParams<T, S, F>) {\n this.container = params.container;\n this.kanbanId = params.kanbanId;\n this.items = params.items;\n this.toolbarQueryCollectionState =\n this.createToolbarQueryCollectionState(params);\n\n this.stageType = params.stages.stageType;\n\n this.stagesCollectionState = this.createStagesCollectionState(params);\n\n this.stagesOptimisticActions = new CollectionOptimisticActions({\n collection: this.stagesCollectionState,\n container: this.container,\n });\n\n this.toolbar = new ToolbarCollectionState({\n collection: this.toolbarQueryCollectionState,\n container: params.container,\n componentType: KanbanComponentType,\n reportBi: (ev) => {\n // Filter out BI events to avoid duplicates - KanbanStateBIReporter handles them\n const isSearchEvent =\n ev.src === 144 && (ev.evid === 116 || ev.evid === 117); // cairoFilterToggled or cairoSearchResults or cairoLoadEnd\n const isLoadEndEvent = ev.src === 144 && ev.evid === 111; // cairoLoadEnd\n if (!isSearchEvent && !isLoadEndEvent) {\n this.container.reportBi(ev);\n }\n },\n });\n\n this.dragAndDropState = new KanbanDragAndDropState({\n kanbanState: this as any,\n });\n\n this.kanbanStateBIReporter = new KanbanStateBIReporter(this);\n\n makeObservable(this, {\n kanbanStageStates: observable,\n updateStage: action,\n stages: computed,\n isRefetching: observable,\n refetchKanban: action,\n hasStagesError: computed,\n isLoading: computed,\n isLoadingStages: computed,\n });\n\n this.debouncedStagesRefresh = this.container.lodash.debounce(async () => {\n this.isChangingFiltersValue = false;\n const currentSearchTerm = this.queryComputed.search || '';\n\n if (currentSearchTerm) {\n this._searchResultsBiEventCallback =\n this.kanbanStateBIReporter.reportSearchTriggered(currentSearchTerm);\n } else {\n this._searchResultsBiEventCallback = null;\n }\n\n await this.initializeStageStates();\n if (this._searchResultsBiEventCallback) {\n this._searchResultsBiEventCallback();\n this._searchResultsBiEventCallback = null;\n }\n }, 300);\n }\n\n get query() {\n return this.toolbarQueryCollectionState.query;\n }\n\n get filters() {\n return this.toolbarQueryCollectionState.filters;\n }\n\n get queryComputed() {\n return this.query.asComputed;\n }\n\n triggerDebouncedStagesRefresh() {\n this.isChangingFiltersValue = true;\n this.debouncedStagesRefresh();\n }\n\n async init() {\n const disposers = [\n this.stagesCollectionState.init(),\n this.stagesOptimisticActions.init(),\n this.kanbanStateBIReporter.initAdditionalFeaturesAvailability(),\n this.toolbar.init({ featuresInitializers: [] }),\n this.dragAndDropState.init(),\n reaction(\n () => ({\n filters: this.queryComputed.filters,\n search: this.queryComputed.search,\n }),\n () => {\n this.triggerDebouncedStagesRefresh();\n },\n {\n fireImmediately: false,\n equals: comparer.structural,\n },\n ),\n ];\n\n this.kanbanStateBIReporter.init();\n await this.loadStages();\n await this.initializeStageStates();\n this.kanbanStateBIReporter.appLoaded?.();\n\n return () => {\n Object.keys(this.stageStateDisposers).forEach((stageId) => {\n this.disposeStageState(stageId);\n });\n\n disposers.forEach((d) => d?.());\n };\n }\n\n async loadStages() {\n await this.stagesCollectionState?.initTask?.status?.promise?.catch(\n (error) => {\n this.showErrorToast(error);\n },\n );\n }\n\n async initializeStageStates() {\n if (!this.items.fetchAllByStageIds) {\n return;\n }\n try {\n const stageData = await this.fetchStagesData();\n this.processAllStages(stageData);\n } catch (error) {\n this.showErrorToast(error);\n }\n }\n\n get stages() {\n return this.stagesCollectionState.result.keyedItems.map(\n (item: any) => item.item,\n );\n }\n\n getStageState(stage: S) {\n return this.kanbanStageStates[this.stagesCollectionState.itemKey(stage)];\n }\n\n getStageStateByKey(stageKey: string) {\n return this.kanbanStageStates[stageKey];\n }\n\n get isLoading() {\n return (\n this.isLoadingStages ||\n Object.values(this.kanbanStageStates).some((stage) => stage.isLoading)\n );\n }\n\n get isLoadingStages() {\n return (\n this.stagesCollectionState.initTask.status.isLoading ||\n this.isRefetching ||\n Object.keys(this.kanbanStageStates).length !==\n this.stagesCollectionState.result.keyedItems.length\n );\n }\n\n isInSearchMode() {\n const search = this.queryComputed.search;\n return search && search.length > 0;\n }\n\n isInFilterMode() {\n return this.queryComputed.hasActiveFilters;\n }\n\n getIsChangingFiltersValue() {\n return this.isChangingFiltersValue;\n }\n\n stageKey(stage: S) {\n return this.stagesCollectionState.itemKey(stage);\n }\n\n get hasStagesError() {\n return this.stagesCollectionState.result.status?.isError;\n }\n\n // Public methods\n public async refetchKanban() {\n const startTime = performance.now();\n this.toolbar.toolbarBIReporter.loadStart();\n runInAction(() => {\n this.isRefetching = true;\n });\n try {\n await this.stagesCollectionState.clearResultBeforeRefresh();\n await this.stagesCollectionState.refreshAllPages();\n await this.initializeStageStates();\n } catch (error) {\n this.showErrorToast(error);\n } finally {\n // Report refetch completion with timing\n this.kanbanStateBIReporter.reportOnLoadEnd(\n Math.round(performance.now() - startTime),\n );\n runInAction(() => {\n this.isRefetching = false;\n });\n }\n }\n\n // Private methods\n showErrorToast(error: unknown) {\n const resolvedError =\n this.container.errorHandler?.getResolvedError?.(error);\n resolvedError && this.container.errorHandler?.showError?.(resolvedError);\n }\n\n private createToolbarQueryCollectionState(\n params: KanbanStateParams<T, S, F>,\n ) {\n return new CollectionState<T, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n fqdn: params.fqdn ? parseFqdn(params.fqdn) : undefined,\n queryName: `kanban-toolbar-query-items-${this.kanbanId}`,\n fetchData: () =>\n Promise.resolve({\n items: [],\n total: 0,\n cursor: null,\n }),\n itemKey: () => '',\n itemName: () => '',\n filters: params.items.filters ?? ({} as F),\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private createStagesCollectionState(params: KanbanStateParams<T, S, F>) {\n return new CollectionState<S, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: `kanban-stages-${params.kanbanId}`,\n fetchData: params.stages.fetchData,\n itemKey: params.stages.stageKey,\n itemName: params.stages.stageName,\n filters: {} as F,\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private async fetchStagesData() {\n const stageIds = this.getStageIds();\n\n return this.items.fetchAllByStageIds!({\n ids: stageIds,\n filters: this.queryComputed.filters,\n search: this.queryComputed.search,\n });\n }\n\n private getStageIds(): string[] {\n return this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n );\n }\n\n private processAllStages(stageData: Record<string, DataResultRaw<T>>) {\n this.cleanupUnusedStageStates();\n this.processCurrentStages(stageData);\n }\n\n private cleanupUnusedStageStates() {\n // Get current stage IDs to identify which ones are no longer needed\n const currentStageIds = new Set(\n this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n ),\n );\n\n // Clean up stage states that no longer exist\n Object.keys(this.kanbanStageStates).forEach((stageId) => {\n if (!currentStageIds.has(stageId)) {\n this.disposeStageState(stageId);\n }\n });\n }\n\n private disposeStageState(stageId: string) {\n // Dispose of the stage state using stored disposer\n const disposer = this.stageStateDisposers[stageId];\n if (disposer) {\n disposer();\n Reflect.deleteProperty(this.stageStateDisposers, stageId);\n }\n runInAction(() => {\n Reflect.deleteProperty(this.kanbanStageStates, stageId);\n });\n }\n\n private processCurrentStages(stageData: Record<string, DataResultRaw<T>>) {\n this.stagesCollectionState.result.keyedItems.forEach((keyedStage) => {\n const stage = keyedStage.item;\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n const hasDataForStage = !!stageData[stageId];\n\n if (!this.kanbanStageStates[stageId]) {\n this.createNewStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n } else {\n this.updateExistingStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n }\n });\n });\n }\n\n private createNewStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n this.kanbanStageStates[stageId] = new KanbanStageState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >({\n container: this.container,\n fetchData: this.items.fetchData,\n itemKey: this.items.itemKey,\n itemName: this.items.itemName,\n initialPage: hasDataForStage\n ? this.getInitialPageData(stageData)\n : {\n items: [],\n total: 0,\n cursor: null,\n },\n name: this.stagesCollectionState.itemName(stage),\n key: this.stagesCollectionState.itemKey(stage),\n kanbanId: this.kanbanId,\n stage,\n query: this.query as any,\n });\n const disposer = this.kanbanStageStates[stageId].init();\n this.stageStateDisposers[stageId] = disposer;\n }\n\n private updateExistingStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n const stageState = this.kanbanStageStates[stageId];\n stageState.name = this.stagesCollectionState.itemName(stage);\n\n runInAction(() => {\n const initialPageData = this.getInitialPageData(\n hasDataForStage\n ? stageData\n : {\n items: [],\n total: 0,\n cursor: null,\n },\n );\n\n stageState.itemsCollectionState.setInitialPage(initialPageData);\n\n // Directly update QueryResultState to trigger MobX reactivity for keyedItems\n const items = initialPageData.items || [];\n const total = initialPageData.total ?? items.length;\n const cursor = initialPageData.cursor;\n\n stageState.itemsCollectionState.result.setPages({\n processed: [items],\n unprocessed: [items],\n });\n\n stageState.itemsCollectionState.result.setTotals({\n processed: total,\n unprocessed: total,\n });\n\n stageState.setTotal(stageData?.total ?? 0);\n\n if (cursor != null) {\n stageState.itemsCollectionState.paginationMode.setCursor(cursor);\n }\n });\n }\n\n private getInitialPageData(stageData: DataResultRaw<T>) {\n return {\n items: stageData?.items,\n total: stageData?.total,\n cursor: stageData?.cursor,\n };\n }\n\n private getStageIdFromItem(item: T): string {\n return (item as Record<string, any>)[this.items.stageField];\n }\n\n // optimistic actions\n\n updateStage(originalStage: S, updatedStage: S) {\n const stageId = this.stagesCollectionState.itemKey(originalStage);\n const stageState = this.getStageStateByKey(stageId);\n\n this.stagesCollectionState.optimisticActions.updateOne(updatedStage, {\n submit: async (items) => {\n // just return the item that was passed in\n return Promise.resolve(items[0]);\n },\n keepPosition: true,\n });\n\n runInAction(() => {\n if (\n stageState.name !== this.stagesCollectionState.itemName(updatedStage)\n ) {\n stageState.name = this.stagesCollectionState.itemName(updatedStage);\n }\n });\n }\n\n setStages(stages: S[]) {\n runInAction(() => {\n const getKey = (stage: S) => this.stagesCollectionState.itemKey(stage);\n const currentStageIds = new Set(Object.keys(this.kanbanStageStates));\n const newStageIds = new Set(stages.map(getKey));\n\n this.stagesCollectionState.result.setPages({\n processed: [stages],\n unprocessed: [stages],\n });\n this.stagesCollectionState.result.setTotals({\n processed: stages.length,\n unprocessed: stages.length,\n });\n\n currentStageIds.forEach((stageId) => {\n if (!newStageIds.has(stageId)) {\n this.disposeStageState(stageId);\n }\n });\n\n stages.forEach((stage) => {\n const stageId = getKey(stage);\n if (!this.kanbanStageStates[stageId]) {\n this.createNewStageState(\n stage,\n stageId,\n { items: [], total: 0, cursor: null },\n false,\n );\n } else {\n this.kanbanStageStates[stageId].name =\n this.stagesCollectionState.itemName(stage);\n }\n });\n });\n }\n\n createStage(stage: S) {\n this.stagesCollectionState.optimisticActions.createOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.createNewStageState(\n stage,\n stageId,\n {\n items: [],\n total: 0,\n cursor: null,\n },\n false,\n );\n });\n }\n\n scrollToStage({ stageKey }: { stageKey: string }) {\n this.events.emit('scrollToStage', { stageKey });\n }\n\n scrollToCardInStage({\n stageKey,\n cardKey,\n }: {\n stageKey: string;\n cardKey: string;\n }) {\n this.events.emit('scrollToCardInStage', { stageKey, cardKey });\n }\n\n deleteStage(stage: S) {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.stagesCollectionState.optimisticActions.deleteOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n this.disposeStageState(stageId);\n }\n\n reorderStages(fromIndex: number, toIndex: number) {\n const keyedItems = this.stagesCollectionState.result.keyedItems;\n if (fromIndex === toIndex) {\n return;\n }\n\n const from = keyedItems[fromIndex];\n const over = keyedItems[toIndex];\n\n let after;\n if (toIndex === 0) {\n after = null;\n } else if (fromIndex < toIndex) {\n after = over;\n } else {\n after = keyedItems[toIndex - 1];\n }\n\n const actionMove = {\n moveId: uuid(),\n from,\n over,\n after,\n isFromHandle: false,\n filtersKeyHash: this.stagesCollectionState.query.filtersKeyHash,\n query: this.stagesCollectionState.originQuery,\n };\n\n this.stagesCollectionState.optimisticActions._orderByMode = 'moves';\n this.stagesCollectionState.optimisticActions.move(actionMove, {\n collectionSnapshot: {},\n });\n }\n\n moveItemBetweenStages(\n originalItem: T,\n updatedItem: T,\n fromStageId: string,\n toStageId: string,\n ) {\n this.getStageStateByKey(fromStageId).deleteItem(originalItem);\n this.getStageStateByKey(toStageId).createItem(updatedItem);\n }\n\n // optimistic actions card\n deleteCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).deleteItem(card);\n }\n\n createCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).createItem(card);\n }\n\n updateCard(card: T) {\n const stageId = this.getStageIdFromItem(card);\n this.getStageStateByKey(stageId).updateItem(card);\n }\n\n // Helper functions for BI reporting\n getStageIndexByKey(stageKey: string): number {\n return this.stages.findIndex(\n (stage) => this.stagesCollectionState.itemKey(stage) === stageKey,\n );\n }\n\n getStageNameByKey(stageKey: string): string {\n const stage = this.stages.find(\n (s) => this.stagesCollectionState.itemKey(s) === stageKey,\n );\n return stage ? this.stagesCollectionState.itemName(stage) : '';\n }\n\n getStageById(stageKey: string): S | undefined {\n return this.stages.find(\n (stage) => this.stagesCollectionState.itemKey(stage) === stageKey,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|