@wix/patterns 1.366.0 → 1.370.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/CollectionTable/CollectionTableWSRTable.js +6 -3
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.js +25 -30
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.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/CollectionToolbarActionsGroupProps.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js +66 -17
- package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +22 -14
- package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.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/CollectionToolbar/ToolbarOverflowMenu.js +329 -0
- package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -0
- package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js +85 -0
- package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -0
- 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/CtaProps.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.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.js +59 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.uni.driver.js +20 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css +4 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.uni.driver.js +12 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/View.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/index.js +31 -0
- package/dist/cjs/components/EditableTable/cellTypes/email/index.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/index.js +5 -1
- package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.js +4 -9
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.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.js +4 -5
- package/dist/cjs/components/EditableTable/cellTypes/number/View.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.js +79 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.uni.driver.js +20 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.js +30 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css +4 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.uni.driver.js +12 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/View.uni.driver.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/index.js +45 -0
- package/dist/cjs/components/EditableTable/cellTypes/object/index.js.map +1 -0
- 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/select/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js +15 -0
- package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/cjs/components/EditableTable/useKeyboardNavigation.js +10 -0
- 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/TableGridSwitchButton/TableGridSwitchButton.js +14 -38
- package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
- package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js +34 -0
- package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js.map +1 -0
- 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/hooks/useStaticListFilterCollection.js +2 -1
- package/dist/cjs/hooks/useStaticListFilterCollection.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/EditableTable/CellInteractionState.js +65 -0
- package/dist/cjs/state/EditableTable/CellInteractionState.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/TableState.js +2 -0
- package/dist/cjs/state/TableState.js.map +1 -1
- package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js +38 -4
- package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
- package/dist/cjs/state/Toolbar/computeResponsiveTargetState.js +56 -17
- package/dist/cjs/state/Toolbar/computeResponsiveTargetState.js.map +1 -1
- package/dist/cjs/state/Toolbar/toolbarResponsiveConstants.js +5 -1
- package/dist/cjs/state/Toolbar/toolbarResponsiveConstants.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/AI Assistant.md +171 -0
- package/dist/docs/ActionCellProps.md +40 -0
- package/dist/docs/ActionSubItem.md +24 -0
- package/dist/docs/Allow Users to Add Extended Fields.md +194 -0
- package/dist/docs/AutoCompleteFilter.md +276 -0
- package/dist/docs/BulkActionModalRenderProp.md +22 -0
- package/dist/docs/BulkSelectState.md +18 -0
- package/dist/docs/Category.md +19 -0
- package/dist/docs/CollectionEmptyState.md +240 -0
- package/dist/docs/CollectionErrorState.md +107 -0
- package/dist/docs/CollectionNoResultsState.md +116 -0
- package/dist/docs/CollectionOptimisticActions.md +1074 -0
- package/dist/docs/CollectionPage.Content.md +154 -0
- package/dist/docs/CollectionPage.Header.md +216 -0
- package/dist/docs/CollectionPage.md +183 -0
- package/dist/docs/CollectionPremiumEmptyState.md +115 -0
- package/dist/docs/CollectionSearch.md +345 -0
- package/dist/docs/CollectionSection.md +16 -0
- package/dist/docs/CollectionState.md +29 -0
- package/dist/docs/CollectionSubToolbar.md +14 -0
- package/dist/docs/CollectionToolbar.md +18 -0
- package/dist/docs/Component Tests.md +191 -0
- package/dist/docs/ComputedQuery.md +45 -0
- package/dist/docs/CtaBaseProps.md +19 -0
- package/dist/docs/CustomColumns.md +916 -0
- package/dist/docs/CustomFieldsViewWidget.md +191 -0
- package/dist/docs/CustomFieldsWidget.md +635 -0
- package/dist/docs/Data Extension Overview.md +85 -0
- package/dist/docs/DataResultRaw.md +25 -0
- package/dist/docs/DateRangeFilter.md +202 -0
- package/dist/docs/Display Extended Fields.md +244 -0
- package/dist/docs/Enable Filters for Extended Fields.md +243 -0
- package/dist/docs/EntityPage.AdditionalContent.md +25 -0
- package/dist/docs/EntityPage.Card.md +250 -0
- package/dist/docs/EntityPage.Content.md +24 -0
- package/dist/docs/EntityPage.Header.md +260 -0
- package/dist/docs/EntityPage.MainContent.md +24 -0
- package/dist/docs/EntityPage.Slots.md +75 -0
- package/dist/docs/EntityPage.md +1030 -0
- package/dist/docs/EntityPageState.md +23 -0
- package/dist/docs/Explore Apps.md +170 -0
- package/dist/docs/ExportTo.md +894 -0
- package/dist/docs/Filter Overview.md +448 -0
- package/dist/docs/FilterProps.md +26 -0
- package/dist/docs/FormPageState.md +17 -0
- package/dist/docs/Grid Sections.md +170 -0
- package/dist/docs/Grid.md +598 -0
- package/dist/docs/GridDragAndDrop.md +131 -0
- package/dist/docs/GridFolders.md +259 -0
- package/dist/docs/GridFoldersSection.md +16 -0
- package/dist/docs/GridFoldersState.md +20 -0
- package/dist/docs/GridSectionsProp.md +22 -0
- package/dist/docs/GridState.md +22 -0
- package/dist/docs/Highlighted Search.md +114 -0
- package/dist/docs/InMemoryBackend.md +81 -0
- package/dist/docs/Indeterminate.md +273 -0
- package/dist/docs/Internal Scroll.md +236 -0
- package/dist/docs/More Actions.md +1015 -0
- package/dist/docs/MoreActionsItem.md +33 -0
- package/dist/docs/MultiAutoInlineCheckboxFilter.md +850 -0
- package/dist/docs/MultiBulkActionToolbar.md +1174 -0
- package/dist/docs/MultiInlineCheckboxFilter.md +871 -0
- package/dist/docs/MultiLevelSorting.md +376 -0
- package/dist/docs/MultiSelectCheckboxFilter.md +369 -0
- package/dist/docs/MultiSelectCollectionFilter.md +218 -0
- package/dist/docs/NestedTable.md +1101 -0
- package/dist/docs/NestedTableLevel.md +24 -0
- package/dist/docs/NestedTableNodeState.md +23 -0
- package/dist/docs/NestedTableOptimisticActions.md +21 -0
- package/dist/docs/NestedTableState.md +21 -0
- package/dist/docs/Next.js.md +143 -0
- package/dist/docs/NumberRangeFilter.md +230 -0
- package/dist/docs/OperatorFilterPicker.md +195 -0
- package/dist/docs/PageWrapper.md +50 -0
- package/dist/docs/PatternsReactRoute.md +31 -0
- package/dist/docs/PatternsReactRouter.md +24 -0
- package/dist/docs/PickerContent.md +129 -0
- package/dist/docs/PickerModal.md +680 -0
- package/dist/docs/PickerStandalone.md +332 -0
- package/dist/docs/PrimaryActionButton.md +323 -0
- package/dist/docs/PrimaryActions.md +173 -0
- package/dist/docs/PrimaryPageButton.md +140 -0
- package/dist/docs/RadioGroupFilter.md +73 -0
- package/dist/docs/RequestId.md +58 -0
- package/dist/docs/SecondaryActions.md +175 -0
- package/dist/docs/SettingsPage.AdditionalContent.md +25 -0
- package/dist/docs/SettingsPage.Card.md +246 -0
- package/dist/docs/SettingsPage.Content.md +24 -0
- package/dist/docs/SettingsPage.Header.md +176 -0
- package/dist/docs/SettingsPage.MainContent.md +24 -0
- package/dist/docs/SettingsPage.md +680 -0
- package/dist/docs/SettingsPageState.md +22 -0
- package/dist/docs/SingleSelectFilter.md +401 -0
- package/dist/docs/Sled Tests.md +109 -0
- package/dist/docs/Sortable Columns.md +250 -0
- package/dist/docs/Suggestions.md +370 -0
- package/dist/docs/SummaryBar.md +515 -0
- package/dist/docs/Table Sections.md +473 -0
- package/dist/docs/Table.md +1065 -0
- package/dist/docs/TableColumn.md +35 -0
- package/dist/docs/TableDragAndDrop.md +502 -0
- package/dist/docs/TableFolders.md +419 -0
- package/dist/docs/TableFoldersState.md +22 -0
- package/dist/docs/TableGridSwitch.md +298 -0
- package/dist/docs/TableGridSwitchDragAndDrop.md +170 -0
- package/dist/docs/TableGridSwitchFolders.md +446 -0
- package/dist/docs/TableGridSwitchFoldersState.md +22 -0
- package/dist/docs/TableGridSwitchState.md +23 -0
- package/dist/docs/TableSectionsProp.md +22 -0
- package/dist/docs/TableState.md +24 -0
- package/dist/docs/TableTopNotification.md +314 -0
- package/dist/docs/TabsFilter.md +484 -0
- package/dist/docs/Tags Overview.md +118 -0
- package/dist/docs/Tags.md +718 -0
- package/dist/docs/TagsWidget.md +419 -0
- package/dist/docs/ToolbarCollectionState.md +19 -0
- package/dist/docs/ToolbarFilters.md +1588 -0
- package/dist/docs/ToolbarSecondaryActions.md +383 -0
- package/dist/docs/ToolbarTitle.md +324 -0
- package/dist/docs/View.md +23 -0
- package/dist/docs/Views.md +786 -0
- package/dist/docs/WidgetsFormProvider.md +61 -0
- package/dist/docs/WixPatternsBMProvider.md +31 -0
- package/dist/docs/WixPatternsBaseProvider.md +87 -0
- package/dist/docs/WixPatternsEssentialsProvider.md +43 -0
- package/dist/docs/WixPatternsGizaProvider.md +37 -0
- package/dist/docs/WixPatternsProvider.md +68 -0
- package/dist/docs/Working with Cache.md +114 -0
- package/dist/docs/arrayFilter.md +226 -0
- package/dist/docs/bulkActionModal.md +40 -0
- package/dist/docs/createNestedTableLevel.md +24 -0
- package/dist/docs/createNestedTableSingleEntityLevels.md +20 -0
- package/dist/docs/customFilter.md +182 -0
- package/dist/docs/dateRangeFilter.md +55 -0
- package/dist/docs/deleteSecondaryAction.md +122 -0
- package/dist/docs/idNameArrayFilter.md +206 -0
- package/dist/docs/index.json +662 -0
- package/dist/docs/operatorFilter.md +183 -0
- package/dist/docs/stringFilter.md +204 -0
- package/dist/docs/stringsArrayFilter.md +118 -0
- package/dist/docs/useAmbassadorCollection.md +45 -0
- package/dist/docs/useCollection.md +61 -0
- package/dist/docs/useCreateCollection.md +32 -0
- package/dist/docs/useCreateNestedOptimisticActions.md +21 -0
- package/dist/docs/useEntity.md +44 -0
- package/dist/docs/useEntityPage.md +57 -0
- package/dist/docs/useEntityPageContext.md +28 -0
- package/dist/docs/useFilterCollection.md +163 -0
- package/dist/docs/useGridCollection.md +58 -0
- package/dist/docs/useGridFolders.md +25 -0
- package/dist/docs/useItemsSelectionFilter.md +60 -0
- package/dist/docs/useNestedTable.md +66 -0
- package/dist/docs/useOptimisticActions.md +1288 -0
- package/dist/docs/usePatternsNavigate.md +57 -0
- package/dist/docs/usePickerContent.md +61 -0
- package/dist/docs/usePickerModal.md +68 -0
- package/dist/docs/usePickerStandalone.md +56 -0
- package/dist/docs/useSelector.md +181 -0
- package/dist/docs/useSettingsPage.md +54 -0
- package/dist/docs/useSettingsPageContext.md +28 -0
- package/dist/docs/useStaticListFilterCollection.md +194 -0
- package/dist/docs/useTableCollection.md +58 -0
- package/dist/docs/useTableFolders.md +25 -0
- package/dist/docs/useTableGridSwitchCollection.md +58 -0
- package/dist/docs/useTableGridSwitchFolders.md +25 -0
- package/dist/docs/useWidgetsFormContext.md +19 -0
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +3 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.js +3 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.js.map +1 -1
- 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/CollectionToolbarActionsGroupResponsiveLayout.js +39 -6
- package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +2 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js +110 -0
- package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -0
- package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js +74 -0
- package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -0
- 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/EditableTable/EditableCell.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.js +21 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.uni.driver.js +13 -0
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.js +5 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css +4 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.uni.driver.js +8 -0
- package/dist/esm/components/EditableTable/cellTypes/email/View.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/email/index.js +22 -0
- package/dist/esm/components/EditableTable/cellTypes/email/index.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/index.js +5 -1
- package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.js +2 -5
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.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.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.js.map +1 -1
- 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.js +39 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.uni.driver.js +13 -0
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.js +5 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css +4 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.uni.driver.js +8 -0
- package/dist/esm/components/EditableTable/cellTypes/object/View.uni.driver.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/object/index.js +47 -0
- package/dist/esm/components/EditableTable/cellTypes/object/index.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.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.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js +15 -1
- package/dist/esm/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
- package/dist/esm/components/EditableTable/useKeyboardNavigation.js +10 -0
- 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/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/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/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/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- 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/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js +2 -12
- package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
- package/dist/esm/components/TableGridSwitchButton/layoutConfig.js +14 -0
- package/dist/esm/components/TableGridSwitchButton/layoutConfig.js.map +1 -0
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/hooks/useStaticListFilterCollection.js +1 -0
- package/dist/esm/hooks/useStaticListFilterCollection.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/EditableTable/CellInteractionState.js +58 -0
- package/dist/esm/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/TableState.js +2 -0
- package/dist/esm/state/TableState.js.map +1 -1
- package/dist/esm/state/Toolbar/ToolbarResponsiveState.js +40 -5
- package/dist/esm/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
- package/dist/esm/state/Toolbar/computeResponsiveTargetState.js +46 -18
- package/dist/esm/state/Toolbar/computeResponsiveTargetState.js.map +1 -1
- package/dist/esm/state/Toolbar/toolbarResponsiveConstants.js +4 -0
- package/dist/esm/state/Toolbar/toolbarResponsiveConstants.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +24 -24
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.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/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts +3 -0
- package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.d.ts +5 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts +24 -0
- package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts.map +1 -0
- package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts +17 -0
- package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts.map +1 -0
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CtaProps.d.ts +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +2 -2
- package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +3 -3
- package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/Edit.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/email/Edit.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts +14 -0
- package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/Edit.uni.driver.d.ts +22 -0
- package/dist/types/components/EditableTable/cellTypes/email/Edit.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts +14 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.uni.driver.d.ts +15 -0
- package/dist/types/components/EditableTable/cellTypes/email/View.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/email/index.d.ts +5 -0
- package/dist/types/components/EditableTable/cellTypes/email/index.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/index.d.ts +3 -1
- package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/Edit.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/View.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/Edit.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/object/Edit.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts +14 -0
- package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/Edit.uni.driver.d.ts +22 -0
- package/dist/types/components/EditableTable/cellTypes/object/Edit.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.d.ts +4 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts +14 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.uni.driver.d.ts +15 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.uni.driver.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/index.d.ts +5 -0
- package/dist/types/components/EditableTable/cellTypes/object/index.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.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/url/View.st.css.d.ts.map +1 -1
- 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/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
- package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
- package/dist/types/components/Heading/Heading.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/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +37 -37
- package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SlidingModal/SlidingModal.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 +26 -26
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +37 -37
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +40 -40
- package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts +9 -0
- package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts.map +1 -0
- package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useStaticListFilterCollection.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellInteractionState.d.ts +7 -0
- package/dist/types/state/EditableTable/CellInteractionState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/types.d.ts +2 -0
- package/dist/types/state/EditableTable/types.d.ts.map +1 -1
- package/dist/types/state/TableState.d.ts +2 -0
- package/dist/types/state/TableState.d.ts.map +1 -1
- package/dist/types/state/Toolbar/ToolbarResponsiveState.d.ts +3 -0
- package/dist/types/state/Toolbar/ToolbarResponsiveState.d.ts.map +1 -1
- package/dist/types/state/Toolbar/computeResponsiveTargetState.d.ts +8 -1
- package/dist/types/state/Toolbar/computeResponsiveTargetState.d.ts.map +1 -1
- package/dist/types/state/Toolbar/toolbarResponsiveConstants.d.ts +2 -0
- package/dist/types/state/Toolbar/toolbarResponsiveConstants.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +194 -194
- package/dist/types/testkit/jsdom.d.ts +207 -207
- package/dist/types/testkit/playwright.d.ts +194 -194
- package/dist/types/testkit/puppeteer.d.ts +205 -205
- package/dist/types/version.d.ts +1 -1
- package/package.json +10 -7
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.tsx +3 -0
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.tsx +11 -4
- package/src/components/CollectionToolbar/CollectionToolbarActionsGroupProps.ts +3 -0
- package/src/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.tsx +73 -16
- package/src/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.tsx +4 -0
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionToolbar/ToolbarOverflowMenu.tsx +323 -0
- package/src/components/CollectionToolbar/useToolbarOverflowItems.ts +112 -0
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CtaProps.ts +1 -1
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/email/Edit.tsx +46 -0
- package/src/components/EditableTable/cellTypes/email/Edit.uni.driver.ts +23 -0
- package/src/components/EditableTable/cellTypes/email/View.st.css +4 -0
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/email/View.tsx +8 -0
- package/src/components/EditableTable/cellTypes/email/View.uni.driver.ts +9 -0
- package/src/components/EditableTable/cellTypes/email/index.ts +23 -0
- package/src/components/EditableTable/cellTypes/index.ts +6 -0
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/Edit.tsx +3 -8
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.tsx +2 -4
- package/src/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
- package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/object/Edit.tsx +72 -0
- package/src/components/EditableTable/cellTypes/object/Edit.uni.driver.ts +22 -0
- package/src/components/EditableTable/cellTypes/object/View.st.css +4 -0
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/object/View.tsx +12 -0
- package/src/components/EditableTable/cellTypes/object/View.uni.driver.ts +9 -0
- package/src/components/EditableTable/cellTypes/object/index.ts +49 -0
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
- package/src/components/EditableTable/useCellFocusAndEditing.ts +16 -1
- package/src/components/EditableTable/useKeyboardNavigation.ts +11 -0
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/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/TableGridSwitchButton/TableGridSwitchButton.tsx +2 -21
- package/src/components/TableGridSwitchButton/layoutConfig.tsx +20 -0
- 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/hooks/useStaticListFilterCollection.ts +1 -0
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/EditableTable/CellInteractionState.ts +63 -0
- package/src/state/EditableTable/types.ts +2 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/TableState.ts +3 -0
- package/src/state/Toolbar/ToolbarResponsiveState.ts +64 -10
- package/src/state/Toolbar/computeResponsiveTargetState.ts +68 -18
- package/src/state/Toolbar/toolbarResponsiveConstants.ts +4 -0
- package/src/styles.global.css +1 -1
- package/src/version.ts +1 -1
|
@@ -14,6 +14,7 @@ class CellInteractionState {
|
|
|
14
14
|
(0, _defineProperty2.default)(this, "editTrigger", null);
|
|
15
15
|
(0, _defineProperty2.default)(this, "selectedCells", new Set());
|
|
16
16
|
(0, _defineProperty2.default)(this, "selectionAnchor", null);
|
|
17
|
+
(0, _defineProperty2.default)(this, "focusedCellElement", null);
|
|
17
18
|
(0, _defineProperty2.default)(this, "_parent", void 0);
|
|
18
19
|
(0, _defineProperty2.default)(this, "_commitHandler", void 0);
|
|
19
20
|
this._commitHandler = commitHandler;
|
|
@@ -255,6 +256,70 @@ class CellInteractionState {
|
|
|
255
256
|
}
|
|
256
257
|
return result;
|
|
257
258
|
}
|
|
259
|
+
scrollFocusedCellIntoView() {
|
|
260
|
+
if (typeof requestAnimationFrame === 'undefined') {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
requestAnimationFrame(() => {
|
|
264
|
+
const cellEl = this.focusedCellElement;
|
|
265
|
+
if (!cellEl) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
cellEl.scrollIntoView({
|
|
269
|
+
block: 'nearest',
|
|
270
|
+
inline: 'nearest'
|
|
271
|
+
});
|
|
272
|
+
this._adjustScrollForStickyElements(cellEl);
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* After scrollIntoView, the cell may be hidden behind sticky columns
|
|
278
|
+
* or the sticky header. If so, scroll a bit more to fully reveal it.
|
|
279
|
+
*/
|
|
280
|
+
_adjustScrollForStickyElements(cellEl) {
|
|
281
|
+
const td = cellEl.parentElement;
|
|
282
|
+
if (!td) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Horizontal: check if cell is behind a sticky column.
|
|
287
|
+
// Sticky columns stay in place while other columns scroll, so their
|
|
288
|
+
// bounding rect's right edge can overlap the focused cell's left edge.
|
|
289
|
+
const row = td.parentElement;
|
|
290
|
+
const cellLeft = td.getBoundingClientRect().left;
|
|
291
|
+
if (row) {
|
|
292
|
+
let maxPrevRight = 0;
|
|
293
|
+
for (const child of Array.from(row.children)) {
|
|
294
|
+
if (child === td) {
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
const right = child.getBoundingClientRect().right;
|
|
298
|
+
if (right > maxPrevRight) {
|
|
299
|
+
maxPrevRight = right;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
if (cellLeft < maxPrevRight) {
|
|
303
|
+
var _cellEl$closest;
|
|
304
|
+
const scrollParent = (_cellEl$closest = cellEl.closest('table')) == null ? void 0 : _cellEl$closest.parentElement;
|
|
305
|
+
if (scrollParent) {
|
|
306
|
+
scrollParent.scrollLeft -= maxPrevRight - cellLeft;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Vertical: check if cell is behind the sticky header/toolbar.
|
|
312
|
+
const headerEl = this._parent.tableState.headerElement;
|
|
313
|
+
const scrollEl = this._parent.collection.scrollableContent;
|
|
314
|
+
if (headerEl && scrollEl) {
|
|
315
|
+
const headerBottom = headerEl.getBoundingClientRect().bottom;
|
|
316
|
+
const cellTop = td.getBoundingClientRect().top;
|
|
317
|
+
if (cellTop < headerBottom) {
|
|
318
|
+
// +2px buffer to prevent the cell from touching the header border
|
|
319
|
+
scrollEl.scrollTop -= headerBottom - cellTop + 2;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
258
323
|
getSelectionBorder(rowKey, columnId) {
|
|
259
324
|
if (!this.isCellSelected(rowKey, columnId)) {
|
|
260
325
|
return _utils.noBorder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_utils","CellInteractionState","constructor","commitHandler","parent","_defineProperty2","default","undefined","Set","_commitHandler","_parent","makeObservable","focusedCell","observable","ref","editingCell","editingValue","editTrigger","selectedCells","selectionAnchor","isEditing","computed","selectedCellsList","focusCell","action","clearFocus","startEdit","commitEdit","cancelEdit","setEditingValue","selectRange","selectAll","moveFocus","moveToNextCell","moveToPreviousCell","rowKey","columnId","clear","add","cellKey","trigger","_this$focusedCell","_this$focusedCell2","rk","cid","value","from","to","fromPos","_toIndices","toPos","keyedItems","editableColumns","minRow","Math","min","row","maxRow","max","minCol","col","maxCol","newKeys","r","c","key","id","_diffSelection","ki","length","_toPosition","direction","extend","pos","target","has","delete","isCellFocused","_this$focusedCell3","_this$focusedCell4","isCellEditing","_this$editingCell","_this$editingCell2","isCellSelected","result","parseCellKey","push","getSelectionBorder","noBorder","isNeighborSelected","neighbor","top","bottom","left","right","exports"],"sources":["../../../../src/state/EditableTable/CellInteractionState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { Cell, CellBorder } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport { cellKey, parseCellKey, noBorder } from './utils';\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\ntype CommitHandler = (editingValue: any, cell: Cell) => void;\nexport type EditTrigger = 'type' | 'enter' | 'doubleClick';\n\nexport class CellInteractionState<T, F extends FiltersMap> {\n focusedCell: Cell | null = null;\n editingCell: Cell | null = null;\n editingValue: any = undefined;\n editTrigger: EditTrigger | null = null;\n selectedCells = new Set<string>();\n selectionAnchor: Cell | null = null;\n private readonly _parent: EditableTableState<T, F>;\n private readonly _commitHandler: CommitHandler;\n\n constructor(commitHandler: CommitHandler, parent: EditableTableState<T, F>) {\n this._commitHandler = commitHandler;\n this._parent = parent;\n makeObservable(this, {\n focusedCell: observable.ref,\n editingCell: observable.ref,\n editingValue: observable.ref,\n editTrigger: observable.ref,\n selectedCells: observable,\n selectionAnchor: observable.ref,\n isEditing: computed,\n selectedCellsList: computed,\n focusCell: action,\n clearFocus: action,\n startEdit: action,\n commitEdit: action,\n cancelEdit: action,\n setEditingValue: action,\n selectRange: action,\n selectAll: action,\n moveFocus: action,\n moveToNextCell: action,\n moveToPreviousCell: action,\n });\n }\n\n get isEditing(): boolean {\n return this.editingCell !== null;\n }\n\n focusCell(rowKey: string, columnId: string) {\n if (this.editingCell) {\n this.commitEdit();\n }\n this.focusedCell = { rowKey, columnId };\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rowKey, columnId));\n this.selectionAnchor = { rowKey, columnId };\n }\n\n clearFocus() {\n this.focusedCell = null;\n this.selectedCells.clear();\n this.selectionAnchor = null;\n this.cancelEdit();\n }\n\n startEdit(\n rowKey?: string,\n columnId?: string,\n trigger: EditTrigger = 'enter',\n ) {\n const rk = rowKey ?? this.focusedCell?.rowKey;\n const cid = columnId ?? this.focusedCell?.columnId;\n if (rk != null && cid != null) {\n this.editingValue = undefined;\n this.editTrigger = trigger;\n this.editingCell = { rowKey: rk, columnId: cid };\n this.focusedCell = { rowKey: rk, columnId: cid };\n }\n }\n\n setEditingValue(value: any) {\n this.editingValue = value;\n }\n\n commitEdit() {\n try {\n if (this.editingCell) {\n this._commitHandler(this.editingValue, this.editingCell);\n }\n } finally {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n }\n\n cancelEdit() {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n\n selectRange(from: Cell, to: Cell) {\n const fromPos = this._parent._toIndices(from);\n const toPos = this._parent._toIndices(to);\n if (!fromPos || !toPos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n const minRow = Math.min(fromPos.row, toPos.row);\n const maxRow = Math.max(fromPos.row, toPos.row);\n const minCol = Math.min(fromPos.col, toPos.col);\n const maxCol = Math.max(fromPos.col, toPos.col);\n\n const newKeys = new Set<string>();\n for (let r = minRow; r <= maxRow; r++) {\n for (let c = minCol; c <= maxCol; c++) {\n newKeys.add(cellKey(keyedItems[r].key, editableColumns[c].id));\n }\n }\n\n this._diffSelection(newKeys);\n this.focusedCell = to;\n }\n\n selectAll() {\n const { keyedItems, editableColumns } = this._parent;\n const newKeys = new Set<string>();\n for (const ki of keyedItems) {\n for (const col of editableColumns) {\n newKeys.add(cellKey(ki.key, col.id));\n }\n }\n\n this._diffSelection(newKeys);\n\n if (keyedItems.length > 0 && editableColumns.length > 0) {\n this.selectionAnchor = this._parent._toPosition(0, 0)!;\n this.focusedCell = this._parent._toPosition(\n keyedItems.length - 1,\n editableColumns.length - 1,\n )!;\n }\n }\n\n moveFocus(direction: Direction, extend = false) {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n switch (direction) {\n case 'up':\n row = Math.max(0, row - 1);\n break;\n case 'down':\n row = Math.min(keyedItems.length - 1, row + 1);\n break;\n case 'left':\n col = Math.max(0, col - 1);\n break;\n case 'right':\n col = Math.min(editableColumns.length - 1, col + 1);\n break;\n }\n\n const target = this._parent._toPosition(row, col)!;\n if (extend && this.selectionAnchor) {\n this.selectRange(this.selectionAnchor, target);\n } else {\n this.focusCell(target.rowKey, target.columnId);\n }\n }\n\n moveToNextCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col++;\n if (col >= editableColumns.length) {\n col = 0;\n row++;\n if (row >= keyedItems.length) {\n row = keyedItems.length - 1;\n col = editableColumns.length - 1;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n moveToPreviousCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col--;\n if (col < 0) {\n col = editableColumns.length - 1;\n row--;\n if (row < 0) {\n row = 0;\n col = 0;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n private _diffSelection(newKeys: Set<string>) {\n for (const key of this.selectedCells) {\n if (!newKeys.has(key)) {\n this.selectedCells.delete(key);\n }\n }\n for (const key of newKeys) {\n if (!this.selectedCells.has(key)) {\n this.selectedCells.add(key);\n }\n }\n }\n\n isCellFocused(rowKey: string, columnId: string): boolean {\n return (\n this.focusedCell?.rowKey === rowKey &&\n this.focusedCell?.columnId === columnId\n );\n }\n\n isCellEditing(rowKey: string, columnId: string): boolean {\n return (\n this.editingCell?.rowKey === rowKey &&\n this.editingCell?.columnId === columnId\n );\n }\n\n isCellSelected(rowKey: string, columnId: string): boolean {\n return this.selectedCells.has(cellKey(rowKey, columnId));\n }\n\n get selectedCellsList(): Cell[] {\n const result: Cell[] = [];\n for (const key of this.selectedCells) {\n const pos = parseCellKey(key);\n if (pos) {\n result.push(pos);\n }\n }\n return result;\n }\n\n getSelectionBorder(rowKey: string, columnId: string): CellBorder {\n if (!this.isCellSelected(rowKey, columnId)) {\n return noBorder;\n }\n\n const pos = this._parent._toIndices({ rowKey, columnId });\n if (!pos) {\n return noBorder;\n }\n\n const isNeighborSelected = (row: number, col: number) => {\n const neighbor = this._parent._toPosition(row, col);\n return (\n neighbor !== null &&\n this.selectedCells.has(cellKey(neighbor.rowKey, neighbor.columnId))\n );\n };\n\n return {\n top: !isNeighborSelected(pos.row - 1, pos.col),\n bottom: !isNeighborSelected(pos.row + 1, pos.col),\n left: !isNeighborSelected(pos.row, pos.col - 1),\n right: !isNeighborSelected(pos.row, pos.col + 1),\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_utils","CellInteractionState","constructor","commitHandler","parent","_defineProperty2","default","undefined","Set","_commitHandler","_parent","makeObservable","focusedCell","observable","ref","editingCell","editingValue","editTrigger","selectedCells","selectionAnchor","isEditing","computed","selectedCellsList","focusCell","action","clearFocus","startEdit","commitEdit","cancelEdit","setEditingValue","selectRange","selectAll","moveFocus","moveToNextCell","moveToPreviousCell","rowKey","columnId","clear","add","cellKey","trigger","_this$focusedCell","_this$focusedCell2","rk","cid","value","from","to","fromPos","_toIndices","toPos","keyedItems","editableColumns","minRow","Math","min","row","maxRow","max","minCol","col","maxCol","newKeys","r","c","key","id","_diffSelection","ki","length","_toPosition","direction","extend","pos","target","has","delete","isCellFocused","_this$focusedCell3","_this$focusedCell4","isCellEditing","_this$editingCell","_this$editingCell2","isCellSelected","result","parseCellKey","push","scrollFocusedCellIntoView","requestAnimationFrame","cellEl","focusedCellElement","scrollIntoView","block","inline","_adjustScrollForStickyElements","td","parentElement","cellLeft","getBoundingClientRect","left","maxPrevRight","child","Array","children","right","_cellEl$closest","scrollParent","closest","scrollLeft","headerEl","tableState","headerElement","scrollEl","collection","scrollableContent","headerBottom","bottom","cellTop","top","scrollTop","getSelectionBorder","noBorder","isNeighborSelected","neighbor","exports"],"sources":["../../../../src/state/EditableTable/CellInteractionState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { Cell, CellBorder } from './types';\nimport type { FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport { cellKey, parseCellKey, noBorder } from './utils';\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\ntype CommitHandler = (editingValue: any, cell: Cell) => void;\nexport type EditTrigger = 'type' | 'enter' | 'doubleClick';\n\nexport class CellInteractionState<T, F extends FiltersMap> {\n focusedCell: Cell | null = null;\n editingCell: Cell | null = null;\n editingValue: any = undefined;\n editTrigger: EditTrigger | null = null;\n selectedCells = new Set<string>();\n selectionAnchor: Cell | null = null;\n focusedCellElement: HTMLElement | null = null;\n private readonly _parent: EditableTableState<T, F>;\n private readonly _commitHandler: CommitHandler;\n\n constructor(commitHandler: CommitHandler, parent: EditableTableState<T, F>) {\n this._commitHandler = commitHandler;\n this._parent = parent;\n makeObservable(this, {\n focusedCell: observable.ref,\n editingCell: observable.ref,\n editingValue: observable.ref,\n editTrigger: observable.ref,\n selectedCells: observable,\n selectionAnchor: observable.ref,\n isEditing: computed,\n selectedCellsList: computed,\n focusCell: action,\n clearFocus: action,\n startEdit: action,\n commitEdit: action,\n cancelEdit: action,\n setEditingValue: action,\n selectRange: action,\n selectAll: action,\n moveFocus: action,\n moveToNextCell: action,\n moveToPreviousCell: action,\n });\n }\n\n get isEditing(): boolean {\n return this.editingCell !== null;\n }\n\n focusCell(rowKey: string, columnId: string) {\n if (this.editingCell) {\n this.commitEdit();\n }\n this.focusedCell = { rowKey, columnId };\n this.selectedCells.clear();\n this.selectedCells.add(cellKey(rowKey, columnId));\n this.selectionAnchor = { rowKey, columnId };\n }\n\n clearFocus() {\n this.focusedCell = null;\n this.selectedCells.clear();\n this.selectionAnchor = null;\n this.cancelEdit();\n }\n\n startEdit(\n rowKey?: string,\n columnId?: string,\n trigger: EditTrigger = 'enter',\n ) {\n const rk = rowKey ?? this.focusedCell?.rowKey;\n const cid = columnId ?? this.focusedCell?.columnId;\n if (rk != null && cid != null) {\n this.editingValue = undefined;\n this.editTrigger = trigger;\n this.editingCell = { rowKey: rk, columnId: cid };\n this.focusedCell = { rowKey: rk, columnId: cid };\n }\n }\n\n setEditingValue(value: any) {\n this.editingValue = value;\n }\n\n commitEdit() {\n try {\n if (this.editingCell) {\n this._commitHandler(this.editingValue, this.editingCell);\n }\n } finally {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n }\n\n cancelEdit() {\n this.editingValue = undefined;\n this.editTrigger = null;\n this.editingCell = null;\n }\n\n selectRange(from: Cell, to: Cell) {\n const fromPos = this._parent._toIndices(from);\n const toPos = this._parent._toIndices(to);\n if (!fromPos || !toPos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n const minRow = Math.min(fromPos.row, toPos.row);\n const maxRow = Math.max(fromPos.row, toPos.row);\n const minCol = Math.min(fromPos.col, toPos.col);\n const maxCol = Math.max(fromPos.col, toPos.col);\n\n const newKeys = new Set<string>();\n for (let r = minRow; r <= maxRow; r++) {\n for (let c = minCol; c <= maxCol; c++) {\n newKeys.add(cellKey(keyedItems[r].key, editableColumns[c].id));\n }\n }\n\n this._diffSelection(newKeys);\n this.focusedCell = to;\n }\n\n selectAll() {\n const { keyedItems, editableColumns } = this._parent;\n const newKeys = new Set<string>();\n for (const ki of keyedItems) {\n for (const col of editableColumns) {\n newKeys.add(cellKey(ki.key, col.id));\n }\n }\n\n this._diffSelection(newKeys);\n\n if (keyedItems.length > 0 && editableColumns.length > 0) {\n this.selectionAnchor = this._parent._toPosition(0, 0)!;\n this.focusedCell = this._parent._toPosition(\n keyedItems.length - 1,\n editableColumns.length - 1,\n )!;\n }\n }\n\n moveFocus(direction: Direction, extend = false) {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n switch (direction) {\n case 'up':\n row = Math.max(0, row - 1);\n break;\n case 'down':\n row = Math.min(keyedItems.length - 1, row + 1);\n break;\n case 'left':\n col = Math.max(0, col - 1);\n break;\n case 'right':\n col = Math.min(editableColumns.length - 1, col + 1);\n break;\n }\n\n const target = this._parent._toPosition(row, col)!;\n if (extend && this.selectionAnchor) {\n this.selectRange(this.selectionAnchor, target);\n } else {\n this.focusCell(target.rowKey, target.columnId);\n }\n }\n\n moveToNextCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col++;\n if (col >= editableColumns.length) {\n col = 0;\n row++;\n if (row >= keyedItems.length) {\n row = keyedItems.length - 1;\n col = editableColumns.length - 1;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n moveToPreviousCell() {\n const pos = this.focusedCell && this._parent._toIndices(this.focusedCell);\n if (!pos) {\n return;\n }\n\n const { keyedItems, editableColumns } = this._parent;\n let { row, col } = pos;\n\n col--;\n if (col < 0) {\n col = editableColumns.length - 1;\n row--;\n if (row < 0) {\n row = 0;\n col = 0;\n }\n }\n this.focusCell(keyedItems[row].key, editableColumns[col].id);\n }\n\n private _diffSelection(newKeys: Set<string>) {\n for (const key of this.selectedCells) {\n if (!newKeys.has(key)) {\n this.selectedCells.delete(key);\n }\n }\n for (const key of newKeys) {\n if (!this.selectedCells.has(key)) {\n this.selectedCells.add(key);\n }\n }\n }\n\n isCellFocused(rowKey: string, columnId: string): boolean {\n return (\n this.focusedCell?.rowKey === rowKey &&\n this.focusedCell?.columnId === columnId\n );\n }\n\n isCellEditing(rowKey: string, columnId: string): boolean {\n return (\n this.editingCell?.rowKey === rowKey &&\n this.editingCell?.columnId === columnId\n );\n }\n\n isCellSelected(rowKey: string, columnId: string): boolean {\n return this.selectedCells.has(cellKey(rowKey, columnId));\n }\n\n get selectedCellsList(): Cell[] {\n const result: Cell[] = [];\n for (const key of this.selectedCells) {\n const pos = parseCellKey(key);\n if (pos) {\n result.push(pos);\n }\n }\n return result;\n }\n\n scrollFocusedCellIntoView() {\n if (typeof requestAnimationFrame === 'undefined') {\n return;\n }\n requestAnimationFrame(() => {\n const cellEl = this.focusedCellElement;\n if (!cellEl) {\n return;\n }\n\n cellEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n this._adjustScrollForStickyElements(cellEl);\n });\n }\n\n /**\n * After scrollIntoView, the cell may be hidden behind sticky columns\n * or the sticky header. If so, scroll a bit more to fully reveal it.\n */\n private _adjustScrollForStickyElements(cellEl: HTMLElement) {\n const td = cellEl.parentElement;\n if (!td) {\n return;\n }\n\n // Horizontal: check if cell is behind a sticky column.\n // Sticky columns stay in place while other columns scroll, so their\n // bounding rect's right edge can overlap the focused cell's left edge.\n const row = td.parentElement;\n const cellLeft = td.getBoundingClientRect().left;\n if (row) {\n let maxPrevRight = 0;\n for (const child of Array.from(row.children)) {\n if (child === td) {\n break;\n }\n const right = child.getBoundingClientRect().right;\n if (right > maxPrevRight) {\n maxPrevRight = right;\n }\n }\n if (cellLeft < maxPrevRight) {\n const scrollParent = cellEl.closest('table')?.parentElement;\n if (scrollParent) {\n scrollParent.scrollLeft -= maxPrevRight - cellLeft;\n }\n }\n }\n\n // Vertical: check if cell is behind the sticky header/toolbar.\n const headerEl = this._parent.tableState.headerElement;\n const scrollEl = this._parent.collection.scrollableContent;\n if (headerEl && scrollEl) {\n const headerBottom = headerEl.getBoundingClientRect().bottom;\n const cellTop = td.getBoundingClientRect().top;\n if (cellTop < headerBottom) {\n // +2px buffer to prevent the cell from touching the header border\n scrollEl.scrollTop -= headerBottom - cellTop + 2;\n }\n }\n }\n\n getSelectionBorder(rowKey: string, columnId: string): CellBorder {\n if (!this.isCellSelected(rowKey, columnId)) {\n return noBorder;\n }\n\n const pos = this._parent._toIndices({ rowKey, columnId });\n if (!pos) {\n return noBorder;\n }\n\n const isNeighborSelected = (row: number, col: number) => {\n const neighbor = this._parent._toPosition(row, col);\n return (\n neighbor !== null &&\n this.selectedCells.has(cellKey(neighbor.rowKey, neighbor.columnId))\n );\n };\n\n return {\n top: !isNeighborSelected(pos.row - 1, pos.col),\n bottom: !isNeighborSelected(pos.row + 1, pos.col),\n left: !isNeighborSelected(pos.row, pos.col - 1),\n right: !isNeighborSelected(pos.row, pos.col + 1),\n };\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIA,IAAAC,MAAA,GAAAD,OAAA;AAMO,MAAME,oBAAoB,CAA0B;EAWzDC,WAAWA,CAACC,aAA4B,EAAEC,MAAgC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,uBAVjD,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBACJ,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBACXC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA,uBACK,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBACtB,IAAIE,GAAG,CAAS,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,2BACF,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BACM,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAK3C,IAAI,CAACG,cAAc,GAAGN,aAAa;IACnC,IAAI,CAACO,OAAO,GAAGN,MAAM;IACrB,IAAAO,oBAAc,EAAC,IAAI,EAAE;MACnBC,WAAW,EAAEC,gBAAU,CAACC,GAAG;MAC3BC,WAAW,EAAEF,gBAAU,CAACC,GAAG;MAC3BE,YAAY,EAAEH,gBAAU,CAACC,GAAG;MAC5BG,WAAW,EAAEJ,gBAAU,CAACC,GAAG;MAC3BI,aAAa,EAAEL,gBAAU;MACzBM,eAAe,EAAEN,gBAAU,CAACC,GAAG;MAC/BM,SAAS,EAAEC,cAAQ;MACnBC,iBAAiB,EAAED,cAAQ;MAC3BE,SAAS,EAAEC,YAAM;MACjBC,UAAU,EAAED,YAAM;MAClBE,SAAS,EAAEF,YAAM;MACjBG,UAAU,EAAEH,YAAM;MAClBI,UAAU,EAAEJ,YAAM;MAClBK,eAAe,EAAEL,YAAM;MACvBM,WAAW,EAAEN,YAAM;MACnBO,SAAS,EAAEP,YAAM;MACjBQ,SAAS,EAAER,YAAM;MACjBS,cAAc,EAAET,YAAM;MACtBU,kBAAkB,EAAEV;IACtB,CAAC,CAAC;EACJ;EAEA,IAAIJ,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACL,WAAW,KAAK,IAAI;EAClC;EAEAQ,SAASA,CAACY,MAAc,EAAEC,QAAgB,EAAE;IAC1C,IAAI,IAAI,CAACrB,WAAW,EAAE;MACpB,IAAI,CAACY,UAAU,CAAC,CAAC;IACnB;IACA,IAAI,CAACf,WAAW,GAAG;MAAEuB,MAAM;MAAEC;IAAS,CAAC;IACvC,IAAI,CAAClB,aAAa,CAACmB,KAAK,CAAC,CAAC;IAC1B,IAAI,CAACnB,aAAa,CAACoB,GAAG,CAAC,IAAAC,cAAO,EAACJ,MAAM,EAAEC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAACjB,eAAe,GAAG;MAAEgB,MAAM;MAAEC;IAAS,CAAC;EAC7C;EAEAX,UAAUA,CAAA,EAAG;IACX,IAAI,CAACb,WAAW,GAAG,IAAI;IACvB,IAAI,CAACM,aAAa,CAACmB,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAClB,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACS,UAAU,CAAC,CAAC;EACnB;EAEAF,SAASA,CACPS,MAAe,EACfC,QAAiB,EACjBI,OAAoB,GAAG,OAAO,EAC9B;IAAA,IAAAC,iBAAA,EAAAC,kBAAA;IACA,MAAMC,EAAE,GAAGR,MAAM,MAAAM,iBAAA,GAAI,IAAI,CAAC7B,WAAW,qBAAhB6B,iBAAA,CAAkBN,MAAM;IAC7C,MAAMS,GAAG,GAAGR,QAAQ,MAAAM,kBAAA,GAAI,IAAI,CAAC9B,WAAW,qBAAhB8B,kBAAA,CAAkBN,QAAQ;IAClD,IAAIO,EAAE,IAAI,IAAI,IAAIC,GAAG,IAAI,IAAI,EAAE;MAC7B,IAAI,CAAC5B,YAAY,GAAGT,SAAS;MAC7B,IAAI,CAACU,WAAW,GAAGuB,OAAO;MAC1B,IAAI,CAACzB,WAAW,GAAG;QAAEoB,MAAM,EAAEQ,EAAE;QAAEP,QAAQ,EAAEQ;MAAI,CAAC;MAChD,IAAI,CAAChC,WAAW,GAAG;QAAEuB,MAAM,EAAEQ,EAAE;QAAEP,QAAQ,EAAEQ;MAAI,CAAC;IAClD;EACF;EAEAf,eAAeA,CAACgB,KAAU,EAAE;IAC1B,IAAI,CAAC7B,YAAY,GAAG6B,KAAK;EAC3B;EAEAlB,UAAUA,CAAA,EAAG;IACX,IAAI;MACF,IAAI,IAAI,CAACZ,WAAW,EAAE;QACpB,IAAI,CAACN,cAAc,CAAC,IAAI,CAACO,YAAY,EAAE,IAAI,CAACD,WAAW,CAAC;MAC1D;IACF,CAAC,SAAS;MACR,IAAI,CAACC,YAAY,GAAGT,SAAS;MAC7B,IAAI,CAACU,WAAW,GAAG,IAAI;MACvB,IAAI,CAACF,WAAW,GAAG,IAAI;IACzB;EACF;EAEAa,UAAUA,CAAA,EAAG;IACX,IAAI,CAACZ,YAAY,GAAGT,SAAS;IAC7B,IAAI,CAACU,WAAW,GAAG,IAAI;IACvB,IAAI,CAACF,WAAW,GAAG,IAAI;EACzB;EAEAe,WAAWA,CAACgB,IAAU,EAAEC,EAAQ,EAAE;IAChC,MAAMC,OAAO,GAAG,IAAI,CAACtC,OAAO,CAACuC,UAAU,CAACH,IAAI,CAAC;IAC7C,MAAMI,KAAK,GAAG,IAAI,CAACxC,OAAO,CAACuC,UAAU,CAACF,EAAE,CAAC;IACzC,IAAI,CAACC,OAAO,IAAI,CAACE,KAAK,EAAE;MACtB;IACF;IAEA,MAAM;MAAEC,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC1C,OAAO;IACpD,MAAM2C,MAAM,GAAGC,IAAI,CAACC,GAAG,CAACP,OAAO,CAACQ,GAAG,EAAEN,KAAK,CAACM,GAAG,CAAC;IAC/C,MAAMC,MAAM,GAAGH,IAAI,CAACI,GAAG,CAACV,OAAO,CAACQ,GAAG,EAAEN,KAAK,CAACM,GAAG,CAAC;IAC/C,MAAMG,MAAM,GAAGL,IAAI,CAACC,GAAG,CAACP,OAAO,CAACY,GAAG,EAAEV,KAAK,CAACU,GAAG,CAAC;IAC/C,MAAMC,MAAM,GAAGP,IAAI,CAACI,GAAG,CAACV,OAAO,CAACY,GAAG,EAAEV,KAAK,CAACU,GAAG,CAAC;IAE/C,MAAME,OAAO,GAAG,IAAItD,GAAG,CAAS,CAAC;IACjC,KAAK,IAAIuD,CAAC,GAAGV,MAAM,EAAEU,CAAC,IAAIN,MAAM,EAAEM,CAAC,EAAE,EAAE;MACrC,KAAK,IAAIC,CAAC,GAAGL,MAAM,EAAEK,CAAC,IAAIH,MAAM,EAAEG,CAAC,EAAE,EAAE;QACrCF,OAAO,CAACxB,GAAG,CAAC,IAAAC,cAAO,EAACY,UAAU,CAACY,CAAC,CAAC,CAACE,GAAG,EAAEb,eAAe,CAACY,CAAC,CAAC,CAACE,EAAE,CAAC,CAAC;MAChE;IACF;IAEA,IAAI,CAACC,cAAc,CAACL,OAAO,CAAC;IAC5B,IAAI,CAAClD,WAAW,GAAGmC,EAAE;EACvB;EAEAhB,SAASA,CAAA,EAAG;IACV,MAAM;MAAEoB,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC1C,OAAO;IACpD,MAAMoD,OAAO,GAAG,IAAItD,GAAG,CAAS,CAAC;IACjC,KAAK,MAAM4D,EAAE,IAAIjB,UAAU,EAAE;MAC3B,KAAK,MAAMS,GAAG,IAAIR,eAAe,EAAE;QACjCU,OAAO,CAACxB,GAAG,CAAC,IAAAC,cAAO,EAAC6B,EAAE,CAACH,GAAG,EAAEL,GAAG,CAACM,EAAE,CAAC,CAAC;MACtC;IACF;IAEA,IAAI,CAACC,cAAc,CAACL,OAAO,CAAC;IAE5B,IAAIX,UAAU,CAACkB,MAAM,GAAG,CAAC,IAAIjB,eAAe,CAACiB,MAAM,GAAG,CAAC,EAAE;MACvD,IAAI,CAAClD,eAAe,GAAG,IAAI,CAACT,OAAO,CAAC4D,WAAW,CAAC,CAAC,EAAE,CAAC,CAAE;MACtD,IAAI,CAAC1D,WAAW,GAAG,IAAI,CAACF,OAAO,CAAC4D,WAAW,CACzCnB,UAAU,CAACkB,MAAM,GAAG,CAAC,EACrBjB,eAAe,CAACiB,MAAM,GAAG,CAC3B,CAAE;IACJ;EACF;EAEArC,SAASA,CAACuC,SAAoB,EAAEC,MAAM,GAAG,KAAK,EAAE;IAC9C,MAAMC,GAAG,GAAG,IAAI,CAAC7D,WAAW,IAAI,IAAI,CAACF,OAAO,CAACuC,UAAU,CAAC,IAAI,CAACrC,WAAW,CAAC;IACzE,IAAI,CAAC6D,GAAG,EAAE;MACR;IACF;IAEA,MAAM;MAAEtB,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC1C,OAAO;IACpD,IAAI;MAAE8C,GAAG;MAAEI;IAAI,CAAC,GAAGa,GAAG;IAEtB,QAAQF,SAAS;MACf,KAAK,IAAI;QACPf,GAAG,GAAGF,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEF,GAAG,GAAG,CAAC,CAAC;QAC1B;MACF,KAAK,MAAM;QACTA,GAAG,GAAGF,IAAI,CAACC,GAAG,CAACJ,UAAU,CAACkB,MAAM,GAAG,CAAC,EAAEb,GAAG,GAAG,CAAC,CAAC;QAC9C;MACF,KAAK,MAAM;QACTI,GAAG,GAAGN,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEE,GAAG,GAAG,CAAC,CAAC;QAC1B;MACF,KAAK,OAAO;QACVA,GAAG,GAAGN,IAAI,CAACC,GAAG,CAACH,eAAe,CAACiB,MAAM,GAAG,CAAC,EAAET,GAAG,GAAG,CAAC,CAAC;QACnD;IACJ;IAEA,MAAMc,MAAM,GAAG,IAAI,CAAChE,OAAO,CAAC4D,WAAW,CAACd,GAAG,EAAEI,GAAG,CAAE;IAClD,IAAIY,MAAM,IAAI,IAAI,CAACrD,eAAe,EAAE;MAClC,IAAI,CAACW,WAAW,CAAC,IAAI,CAACX,eAAe,EAAEuD,MAAM,CAAC;IAChD,CAAC,MAAM;MACL,IAAI,CAACnD,SAAS,CAACmD,MAAM,CAACvC,MAAM,EAAEuC,MAAM,CAACtC,QAAQ,CAAC;IAChD;EACF;EAEAH,cAAcA,CAAA,EAAG;IACf,MAAMwC,GAAG,GAAG,IAAI,CAAC7D,WAAW,IAAI,IAAI,CAACF,OAAO,CAACuC,UAAU,CAAC,IAAI,CAACrC,WAAW,CAAC;IACzE,IAAI,CAAC6D,GAAG,EAAE;MACR;IACF;IAEA,MAAM;MAAEtB,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC1C,OAAO;IACpD,IAAI;MAAE8C,GAAG;MAAEI;IAAI,CAAC,GAAGa,GAAG;IAEtBb,GAAG,EAAE;IACL,IAAIA,GAAG,IAAIR,eAAe,CAACiB,MAAM,EAAE;MACjCT,GAAG,GAAG,CAAC;MACPJ,GAAG,EAAE;MACL,IAAIA,GAAG,IAAIL,UAAU,CAACkB,MAAM,EAAE;QAC5Bb,GAAG,GAAGL,UAAU,CAACkB,MAAM,GAAG,CAAC;QAC3BT,GAAG,GAAGR,eAAe,CAACiB,MAAM,GAAG,CAAC;MAClC;IACF;IACA,IAAI,CAAC9C,SAAS,CAAC4B,UAAU,CAACK,GAAG,CAAC,CAACS,GAAG,EAAEb,eAAe,CAACQ,GAAG,CAAC,CAACM,EAAE,CAAC;EAC9D;EAEAhC,kBAAkBA,CAAA,EAAG;IACnB,MAAMuC,GAAG,GAAG,IAAI,CAAC7D,WAAW,IAAI,IAAI,CAACF,OAAO,CAACuC,UAAU,CAAC,IAAI,CAACrC,WAAW,CAAC;IACzE,IAAI,CAAC6D,GAAG,EAAE;MACR;IACF;IAEA,MAAM;MAAEtB,UAAU;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAAC1C,OAAO;IACpD,IAAI;MAAE8C,GAAG;MAAEI;IAAI,CAAC,GAAGa,GAAG;IAEtBb,GAAG,EAAE;IACL,IAAIA,GAAG,GAAG,CAAC,EAAE;MACXA,GAAG,GAAGR,eAAe,CAACiB,MAAM,GAAG,CAAC;MAChCb,GAAG,EAAE;MACL,IAAIA,GAAG,GAAG,CAAC,EAAE;QACXA,GAAG,GAAG,CAAC;QACPI,GAAG,GAAG,CAAC;MACT;IACF;IACA,IAAI,CAACrC,SAAS,CAAC4B,UAAU,CAACK,GAAG,CAAC,CAACS,GAAG,EAAEb,eAAe,CAACQ,GAAG,CAAC,CAACM,EAAE,CAAC;EAC9D;EAEQC,cAAcA,CAACL,OAAoB,EAAE;IAC3C,KAAK,MAAMG,GAAG,IAAI,IAAI,CAAC/C,aAAa,EAAE;MACpC,IAAI,CAAC4C,OAAO,CAACa,GAAG,CAACV,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC/C,aAAa,CAAC0D,MAAM,CAACX,GAAG,CAAC;MAChC;IACF;IACA,KAAK,MAAMA,GAAG,IAAIH,OAAO,EAAE;MACzB,IAAI,CAAC,IAAI,CAAC5C,aAAa,CAACyD,GAAG,CAACV,GAAG,CAAC,EAAE;QAChC,IAAI,CAAC/C,aAAa,CAACoB,GAAG,CAAC2B,GAAG,CAAC;MAC7B;IACF;EACF;EAEAY,aAAaA,CAAC1C,MAAc,EAAEC,QAAgB,EAAW;IAAA,IAAA0C,kBAAA,EAAAC,kBAAA;IACvD,OACE,EAAAD,kBAAA,OAAI,CAAClE,WAAW,qBAAhBkE,kBAAA,CAAkB3C,MAAM,MAAKA,MAAM,IACnC,EAAA4C,kBAAA,OAAI,CAACnE,WAAW,qBAAhBmE,kBAAA,CAAkB3C,QAAQ,MAAKA,QAAQ;EAE3C;EAEA4C,aAAaA,CAAC7C,MAAc,EAAEC,QAAgB,EAAW;IAAA,IAAA6C,iBAAA,EAAAC,kBAAA;IACvD,OACE,EAAAD,iBAAA,OAAI,CAAClE,WAAW,qBAAhBkE,iBAAA,CAAkB9C,MAAM,MAAKA,MAAM,IACnC,EAAA+C,kBAAA,OAAI,CAACnE,WAAW,qBAAhBmE,kBAAA,CAAkB9C,QAAQ,MAAKA,QAAQ;EAE3C;EAEA+C,cAAcA,CAAChD,MAAc,EAAEC,QAAgB,EAAW;IACxD,OAAO,IAAI,CAAClB,aAAa,CAACyD,GAAG,CAAC,IAAApC,cAAO,EAACJ,MAAM,EAAEC,QAAQ,CAAC,CAAC;EAC1D;EAEA,IAAId,iBAAiBA,CAAA,EAAW;IAC9B,MAAM8D,MAAc,GAAG,EAAE;IACzB,KAAK,MAAMnB,GAAG,IAAI,IAAI,CAAC/C,aAAa,EAAE;MACpC,MAAMuD,GAAG,GAAG,IAAAY,mBAAY,EAACpB,GAAG,CAAC;MAC7B,IAAIQ,GAAG,EAAE;QACPW,MAAM,CAACE,IAAI,CAACb,GAAG,CAAC;MAClB;IACF;IACA,OAAOW,MAAM;EACf;EAEAG,yBAAyBA,CAAA,EAAG;IAC1B,IAAI,OAAOC,qBAAqB,KAAK,WAAW,EAAE;MAChD;IACF;IACAA,qBAAqB,CAAC,MAAM;MAC1B,MAAMC,MAAM,GAAG,IAAI,CAACC,kBAAkB;MACtC,IAAI,CAACD,MAAM,EAAE;QACX;MACF;MAEAA,MAAM,CAACE,cAAc,CAAC;QAAEC,KAAK,EAAE,SAAS;QAAEC,MAAM,EAAE;MAAU,CAAC,CAAC;MAC9D,IAAI,CAACC,8BAA8B,CAACL,MAAM,CAAC;IAC7C,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;EACUK,8BAA8BA,CAACL,MAAmB,EAAE;IAC1D,MAAMM,EAAE,GAAGN,MAAM,CAACO,aAAa;IAC/B,IAAI,CAACD,EAAE,EAAE;MACP;IACF;;IAEA;IACA;IACA;IACA,MAAMvC,GAAG,GAAGuC,EAAE,CAACC,aAAa;IAC5B,MAAMC,QAAQ,GAAGF,EAAE,CAACG,qBAAqB,CAAC,CAAC,CAACC,IAAI;IAChD,IAAI3C,GAAG,EAAE;MACP,IAAI4C,YAAY,GAAG,CAAC;MACpB,KAAK,MAAMC,KAAK,IAAIC,KAAK,CAACxD,IAAI,CAACU,GAAG,CAAC+C,QAAQ,CAAC,EAAE;QAC5C,IAAIF,KAAK,KAAKN,EAAE,EAAE;UAChB;QACF;QACA,MAAMS,KAAK,GAAGH,KAAK,CAACH,qBAAqB,CAAC,CAAC,CAACM,KAAK;QACjD,IAAIA,KAAK,GAAGJ,YAAY,EAAE;UACxBA,YAAY,GAAGI,KAAK;QACtB;MACF;MACA,IAAIP,QAAQ,GAAGG,YAAY,EAAE;QAAA,IAAAK,eAAA;QAC3B,MAAMC,YAAY,IAAAD,eAAA,GAAGhB,MAAM,CAACkB,OAAO,CAAC,OAAO,CAAC,qBAAvBF,eAAA,CAAyBT,aAAa;QAC3D,IAAIU,YAAY,EAAE;UAChBA,YAAY,CAACE,UAAU,IAAIR,YAAY,GAAGH,QAAQ;QACpD;MACF;IACF;;IAEA;IACA,MAAMY,QAAQ,GAAG,IAAI,CAACnG,OAAO,CAACoG,UAAU,CAACC,aAAa;IACtD,MAAMC,QAAQ,GAAG,IAAI,CAACtG,OAAO,CAACuG,UAAU,CAACC,iBAAiB;IAC1D,IAAIL,QAAQ,IAAIG,QAAQ,EAAE;MACxB,MAAMG,YAAY,GAAGN,QAAQ,CAACX,qBAAqB,CAAC,CAAC,CAACkB,MAAM;MAC5D,MAAMC,OAAO,GAAGtB,EAAE,CAACG,qBAAqB,CAAC,CAAC,CAACoB,GAAG;MAC9C,IAAID,OAAO,GAAGF,YAAY,EAAE;QAC1B;QACAH,QAAQ,CAACO,SAAS,IAAIJ,YAAY,GAAGE,OAAO,GAAG,CAAC;MAClD;IACF;EACF;EAEAG,kBAAkBA,CAACrF,MAAc,EAAEC,QAAgB,EAAc;IAC/D,IAAI,CAAC,IAAI,CAAC+C,cAAc,CAAChD,MAAM,EAAEC,QAAQ,CAAC,EAAE;MAC1C,OAAOqF,eAAQ;IACjB;IAEA,MAAMhD,GAAG,GAAG,IAAI,CAAC/D,OAAO,CAACuC,UAAU,CAAC;MAAEd,MAAM;MAAEC;IAAS,CAAC,CAAC;IACzD,IAAI,CAACqC,GAAG,EAAE;MACR,OAAOgD,eAAQ;IACjB;IAEA,MAAMC,kBAAkB,GAAGA,CAAClE,GAAW,EAAEI,GAAW,KAAK;MACvD,MAAM+D,QAAQ,GAAG,IAAI,CAACjH,OAAO,CAAC4D,WAAW,CAACd,GAAG,EAAEI,GAAG,CAAC;MACnD,OACE+D,QAAQ,KAAK,IAAI,IACjB,IAAI,CAACzG,aAAa,CAACyD,GAAG,CAAC,IAAApC,cAAO,EAACoF,QAAQ,CAACxF,MAAM,EAAEwF,QAAQ,CAACvF,QAAQ,CAAC,CAAC;IAEvE,CAAC;IAED,OAAO;MACLkF,GAAG,EAAE,CAACI,kBAAkB,CAACjD,GAAG,CAACjB,GAAG,GAAG,CAAC,EAAEiB,GAAG,CAACb,GAAG,CAAC;MAC9CwD,MAAM,EAAE,CAACM,kBAAkB,CAACjD,GAAG,CAACjB,GAAG,GAAG,CAAC,EAAEiB,GAAG,CAACb,GAAG,CAAC;MACjDuC,IAAI,EAAE,CAACuB,kBAAkB,CAACjD,GAAG,CAACjB,GAAG,EAAEiB,GAAG,CAACb,GAAG,GAAG,CAAC,CAAC;MAC/C4C,KAAK,EAAE,CAACkB,kBAAkB,CAACjD,GAAG,CAACjB,GAAG,EAAEiB,GAAG,CAACb,GAAG,GAAG,CAAC;IACjD,CAAC;EACH;AACF;AAACgE,OAAA,CAAA3H,oBAAA,GAAAA,oBAAA","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; prevent?: boolean } | undefined;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n select: SelectCellConfig;\n date: never;\n custom: Record<string, unknown>;\n}\n\nexport interface SelectCellConfig {\n options: { id: string; value: string }[];\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":[]}
|
|
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; prevent?: boolean } | undefined;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\n select: SelectCellConfig;\n date: never;\n object: never;\n custom: Record<string, unknown>;\n}\n\nexport interface SelectCellConfig {\n options: { id: string; value: string }[];\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_ = "FormPageHeader1954382581";
|
|
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": "FormPageHeader1954382581__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_ = \"FormPageHeader1954382581\";\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\":\"FormPageHeader1954382581__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":[]}
|
|
@@ -13,6 +13,8 @@ class TableState {
|
|
|
13
13
|
(0, _defineProperty2.default)(this, "virtual", void 0);
|
|
14
14
|
(0, _defineProperty2.default)(this, "loadingRowState", void 0);
|
|
15
15
|
(0, _defineProperty2.default)(this, "tableDragAndDropState", null);
|
|
16
|
+
/** The sticky table header element (column headers row) */
|
|
17
|
+
(0, _defineProperty2.default)(this, "headerElement", null);
|
|
16
18
|
(0, _defineProperty2.default)(this, "retryErrorState", () => this.toolbar.retryErrorState());
|
|
17
19
|
(0, _defineProperty2.default)(this, "onAddItemActionComplete", async items => {
|
|
18
20
|
return this.toolbar.onAddItemActionComplete(items);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ToolbarCollectionState","require","_TableVirtualState","_LoadingRowState","TableState","constructor","params","_defineProperty2","default","toolbar","retryErrorState","items","onAddItemActionComplete","columnId","forceDirection","collection","sort","id","ToolbarCollectionState","container","componentType","virtual","TableVirtualState","table","loadingRowState","LoadingRowState","visibleColumns","selectedOrderedColumnsOrAll","tableState","itemsContentWidth","itemsContentRect","rect","width","itemsToRenderCount","result","size","init","keyedItems","getStickyColumnsCount","_customColumnsState$d","horizontalScroll","stickyColumns","tableDragAndDropState","customColumnsState","customColumnsProps","customColumnsStateInitialized","stickySelectionColumn","showSelection","customColumnsIsEffective","reorderDisabledColumnsIsEffective","dragAndDrop","orderedColumnsByReorderDisabled","reorderDisabled","length","checkboxColumnStickyCompat","showEmptyState","multi","hasAvailableItems","resultOriginQuerySearch","hasNonPersistentActiveFilters","showErrorState","errorStatus","showLoadingState","initTask","status","isIdle","isLoading","exports"],"sources":["../../../src/state/TableState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { TableVirtualState } from './TableVirtualState';\nimport { DragAndDropState } from '../components/DragAndDrop';\nimport { ICollectionComponentState } from './ICollectionComponentState';\nimport { LoadingRowState } from '../components/LoadingRow/LoadingRowState';\n\nexport interface TableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n}\n\ninterface TableDragAndDropStateBase<T, F extends FiltersMap> {\n getStickyColumnsCount: (params: { stickyColumns: number }) => number;\n init: () => void;\n dnd: DragAndDropState<T, F>;\n}\n\nexport interface TableStateInitParams\n extends ToolbarCollectionStateParamsInitParams {\n hasMultiLevelSorting?: boolean;\n}\n\nexport interface TableStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Underlying [CollectionState](./?path=/story/common-state--collectionstate) instance\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Underlying [ToolbarCollectionState](./?path=/story/common-state--toolbarcollectionstate) instance\n * @external\n */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /**\n * Reset active filters & sorting and adds new items to the collection.\n * @external\n * @param items - new items to add to the collection\n */\n onAddItemActionComplete(items: T[]): void;\n\n /**\n * Visible columns as selected via [CustomColumns](./?path=/story/features-display--customcolumns)\n * @external\n */\n readonly visibleColumns: { id: string }[];\n\n /**\n * Sorts the collection by a specified column and optional sort direction.\n * @external\n */\n sort: (columnId: string, params: { forceDirection?: SortOrder }) => void;\n}\n\nexport class TableState<T, F extends FiltersMap>\n implements ICollectionComponentState, TableStatePublicAPI<T, F>\n{\n readonly toolbar;\n readonly virtual;\n readonly loadingRowState;\n\n tableDragAndDropState: TableDragAndDropStateBase<T, F> | null = null;\n\n constructor(params: TableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'Table',\n });\n\n this.virtual = new TableVirtualState({\n table: this,\n });\n\n this.loadingRowState = new LoadingRowState();\n }\n\n get visibleColumns() {\n return this.toolbar.selectedOrderedColumnsOrAll;\n }\n\n // backwards compat\n get table() {\n return this.toolbar;\n }\n\n get collection() {\n return this.table.collection;\n }\n\n get tableState() {\n return this;\n }\n\n get itemsContentWidth() {\n return this.toolbar.itemsContentRect.rect.width ?? 0;\n }\n\n get itemsToRenderCount() {\n return this.collection.result.size;\n }\n\n init(params: TableStateInitParams) {\n return this.table.init(params);\n }\n\n get keyedItems() {\n return this.collection.result.keyedItems;\n }\n\n getStickyColumnsCount(params: {\n stickyColumns?: number;\n horizontalScroll?: boolean;\n showSelection?: boolean;\n stickySelectionColumn?: boolean;\n }) {\n const { horizontalScroll } = params;\n\n if (!horizontalScroll) {\n return params.stickyColumns;\n }\n\n const { tableDragAndDropState, toolbar } = this;\n\n const {\n customColumnsState,\n customColumnsProps,\n customColumnsStateInitialized,\n } = toolbar;\n\n const { stickySelectionColumn, showSelection } = params;\n\n let stickyColumns = params.stickyColumns ?? 0;\n\n const customColumnsIsEffective =\n customColumnsProps && customColumnsState && customColumnsStateInitialized;\n\n const reorderDisabledColumnsIsEffective =\n !!customColumnsState?.dragAndDrop?.orderedColumnsByReorderDisabled\n .reorderDisabled?.length;\n\n if (customColumnsIsEffective) {\n stickyColumns = customColumnsState.getStickyColumnsCount({\n ...params,\n stickyColumns,\n });\n }\n\n if (tableDragAndDropState) {\n stickyColumns = tableDragAndDropState.getStickyColumnsCount({\n ...params,\n stickyColumns,\n });\n }\n\n const checkboxColumnStickyCompat =\n reorderDisabledColumnsIsEffective ||\n stickySelectionColumn ||\n tableDragAndDropState != null;\n\n if (showSelection && checkboxColumnStickyCompat) {\n stickyColumns += 1;\n }\n\n return stickyColumns;\n }\n\n get showEmptyState() {\n return this.toolbar.multi.showEmptyState;\n }\n\n get hasAvailableItems() {\n return this.toolbar.multi.hasAvailableItems;\n }\n\n get resultOriginQuerySearch() {\n return this.toolbar.multi.resultOriginQuerySearch;\n }\n\n get hasNonPersistentActiveFilters() {\n return this.toolbar.multi.hasNonPersistentActiveFilters;\n }\n\n get showErrorState() {\n return this.toolbar.multi.showErrorState;\n }\n\n get errorStatus() {\n return this.toolbar.multi.errorStatus;\n }\n\n get showLoadingState() {\n const { initTask, toolbar } = this;\n return (\n initTask.status.isIdle ||\n initTask.status.isLoading ||\n toolbar.multi.showLoadingState\n );\n }\n\n get initTask() {\n return this.toolbar.initTask;\n }\n\n retryErrorState = () => this.toolbar.retryErrorState();\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n sort = (\n columnId: string,\n { forceDirection }: { forceDirection?: SortOrder } = {},\n ) => {\n this.collection.sort({ id: columnId }, { forceDirection });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_ToolbarCollectionState","require","_TableVirtualState","_LoadingRowState","TableState","constructor","params","_defineProperty2","default","toolbar","retryErrorState","items","onAddItemActionComplete","columnId","forceDirection","collection","sort","id","ToolbarCollectionState","container","componentType","virtual","TableVirtualState","table","loadingRowState","LoadingRowState","visibleColumns","selectedOrderedColumnsOrAll","tableState","itemsContentWidth","itemsContentRect","rect","width","itemsToRenderCount","result","size","init","keyedItems","getStickyColumnsCount","_customColumnsState$d","horizontalScroll","stickyColumns","tableDragAndDropState","customColumnsState","customColumnsProps","customColumnsStateInitialized","stickySelectionColumn","showSelection","customColumnsIsEffective","reorderDisabledColumnsIsEffective","dragAndDrop","orderedColumnsByReorderDisabled","reorderDisabled","length","checkboxColumnStickyCompat","showEmptyState","multi","hasAvailableItems","resultOriginQuerySearch","hasNonPersistentActiveFilters","showErrorState","errorStatus","showLoadingState","initTask","status","isIdle","isLoading","exports"],"sources":["../../../src/state/TableState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SortOrder,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { TableVirtualState } from './TableVirtualState';\nimport { DragAndDropState } from '../components/DragAndDrop';\nimport { ICollectionComponentState } from './ICollectionComponentState';\nimport { LoadingRowState } from '../components/LoadingRow/LoadingRowState';\n\nexport interface TableStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n}\n\ninterface TableDragAndDropStateBase<T, F extends FiltersMap> {\n getStickyColumnsCount: (params: { stickyColumns: number }) => number;\n init: () => void;\n dnd: DragAndDropState<T, F>;\n}\n\nexport interface TableStateInitParams\n extends ToolbarCollectionStateParamsInitParams {\n hasMultiLevelSorting?: boolean;\n}\n\nexport interface TableStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Underlying [CollectionState](./?path=/story/common-state--collectionstate) instance\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Underlying [ToolbarCollectionState](./?path=/story/common-state--toolbarcollectionstate) instance\n * @external\n */\n readonly toolbar: ToolbarCollectionState<T, F>;\n /**\n * Reset active filters & sorting and adds new items to the collection.\n * @external\n * @param items - new items to add to the collection\n */\n onAddItemActionComplete(items: T[]): void;\n\n /**\n * Visible columns as selected via [CustomColumns](./?path=/story/features-display--customcolumns)\n * @external\n */\n readonly visibleColumns: { id: string }[];\n\n /**\n * Sorts the collection by a specified column and optional sort direction.\n * @external\n */\n sort: (columnId: string, params: { forceDirection?: SortOrder }) => void;\n}\n\nexport class TableState<T, F extends FiltersMap>\n implements ICollectionComponentState, TableStatePublicAPI<T, F>\n{\n readonly toolbar;\n readonly virtual;\n readonly loadingRowState;\n\n tableDragAndDropState: TableDragAndDropStateBase<T, F> | null = null;\n\n /** The sticky table header element (column headers row) */\n headerElement: HTMLElement | null = null;\n\n constructor(params: TableStateParams<T, F>) {\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'Table',\n });\n\n this.virtual = new TableVirtualState({\n table: this,\n });\n\n this.loadingRowState = new LoadingRowState();\n }\n\n get visibleColumns() {\n return this.toolbar.selectedOrderedColumnsOrAll;\n }\n\n // backwards compat\n get table() {\n return this.toolbar;\n }\n\n get collection() {\n return this.table.collection;\n }\n\n get tableState() {\n return this;\n }\n\n get itemsContentWidth() {\n return this.toolbar.itemsContentRect.rect.width ?? 0;\n }\n\n get itemsToRenderCount() {\n return this.collection.result.size;\n }\n\n init(params: TableStateInitParams) {\n return this.table.init(params);\n }\n\n get keyedItems() {\n return this.collection.result.keyedItems;\n }\n\n getStickyColumnsCount(params: {\n stickyColumns?: number;\n horizontalScroll?: boolean;\n showSelection?: boolean;\n stickySelectionColumn?: boolean;\n }) {\n const { horizontalScroll } = params;\n\n if (!horizontalScroll) {\n return params.stickyColumns;\n }\n\n const { tableDragAndDropState, toolbar } = this;\n\n const {\n customColumnsState,\n customColumnsProps,\n customColumnsStateInitialized,\n } = toolbar;\n\n const { stickySelectionColumn, showSelection } = params;\n\n let stickyColumns = params.stickyColumns ?? 0;\n\n const customColumnsIsEffective =\n customColumnsProps && customColumnsState && customColumnsStateInitialized;\n\n const reorderDisabledColumnsIsEffective =\n !!customColumnsState?.dragAndDrop?.orderedColumnsByReorderDisabled\n .reorderDisabled?.length;\n\n if (customColumnsIsEffective) {\n stickyColumns = customColumnsState.getStickyColumnsCount({\n ...params,\n stickyColumns,\n });\n }\n\n if (tableDragAndDropState) {\n stickyColumns = tableDragAndDropState.getStickyColumnsCount({\n ...params,\n stickyColumns,\n });\n }\n\n const checkboxColumnStickyCompat =\n reorderDisabledColumnsIsEffective ||\n stickySelectionColumn ||\n tableDragAndDropState != null;\n\n if (showSelection && checkboxColumnStickyCompat) {\n stickyColumns += 1;\n }\n\n return stickyColumns;\n }\n\n get showEmptyState() {\n return this.toolbar.multi.showEmptyState;\n }\n\n get hasAvailableItems() {\n return this.toolbar.multi.hasAvailableItems;\n }\n\n get resultOriginQuerySearch() {\n return this.toolbar.multi.resultOriginQuerySearch;\n }\n\n get hasNonPersistentActiveFilters() {\n return this.toolbar.multi.hasNonPersistentActiveFilters;\n }\n\n get showErrorState() {\n return this.toolbar.multi.showErrorState;\n }\n\n get errorStatus() {\n return this.toolbar.multi.errorStatus;\n }\n\n get showLoadingState() {\n const { initTask, toolbar } = this;\n return (\n initTask.status.isIdle ||\n initTask.status.isLoading ||\n toolbar.multi.showLoadingState\n );\n }\n\n get initTask() {\n return this.toolbar.initTask;\n }\n\n retryErrorState = () => this.toolbar.retryErrorState();\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n sort = (\n columnId: string,\n { forceDirection }: { forceDirection?: SortOrder } = {},\n ) => {\n this.collection.sort({ id: columnId }, { forceDirection });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,8 +23,13 @@ class ToolbarResponsiveState {
|
|
|
23
23
|
(0, _defineProperty2.default)(this, "search", void 0);
|
|
24
24
|
(0, _defineProperty2.default)(this, "filters", void 0);
|
|
25
25
|
(0, _defineProperty2.default)(this, "_groups", void 0);
|
|
26
|
+
(0, _defineProperty2.default)(this, "_shouldOverflow", false);
|
|
26
27
|
(0, _defineProperty2.default)(this, "_measurementElement", null);
|
|
27
28
|
(0, _defineProperty2.default)(this, "_contentElement", null);
|
|
29
|
+
// Width of non-group content that is removed from the DOM during overflow
|
|
30
|
+
// (e.g., tableGridSwitchButton). Must be accounted for in the exit-overflow
|
|
31
|
+
// calculation to prevent flicker.
|
|
32
|
+
(0, _defineProperty2.default)(this, "_overflowHiddenContentWidth", 0);
|
|
28
33
|
(0, _defineProperty2.default)(this, "toolbar", void 0);
|
|
29
34
|
(0, _defineProperty2.default)(this, "leftGroupState", null);
|
|
30
35
|
(0, _defineProperty2.default)(this, "_recomputeThrottled", void 0);
|
|
@@ -43,6 +48,8 @@ class ToolbarResponsiveState {
|
|
|
43
48
|
});
|
|
44
49
|
this._groups = [this.actions, this.filters, this.search];
|
|
45
50
|
(0, _mobx.makeObservable)(this, {
|
|
51
|
+
_shouldOverflow: _mobx.observable.ref,
|
|
52
|
+
_overflowHiddenContentWidth: _mobx.observable.ref,
|
|
46
53
|
responsiveDisabled: _mobx.computed,
|
|
47
54
|
_applyTargetState: _mobx.action
|
|
48
55
|
});
|
|
@@ -86,12 +93,34 @@ class ToolbarResponsiveState {
|
|
|
86
93
|
collapsedWidth: g.collapsedWidth,
|
|
87
94
|
currentlyShrunk: g._shouldShrink
|
|
88
95
|
}));
|
|
89
|
-
|
|
96
|
+
|
|
97
|
+
// When overflowing, the overflowable groups are removed from the DOM and
|
|
98
|
+
// replaced by the overflow button. Compute groupsTotal to reflect what the
|
|
99
|
+
// algorithm expects (all groups at their current widths) so that
|
|
100
|
+
// availableWidth = containerWidth - nonGroupContent is accurate.
|
|
101
|
+
let groupsTotal;
|
|
102
|
+
if (this._shouldOverflow) {
|
|
103
|
+
// contentWidth includes the overflow button but not the overflowable groups.
|
|
104
|
+
// groupsTotal must match: only non-overflowed groups + overflow button.
|
|
105
|
+
const overflowableIndices = ToolbarResponsiveState._overflowableGroupIndices;
|
|
106
|
+
const nonOverflowedTotal = groups.reduce((sum, g, i) => overflowableIndices.includes(i) ? sum : sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth), 0);
|
|
107
|
+
groupsTotal = nonOverflowedTotal + _toolbarResponsiveConstants.OVERFLOW_BUTTON_WIDTH;
|
|
108
|
+
} else {
|
|
109
|
+
groupsTotal = groups.reduce((sum, g) => sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth), 0);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// nonGroupContent that is hidden during overflow but would reappear on exit.
|
|
113
|
+
// Must be added back so the algorithm doesn't overestimate available space.
|
|
114
|
+
const hiddenContentAdjustment = this._shouldOverflow ? this._overflowHiddenContentWidth : 0;
|
|
90
115
|
return {
|
|
91
|
-
availableWidth: containerWidth - (contentWidth - groupsTotal),
|
|
116
|
+
availableWidth: containerWidth - (contentWidth - groupsTotal) - hiddenContentAdjustment,
|
|
92
117
|
groups
|
|
93
118
|
};
|
|
94
119
|
}
|
|
120
|
+
|
|
121
|
+
// Indices of groups that can be absorbed into the overflow menu.
|
|
122
|
+
// actions = 0, filters = 1 (search = 2 stays visible).
|
|
123
|
+
|
|
95
124
|
_applyTargetState() {
|
|
96
125
|
const input = this._computeResponsiveInput();
|
|
97
126
|
if (!input) {
|
|
@@ -99,11 +128,15 @@ class ToolbarResponsiveState {
|
|
|
99
128
|
}
|
|
100
129
|
const result = (0, _computeResponsiveTargetState.computeResponsiveTargetState)({
|
|
101
130
|
...input,
|
|
102
|
-
expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER
|
|
131
|
+
expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER,
|
|
132
|
+
currentlyOverflowing: this._shouldOverflow,
|
|
133
|
+
overflowButtonWidth: _toolbarResponsiveConstants.OVERFLOW_BUTTON_WIDTH,
|
|
134
|
+
overflowableGroupIndices: ToolbarResponsiveState._overflowableGroupIndices
|
|
103
135
|
});
|
|
104
136
|
this._groups.forEach((g, i) => {
|
|
105
|
-
g._shouldShrink = result[i].shouldShrink;
|
|
137
|
+
g._shouldShrink = result.groups[i].shouldShrink;
|
|
106
138
|
});
|
|
139
|
+
this._shouldOverflow = result.shouldOverflow;
|
|
107
140
|
}
|
|
108
141
|
init() {
|
|
109
142
|
const {
|
|
@@ -134,4 +167,5 @@ class ToolbarResponsiveState {
|
|
|
134
167
|
}
|
|
135
168
|
}
|
|
136
169
|
exports.ToolbarResponsiveState = ToolbarResponsiveState;
|
|
170
|
+
(0, _defineProperty2.default)(ToolbarResponsiveState, "_overflowableGroupIndices", [0, 1]);
|
|
137
171
|
//# sourceMappingURL=ToolbarResponsiveState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_ToolbarResponsivePriorityState","_computeResponsiveTargetState","_toolbarResponsiveConstants","EXPAND_THRESHOLD_BUFFER","ToolbarResponsiveState","container","toolbar","constructor","params","_defineProperty2","default","actions","ToolbarResponsivePriorityState","responsive","filters","search","expandedWidth","SEARCH_EXPANDED_WIDTH","collapsedWidth","SEARCH_COLLAPSED_WIDTH","_groups","makeObservable","responsiveDisabled","computed","_applyTargetState","action","_syncedProps","internalExperiments","useResponsiveLayout","enabled","_scheduleRecompute","_this$_recomputeThrot","_recomputeThrottled","call","_computeResponsiveInput","_this$leftGroupState","el","_measurementElement","contentEl","_contentElement","leftGroupExcess","leftGroupState","getExcessWidth","containerWidth","clientWidth","contentWidth","scrollWidth","groups","map","g","currentlyShrunk","_shouldShrink","groupsTotal","reduce","sum","availableWidth","input","result","computeResponsiveTargetState","expandThresholdBuffer","forEach","i","shouldShrink","init","lodash","throttle","_rafId","window","requestAnimationFrame","runInAction","containerEl","toolbarRect","element","_this$_recomputeThrot2","cancel","disposers","addResizeObserver","_this$_recomputeThrot3","d","cancelAnimationFrame","exports"],"sources":["../../../../src/state/Toolbar/ToolbarResponsiveState.ts"],"sourcesContent":["import { addResizeObserver } from '@wix/bex-core';\nimport { action, computed, makeObservable, runInAction } from 'mobx';\nimport { ToolbarResponsivePriorityState } from './ToolbarResponsivePriorityState';\nimport { ToolbarState } from '../../components/CollectionToolbars/ToolbarState';\nimport { ToolbarLeftGroupState } from './ToolbarLeftGroupState';\nimport { computeResponsiveTargetState } from './computeResponsiveTargetState';\nimport {\n SEARCH_COLLAPSED_WIDTH,\n SEARCH_EXPANDED_WIDTH,\n} from './toolbarResponsiveConstants';\n\nexport interface ToolbarResponsiveStateParams {\n readonly toolbar: ToolbarState<any, any>;\n}\n\n// Buffer (in px) added to the expand threshold to prevent flickering near the\n// expand/collapse boundary. Tuned to ~2-3x the inter-element gap (SP2 = 12px) --\n// large enough to absorb measurement rounding and flex reflow, small enough that\n// the dead zone per group isn't visually noticeable during gradual resizing.\nconst EXPAND_THRESHOLD_BUFFER = 30;\n\nexport class ToolbarResponsiveState {\n readonly actions: ToolbarResponsivePriorityState;\n readonly search: ToolbarResponsivePriorityState;\n readonly filters: ToolbarResponsivePriorityState;\n\n private readonly _groups: ToolbarResponsivePriorityState[];\n\n _measurementElement: Element | null = null;\n _contentElement: Element | null = null;\n\n readonly toolbar: ToolbarState<any, any>;\n\n leftGroupState: ToolbarLeftGroupState<any, any> | null = null;\n\n get container() {\n return this.toolbar.toolbar.container;\n }\n\n constructor(params: ToolbarResponsiveStateParams) {\n this.toolbar = params.toolbar;\n\n this.actions = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.filters = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.search = new ToolbarResponsivePriorityState({\n responsive: this,\n expandedWidth: SEARCH_EXPANDED_WIDTH,\n collapsedWidth: SEARCH_COLLAPSED_WIDTH,\n });\n\n this._groups = [this.actions, this.filters, this.search];\n\n makeObservable(this, {\n responsiveDisabled: computed,\n _applyTargetState: action,\n });\n }\n\n get responsiveDisabled() {\n const {\n toolbar: {\n toolbar: { _syncedProps },\n },\n container: { internalExperiments },\n } = this;\n\n return (\n !_syncedProps?.useResponsiveLayout ||\n !internalExperiments?.enabled('specs.cairo.EnableResponsiveToolbar11420')\n );\n }\n\n _scheduleRecompute() {\n if (this.responsiveDisabled) {\n return;\n }\n this._recomputeThrottled?.();\n }\n\n private _computeResponsiveInput() {\n const el = this._measurementElement;\n const contentEl = this._contentElement;\n if (!el || !contentEl) {\n return null;\n }\n\n // The left group (title/tabs/views) has flex:1 and absorbs freed space when\n // right-side items shrink. Account for its excess width so the algorithm sees\n // the true available space and can expand items back when the container grows.\n const leftGroupExcess = this.leftGroupState?.getExcessWidth() ?? 0;\n const containerWidth = el.clientWidth + leftGroupExcess;\n const contentWidth = contentEl.scrollWidth;\n\n const groups = this._groups.map((g) => ({\n expandedWidth: g.expandedWidth,\n collapsedWidth: g.collapsedWidth,\n currentlyShrunk: g._shouldShrink,\n }));\n\n const groupsTotal = groups.reduce(\n (sum, g) => sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n\n return {\n availableWidth: containerWidth - (contentWidth - groupsTotal),\n groups,\n };\n }\n\n _applyTargetState() {\n const input = this._computeResponsiveInput();\n if (!input) {\n return;\n }\n\n const result = computeResponsiveTargetState({\n ...input,\n expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER,\n });\n\n this._groups.forEach((g, i) => {\n g._shouldShrink = result[i].shouldShrink;\n });\n }\n\n private _recomputeThrottled?: ReturnType<typeof this.container.lodash.throttle>;\n private _rafId = 0;\n\n init() {\n const { responsiveDisabled } = this;\n\n if (responsiveDisabled) {\n return () => {};\n }\n\n this._recomputeThrottled = this.container.lodash.throttle(() => {\n this._rafId = window.requestAnimationFrame(() => {\n runInAction(() => this._applyTargetState());\n });\n }, 200);\n\n const containerEl =\n this.toolbar.toolbar.toolbarRect.element;\n if (!containerEl) {\n return () => {\n this._recomputeThrottled?.cancel();\n };\n }\n\n const disposers = [\n addResizeObserver(containerEl, this._recomputeThrottled),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n this._recomputeThrottled?.cancel();\n cancelAnimationFrame(this._rafId);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_ToolbarResponsivePriorityState","_computeResponsiveTargetState","_toolbarResponsiveConstants","EXPAND_THRESHOLD_BUFFER","ToolbarResponsiveState","container","toolbar","constructor","params","_defineProperty2","default","actions","ToolbarResponsivePriorityState","responsive","filters","search","expandedWidth","SEARCH_EXPANDED_WIDTH","collapsedWidth","SEARCH_COLLAPSED_WIDTH","_groups","makeObservable","_shouldOverflow","observable","ref","_overflowHiddenContentWidth","responsiveDisabled","computed","_applyTargetState","action","_syncedProps","internalExperiments","useResponsiveLayout","enabled","_scheduleRecompute","_this$_recomputeThrot","_recomputeThrottled","call","_computeResponsiveInput","_this$leftGroupState","el","_measurementElement","contentEl","_contentElement","leftGroupExcess","leftGroupState","getExcessWidth","containerWidth","clientWidth","contentWidth","scrollWidth","groups","map","g","currentlyShrunk","_shouldShrink","groupsTotal","overflowableIndices","_overflowableGroupIndices","nonOverflowedTotal","reduce","sum","i","includes","OVERFLOW_BUTTON_WIDTH","hiddenContentAdjustment","availableWidth","input","result","computeResponsiveTargetState","expandThresholdBuffer","currentlyOverflowing","overflowButtonWidth","overflowableGroupIndices","forEach","shouldShrink","shouldOverflow","init","lodash","throttle","_rafId","window","requestAnimationFrame","runInAction","containerEl","toolbarRect","element","_this$_recomputeThrot2","cancel","disposers","addResizeObserver","_this$_recomputeThrot3","d","cancelAnimationFrame","exports"],"sources":["../../../../src/state/Toolbar/ToolbarResponsiveState.ts"],"sourcesContent":["import { addResizeObserver } from '@wix/bex-core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { ToolbarResponsivePriorityState } from './ToolbarResponsivePriorityState';\nimport { ToolbarState } from '../../components/CollectionToolbars/ToolbarState';\nimport { ToolbarLeftGroupState } from './ToolbarLeftGroupState';\nimport { computeResponsiveTargetState } from './computeResponsiveTargetState';\nimport {\n OVERFLOW_BUTTON_WIDTH,\n SEARCH_COLLAPSED_WIDTH,\n SEARCH_EXPANDED_WIDTH,\n} from './toolbarResponsiveConstants';\n\nexport interface ToolbarResponsiveStateParams {\n readonly toolbar: ToolbarState<any, any>;\n}\n\n// Buffer (in px) added to the expand threshold to prevent flickering near the\n// expand/collapse boundary. Tuned to ~2-3x the inter-element gap (SP2 = 12px) --\n// large enough to absorb measurement rounding and flex reflow, small enough that\n// the dead zone per group isn't visually noticeable during gradual resizing.\nconst EXPAND_THRESHOLD_BUFFER = 30;\n\nexport class ToolbarResponsiveState {\n readonly actions: ToolbarResponsivePriorityState;\n readonly search: ToolbarResponsivePriorityState;\n readonly filters: ToolbarResponsivePriorityState;\n\n private readonly _groups: ToolbarResponsivePriorityState[];\n\n _shouldOverflow = false;\n\n _measurementElement: Element | null = null;\n _contentElement: Element | null = null;\n\n // Width of non-group content that is removed from the DOM during overflow\n // (e.g., tableGridSwitchButton). Must be accounted for in the exit-overflow\n // calculation to prevent flicker.\n _overflowHiddenContentWidth = 0;\n\n readonly toolbar: ToolbarState<any, any>;\n\n leftGroupState: ToolbarLeftGroupState<any, any> | null = null;\n\n get container() {\n return this.toolbar.toolbar.container;\n }\n\n constructor(params: ToolbarResponsiveStateParams) {\n this.toolbar = params.toolbar;\n\n this.actions = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.filters = new ToolbarResponsivePriorityState({\n responsive: this,\n });\n\n this.search = new ToolbarResponsivePriorityState({\n responsive: this,\n expandedWidth: SEARCH_EXPANDED_WIDTH,\n collapsedWidth: SEARCH_COLLAPSED_WIDTH,\n });\n\n this._groups = [this.actions, this.filters, this.search];\n\n makeObservable(this, {\n _shouldOverflow: observable.ref,\n _overflowHiddenContentWidth: observable.ref,\n responsiveDisabled: computed,\n _applyTargetState: action,\n });\n }\n\n get responsiveDisabled() {\n const {\n toolbar: {\n toolbar: { _syncedProps },\n },\n container: { internalExperiments },\n } = this;\n\n return (\n !_syncedProps?.useResponsiveLayout ||\n !internalExperiments?.enabled('specs.cairo.EnableResponsiveToolbar11420')\n );\n }\n\n _scheduleRecompute() {\n if (this.responsiveDisabled) {\n return;\n }\n this._recomputeThrottled?.();\n }\n\n private _computeResponsiveInput() {\n const el = this._measurementElement;\n const contentEl = this._contentElement;\n if (!el || !contentEl) {\n return null;\n }\n\n // The left group (title/tabs/views) has flex:1 and absorbs freed space when\n // right-side items shrink. Account for its excess width so the algorithm sees\n // the true available space and can expand items back when the container grows.\n const leftGroupExcess = this.leftGroupState?.getExcessWidth() ?? 0;\n const containerWidth = el.clientWidth + leftGroupExcess;\n const contentWidth = contentEl.scrollWidth;\n\n const groups = this._groups.map((g) => ({\n expandedWidth: g.expandedWidth,\n collapsedWidth: g.collapsedWidth,\n currentlyShrunk: g._shouldShrink,\n }));\n\n // When overflowing, the overflowable groups are removed from the DOM and\n // replaced by the overflow button. Compute groupsTotal to reflect what the\n // algorithm expects (all groups at their current widths) so that\n // availableWidth = containerWidth - nonGroupContent is accurate.\n let groupsTotal: number;\n if (this._shouldOverflow) {\n // contentWidth includes the overflow button but not the overflowable groups.\n // groupsTotal must match: only non-overflowed groups + overflow button.\n const overflowableIndices =\n ToolbarResponsiveState._overflowableGroupIndices;\n const nonOverflowedTotal = groups.reduce(\n (sum, g, i) =>\n overflowableIndices.includes(i)\n ? sum\n : sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n groupsTotal = nonOverflowedTotal + OVERFLOW_BUTTON_WIDTH;\n } else {\n groupsTotal = groups.reduce(\n (sum, g) =>\n sum + (g.currentlyShrunk ? g.collapsedWidth : g.expandedWidth),\n 0,\n );\n }\n\n // nonGroupContent that is hidden during overflow but would reappear on exit.\n // Must be added back so the algorithm doesn't overestimate available space.\n const hiddenContentAdjustment = this._shouldOverflow\n ? this._overflowHiddenContentWidth\n : 0;\n\n return {\n availableWidth:\n containerWidth - (contentWidth - groupsTotal) - hiddenContentAdjustment,\n groups,\n };\n }\n\n // Indices of groups that can be absorbed into the overflow menu.\n // actions = 0, filters = 1 (search = 2 stays visible).\n private static readonly _overflowableGroupIndices = [0, 1];\n\n _applyTargetState() {\n const input = this._computeResponsiveInput();\n if (!input) {\n return;\n }\n\n const result = computeResponsiveTargetState({\n ...input,\n expandThresholdBuffer: EXPAND_THRESHOLD_BUFFER,\n currentlyOverflowing: this._shouldOverflow,\n overflowButtonWidth: OVERFLOW_BUTTON_WIDTH,\n overflowableGroupIndices:\n ToolbarResponsiveState._overflowableGroupIndices,\n });\n\n this._groups.forEach((g, i) => {\n g._shouldShrink = result.groups[i].shouldShrink;\n });\n this._shouldOverflow = result.shouldOverflow;\n }\n\n private _recomputeThrottled?: ReturnType<\n typeof this.container.lodash.throttle\n >;\n private _rafId = 0;\n\n init() {\n const { responsiveDisabled } = this;\n\n if (responsiveDisabled) {\n return () => {};\n }\n\n this._recomputeThrottled = this.container.lodash.throttle(() => {\n this._rafId = window.requestAnimationFrame(() => {\n runInAction(() => this._applyTargetState());\n });\n }, 200);\n\n const containerEl = this.toolbar.toolbar.toolbarRect.element;\n if (!containerEl) {\n return () => {\n this._recomputeThrottled?.cancel();\n };\n }\n\n const disposers = [\n addResizeObserver(containerEl, this._recomputeThrottled),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n this._recomputeThrottled?.cancel();\n cancelAnimationFrame(this._rafId);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,16 +6,24 @@ function computeResponsiveTargetState(params) {
|
|
|
6
6
|
const {
|
|
7
7
|
availableWidth,
|
|
8
8
|
groups,
|
|
9
|
-
expandThresholdBuffer
|
|
9
|
+
expandThresholdBuffer,
|
|
10
|
+
currentlyOverflowing = false,
|
|
11
|
+
overflowButtonWidth = 0,
|
|
12
|
+
overflowableGroupIndices = []
|
|
10
13
|
} = params;
|
|
11
14
|
if (groups.length === 0) {
|
|
12
|
-
return
|
|
15
|
+
return {
|
|
16
|
+
groups: [],
|
|
17
|
+
shouldOverflow: false
|
|
18
|
+
};
|
|
13
19
|
}
|
|
14
20
|
const result = groups.map(g => ({
|
|
15
21
|
shouldShrink: g.currentlyShrunk
|
|
16
22
|
}));
|
|
17
23
|
const widthOf = (group, index) => result[index].shouldShrink ? group.collapsedWidth : group.expandedWidth;
|
|
18
24
|
let total = groups.reduce((sum, g, i) => sum + widthOf(g, i), 0);
|
|
25
|
+
|
|
26
|
+
// Shrink pass
|
|
19
27
|
for (let i = 0; i < groups.length; i++) {
|
|
20
28
|
if (total <= availableWidth) {
|
|
21
29
|
break;
|
|
@@ -26,23 +34,54 @@ function computeResponsiveTargetState(params) {
|
|
|
26
34
|
total -= savings;
|
|
27
35
|
}
|
|
28
36
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
|
|
38
|
+
// Overflow detection: the "More" button is the step AFTER all groups have
|
|
39
|
+
// shrunk to their collapsed widths and it still doesn't fit.
|
|
40
|
+
// Flow: actions shrink → filters shrink → search shrinks → overflow.
|
|
41
|
+
const allShrunk = result.every(r => r.shouldShrink);
|
|
42
|
+
const hasOverflowConfig = overflowableGroupIndices.length > 0 && overflowButtonWidth > 0;
|
|
43
|
+
let shouldOverflow = false;
|
|
44
|
+
if (hasOverflowConfig && allShrunk && total > availableWidth) {
|
|
45
|
+
shouldOverflow = true;
|
|
46
|
+
} else if (hasOverflowConfig && currentlyOverflowing) {
|
|
47
|
+
// Hysteresis: stay in overflow until collapsed total + buffer fits,
|
|
48
|
+
// preventing flicker at the boundary.
|
|
49
|
+
const collapsedTotal = groups.reduce((sum, g) => sum + g.collapsedWidth, 0);
|
|
50
|
+
if (collapsedTotal + expandThresholdBuffer > availableWidth) {
|
|
51
|
+
shouldOverflow = true;
|
|
36
52
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
}
|
|
54
|
+
if (shouldOverflow) {
|
|
55
|
+
// Replace overflowable groups' widths with the single overflow button width
|
|
56
|
+
const overflowableTotal = overflowableGroupIndices.reduce((sum, idx) => sum + groups[idx].collapsedWidth, 0);
|
|
57
|
+
total = total - overflowableTotal + overflowButtonWidth;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Expand pass — skip entirely while in overflow; everything stays collapsed
|
|
61
|
+
// until the container is wide enough to exit overflow, then groups expand
|
|
62
|
+
// in priority order (search last).
|
|
63
|
+
if (!shouldOverflow) {
|
|
64
|
+
for (let i = groups.length - 1; i >= 0; i--) {
|
|
65
|
+
if (!result[i].shouldShrink) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const expandCost = groups[i].expandedWidth - groups[i].collapsedWidth;
|
|
69
|
+
if (expandCost === 0) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (total + expandCost + expandThresholdBuffer <= availableWidth) {
|
|
73
|
+
result[i].shouldShrink = false;
|
|
74
|
+
total += expandCost;
|
|
75
|
+
} else {
|
|
76
|
+
// Strict priority: if a higher-priority group (lower index) cannot expand,
|
|
77
|
+
// no lower-priority groups should expand either to avoid visual inconsistency.
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
44
80
|
}
|
|
45
81
|
}
|
|
46
|
-
return
|
|
82
|
+
return {
|
|
83
|
+
groups: result,
|
|
84
|
+
shouldOverflow
|
|
85
|
+
};
|
|
47
86
|
}
|
|
48
87
|
//# sourceMappingURL=computeResponsiveTargetState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["computeResponsiveTargetState","params","availableWidth","groups","expandThresholdBuffer","length","result","map","g","shouldShrink","currentlyShrunk","widthOf","group","index","collapsedWidth","expandedWidth","total","reduce","sum","i","savings","expandCost"],"sources":["../../../../src/state/Toolbar/computeResponsiveTargetState.ts"],"sourcesContent":["export interface ResponsiveGroupInput {\n expandedWidth: number;\n collapsedWidth: number;\n currentlyShrunk: boolean;\n}\n\nexport interface ComputeResponsiveTargetStateParams {\n availableWidth: number;\n groups: ResponsiveGroupInput[];\n expandThresholdBuffer: number;\n}\n\nexport interface ResponsiveGroupOutput {\n shouldShrink: boolean;\n}\n\nexport function computeResponsiveTargetState(\n params: ComputeResponsiveTargetStateParams,\n):
|
|
1
|
+
{"version":3,"names":["computeResponsiveTargetState","params","availableWidth","groups","expandThresholdBuffer","currentlyOverflowing","overflowButtonWidth","overflowableGroupIndices","length","shouldOverflow","result","map","g","shouldShrink","currentlyShrunk","widthOf","group","index","collapsedWidth","expandedWidth","total","reduce","sum","i","savings","allShrunk","every","r","hasOverflowConfig","collapsedTotal","overflowableTotal","idx","expandCost"],"sources":["../../../../src/state/Toolbar/computeResponsiveTargetState.ts"],"sourcesContent":["export interface ResponsiveGroupInput {\n expandedWidth: number;\n collapsedWidth: number;\n currentlyShrunk: boolean;\n}\n\nexport interface ComputeResponsiveTargetStateParams {\n availableWidth: number;\n groups: ResponsiveGroupInput[];\n expandThresholdBuffer: number;\n currentlyOverflowing?: boolean;\n overflowButtonWidth?: number;\n overflowableGroupIndices?: number[];\n}\n\nexport interface ResponsiveGroupOutput {\n shouldShrink: boolean;\n}\n\nexport interface ComputeResponsiveTargetStateResult {\n groups: ResponsiveGroupOutput[];\n shouldOverflow: boolean;\n}\n\nexport function computeResponsiveTargetState(\n params: ComputeResponsiveTargetStateParams,\n): ComputeResponsiveTargetStateResult {\n const {\n availableWidth,\n groups,\n expandThresholdBuffer,\n currentlyOverflowing = false,\n overflowButtonWidth = 0,\n overflowableGroupIndices = [],\n } = params;\n\n if (groups.length === 0) {\n return { groups: [], shouldOverflow: false };\n }\n\n const result: ResponsiveGroupOutput[] = groups.map((g) => ({\n shouldShrink: g.currentlyShrunk,\n }));\n\n const widthOf = (group: ResponsiveGroupInput, index: number) =>\n result[index].shouldShrink ? group.collapsedWidth : group.expandedWidth;\n\n let total = groups.reduce((sum, g, i) => sum + widthOf(g, i), 0);\n\n // Shrink pass\n for (let i = 0; i < groups.length; i++) {\n if (total <= availableWidth) {\n break;\n }\n if (!result[i].shouldShrink) {\n const savings = groups[i].expandedWidth - groups[i].collapsedWidth;\n result[i].shouldShrink = true;\n total -= savings;\n }\n }\n\n // Overflow detection: the \"More\" button is the step AFTER all groups have\n // shrunk to their collapsed widths and it still doesn't fit.\n // Flow: actions shrink → filters shrink → search shrinks → overflow.\n const allShrunk = result.every((r) => r.shouldShrink);\n const hasOverflowConfig =\n overflowableGroupIndices.length > 0 && overflowButtonWidth > 0;\n\n let shouldOverflow = false;\n\n if (hasOverflowConfig && allShrunk && total > availableWidth) {\n shouldOverflow = true;\n } else if (hasOverflowConfig && currentlyOverflowing) {\n // Hysteresis: stay in overflow until collapsed total + buffer fits,\n // preventing flicker at the boundary.\n const collapsedTotal = groups.reduce((sum, g) => sum + g.collapsedWidth, 0);\n if (collapsedTotal + expandThresholdBuffer > availableWidth) {\n shouldOverflow = true;\n }\n }\n\n if (shouldOverflow) {\n // Replace overflowable groups' widths with the single overflow button width\n const overflowableTotal = overflowableGroupIndices.reduce(\n (sum, idx) => sum + groups[idx].collapsedWidth,\n 0,\n );\n total = total - overflowableTotal + overflowButtonWidth;\n }\n\n // Expand pass — skip entirely while in overflow; everything stays collapsed\n // until the container is wide enough to exit overflow, then groups expand\n // in priority order (search last).\n if (!shouldOverflow) {\n for (let i = groups.length - 1; i >= 0; i--) {\n if (!result[i].shouldShrink) {\n continue;\n }\n\n const expandCost = groups[i].expandedWidth - groups[i].collapsedWidth;\n if (expandCost === 0) {\n continue;\n }\n\n if (total + expandCost + expandThresholdBuffer <= availableWidth) {\n result[i].shouldShrink = false;\n total += expandCost;\n } else {\n // Strict priority: if a higher-priority group (lower index) cannot expand,\n // no lower-priority groups should expand either to avoid visual inconsistency.\n break;\n }\n }\n }\n\n return { groups: result, shouldOverflow };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.SEARCH_EXPANDED_WIDTH = exports.SEARCH_COLLAPSED_WIDTH = void 0;
|
|
4
|
+
exports.SEARCH_EXPANDED_WIDTH = exports.SEARCH_COLLAPSED_WIDTH = exports.OVERFLOW_BUTTON_WIDTH = exports.LAYOUT_SWITCH_BUTTON_WIDTH = void 0;
|
|
5
5
|
const SEARCH_EXPANDED_WIDTH = exports.SEARCH_EXPANDED_WIDTH = 240;
|
|
6
6
|
const SEARCH_COLLAPSED_WIDTH = exports.SEARCH_COLLAPSED_WIDTH = 140;
|
|
7
|
+
const OVERFLOW_BUTTON_WIDTH = exports.OVERFLOW_BUTTON_WIDTH = 36;
|
|
8
|
+
// Width of the layout switch IconButton (size="small") + SP2 gap (12px).
|
|
9
|
+
// Used to account for hidden content during overflow exit calculation.
|
|
10
|
+
const LAYOUT_SWITCH_BUTTON_WIDTH = exports.LAYOUT_SWITCH_BUTTON_WIDTH = 48;
|
|
7
11
|
//# sourceMappingURL=toolbarResponsiveConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SEARCH_EXPANDED_WIDTH","exports","SEARCH_COLLAPSED_WIDTH"],"sources":["../../../../src/state/Toolbar/toolbarResponsiveConstants.ts"],"sourcesContent":["export const SEARCH_EXPANDED_WIDTH = 240;\nexport const SEARCH_COLLAPSED_WIDTH = 140;\n"],"mappings":";;;;AAAO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,GAAG;AACjC,MAAME,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,GAAG,GAAG","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["SEARCH_EXPANDED_WIDTH","exports","SEARCH_COLLAPSED_WIDTH","OVERFLOW_BUTTON_WIDTH","LAYOUT_SWITCH_BUTTON_WIDTH"],"sources":["../../../../src/state/Toolbar/toolbarResponsiveConstants.ts"],"sourcesContent":["export const SEARCH_EXPANDED_WIDTH = 240;\nexport const SEARCH_COLLAPSED_WIDTH = 140;\nexport const OVERFLOW_BUTTON_WIDTH = 36;\n// Width of the layout switch IconButton (size=\"small\") + SP2 gap (12px).\n// Used to account for hidden content during overflow exit calculation.\nexport const LAYOUT_SWITCH_BUTTON_WIDTH = 48;\n"],"mappings":";;;;AAAO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,GAAG;AACjC,MAAME,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,GAAG,GAAG;AAClC,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,EAAE;AACvC;AACA;AACO,MAAMC,0BAA0B,GAAAH,OAAA,CAAAG,0BAAA,GAAG,EAAE","ignoreList":[]}
|