@wix/patterns 1.495.0 → 1.496.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/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.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 +13 -12
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js +12 -2
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
- package/dist/cjs/components/CollectionToolbarFilters/useFiltersSyncProps.js +16 -1
- package/dist/cjs/components/CollectionToolbarFilters/useFiltersSyncProps.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +3 -3
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.js +47 -9
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css +8 -32
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +6 -10
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.uni.driver.js +2 -2
- package/dist/cjs/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +13 -10
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderFieldActions.js +4 -3
- package/dist/cjs/components/EditableTable/HeaderFieldActions.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.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/color/Edit.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js +3 -1
- package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +6 -6
- package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.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/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.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/EntityPageFields/EntityPageCustomField.js +2 -2
- package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
- package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js +3 -3
- package/dist/cjs/components/EntityPageFields/EntityPageField.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/FieldActions/FieldActions.js +18 -14
- package/dist/cjs/components/FieldActions/FieldActions.js.map +1 -1
- package/dist/cjs/components/FieldActions/headerActionTypes.js.map +1 -1
- package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js +51 -0
- package/dist/cjs/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
- package/dist/cjs/components/FiltersPanel/FiltersPanel.js +13 -15
- package/dist/cjs/components/FiltersPanel/FiltersPanel.js.map +1 -1
- package/dist/cjs/components/FiltersPanel/FiltersPanelState.js +50 -0
- package/dist/cjs/components/FiltersPanel/FiltersPanelState.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/ImportButtonModalLayout.js +26 -17
- package/dist/cjs/components/ImportButton/ImportButtonModalLayout.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/ImportButton/createImportFieldValidator.js +22 -0
- package/dist/cjs/components/ImportButton/createImportFieldValidator.js.map +1 -0
- 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/SetupWidget/SetupWidget.st.css.js +10 -10
- package/dist/cjs/components/SetupWidget/SetupWidget.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/Table/AddFieldColumnHeader.st.css.js +6 -6
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/Table/NumberCell.st.css.js +2 -2
- package/dist/cjs/components/Table/NumberCell.st.css.js.map +1 -1
- package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js +8 -0
- package/dist/cjs/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
- package/dist/cjs/components/TableFolders/TableFoldersContent.js +26 -10
- package/dist/cjs/components/TableFolders/TableFoldersContent.js.map +1 -1
- package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.js +37 -0
- package/dist/cjs/components/TableFolders/buildFoldersMobileColumns.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/useBuildAccordionItems.js +45 -24
- package/dist/cjs/hooks/useBuildAccordionItems.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellValueState.js +6 -5
- package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/cjs/state/EditableTable/types.js.map +1 -1
- package/dist/cjs/state/EditableTable/utils.js +0 -52
- package/dist/cjs/state/EditableTable/utils.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/buildEditableFieldColumns.js +2 -81
- package/dist/cjs/state/buildEditableFieldColumns.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/{components/CollectionTable → utils}/buildMobileColumns.js +41 -22
- package/dist/cjs/utils/buildMobileColumns.js.map +1 -0
- package/dist/cjs/utils/fieldValidation.js +136 -0
- package/dist/cjs/utils/fieldValidation.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/CustomFieldType.md +4 -2
- package/dist/docs/ImportButton.md +2 -0
- package/dist/dts-bundle/index.json +26 -26
- package/dist/dts-bundle/index.txt +4 -4
- package/dist/dts-bundle/types/CellType.d.ts +9 -7
- package/dist/dts-bundle/types/SchemaSource.d.ts +3 -2
- package/dist/dts-bundle/types/SchemaSourceInput.d.ts +3 -2
- package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +3 -2
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
- 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 +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js +10 -2
- package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
- package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js +17 -2
- package/dist/esm/components/CollectionToolbarFilters/useFiltersSyncProps.js.map +1 -1
- 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/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +2 -2
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.js +10 -4
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css +8 -32
- package/dist/esm/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.uni.driver.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js +6 -1
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderFieldActions.js +3 -3
- package/dist/esm/components/EditableTable/HeaderFieldActions.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.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/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.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/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js +1 -0
- package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/EntityPageFields/EntityPageCustomField.js +2 -2
- package/dist/esm/components/EntityPageFields/EntityPageCustomField.js.map +1 -1
- package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/FieldActions/FieldActions.js +7 -2
- package/dist/esm/components/FieldActions/FieldActions.js.map +1 -1
- package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js +29 -0
- package/dist/esm/components/FiltersPanel/FilterRevealAnchor.js.map +1 -0
- package/dist/esm/components/FiltersPanel/FiltersPanel.js +2 -5
- package/dist/esm/components/FiltersPanel/FiltersPanel.js.map +1 -1
- package/dist/esm/components/FiltersPanel/FiltersPanelState.js +46 -0
- package/dist/esm/components/FiltersPanel/FiltersPanelState.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +8 -1
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/ImportButton/createImportFieldValidator.js +15 -0
- package/dist/esm/components/ImportButton/createImportFieldValidator.js.map +1 -0
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- 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/Table/AddFieldColumnHeader.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/esm/components/Table/NumberCell.st.css.js +2 -2
- package/dist/esm/components/TableFolders/TableFolders.uni.driver.js +11 -0
- package/dist/esm/components/TableFolders/TableFolders.uni.driver.js.map +1 -1
- package/dist/esm/components/TableFolders/TableFoldersContent.js +17 -2
- package/dist/esm/components/TableFolders/TableFoldersContent.js.map +1 -1
- package/dist/esm/components/TableFolders/buildFoldersMobileColumns.js +17 -0
- package/dist/esm/components/TableFolders/buildFoldersMobileColumns.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/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js.map +1 -1
- package/dist/esm/hooks/useBuildAccordionItems.js +24 -10
- package/dist/esm/hooks/useBuildAccordionItems.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/esm/state/EditableTable/CellValueState.js +5 -4
- package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/esm/state/EditableTable/utils.js +0 -48
- package/dist/esm/state/EditableTable/utils.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/buildEditableFieldColumns.js +2 -73
- package/dist/esm/state/buildEditableFieldColumns.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/{components/CollectionTable → utils}/buildMobileColumns.js +23 -8
- package/dist/esm/utils/buildMobileColumns.js.map +1 -0
- package/dist/esm/utils/fieldValidation.js +121 -0
- package/dist/esm/utils/fieldValidation.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
- package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
- package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
- package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts +6 -0
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts +4 -3
- package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbarFilters/useFiltersSyncProps.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts +1 -5
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +5 -5
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderFieldActions.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/multiReference/View.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/multiReference/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/Edit.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/FieldActions/FieldActions.d.ts +2 -2
- package/dist/types/components/FieldActions/FieldActions.d.ts.map +1 -1
- package/dist/types/components/FieldActions/headerActionTypes.d.ts +2 -2
- package/dist/types/components/FieldActions/headerActionTypes.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts +12 -0
- package/dist/types/components/FiltersPanel/FilterRevealAnchor.d.ts.map +1 -0
- package/dist/types/components/FiltersPanel/FiltersPanel.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts +12 -0
- package/dist/types/components/FiltersPanel/FiltersPanelState.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
- package/dist/types/components/ImportButton/createImportFieldValidator.d.ts +3 -0
- package/dist/types/components/ImportButton/createImportFieldValidator.d.ts.map +1 -0
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +9 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFoldersContent.d.ts.map +1 -1
- package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts +4 -0
- package/dist/types/components/TableFolders/buildFoldersMobileColumns.d.ts.map +1 -0
- package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useBuildAccordionItems.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.st.css.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/types.d.ts +2 -5
- package/dist/types/state/EditableTable/types.d.ts.map +1 -1
- package/dist/types/state/EditableTable/utils.d.ts +1 -4
- package/dist/types/state/EditableTable/utils.d.ts.map +1 -1
- package/dist/types/state/buildEditableFieldColumns.d.ts +1 -2
- package/dist/types/state/buildEditableFieldColumns.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +4 -0
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +4 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +4 -0
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +4 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/utils/buildMobileColumns.d.ts +10 -0
- package/dist/types/utils/buildMobileColumns.d.ts.map +1 -0
- package/dist/types/utils/fieldValidation.d.ts +9 -0
- package/dist/types/utils/fieldValidation.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.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.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.tsx +10 -1
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionToolbarFilters/CollectionToolbarFiltersState.ts +18 -7
- package/src/components/CollectionToolbarFilters/useFiltersSyncProps.ts +28 -5
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +2 -2
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css +8 -32
- package/src/components/EditableTable/EditableCell.st.css.ts +3 -3
- package/src/components/EditableTable/EditableCell.tsx +26 -10
- package/src/components/EditableTable/EditableCell.uni.driver.ts +2 -2
- package/src/components/EditableTable/EditableTableContextMenu.tsx +6 -1
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/HeaderFieldActions.tsx +4 -5
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/JsonInputEdit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/address/Edit.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/color/Edit.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/datetime/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/multiReference/View.tsx +2 -1
- package/src/components/EditableTable/cellTypes/multiReference/index.ts +1 -0
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/time/Edit.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/EmptyState/EmptyStateBase.st.css.ts +2 -2
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/EntityPageFields/EntityPageCustomField.tsx +2 -2
- package/src/components/EntityPageFields/EntityPageField.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/FieldActions/FieldActions.tsx +12 -4
- package/src/components/FieldActions/headerActionTypes.ts +2 -2
- package/src/components/FiltersPanel/FilterRevealAnchor.tsx +49 -0
- package/src/components/FiltersPanel/FiltersPanel.tsx +6 -8
- package/src/components/FiltersPanel/FiltersPanelState.ts +63 -0
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportButtonModalLayout.tsx +10 -1
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/ImportButton/createImportFieldValidator.ts +20 -0
- 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/SetupWidget/SetupWidget.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/Table/AddFieldColumnHeader.st.css.ts +2 -2
- package/src/components/Table/NumberCell.st.css.ts +2 -2
- package/src/components/TableFolders/TableFolders.uni.driver.ts +19 -0
- package/src/components/TableFolders/TableFoldersContent.tsx +27 -2
- package/src/components/TableFolders/buildFoldersMobileColumns.ts +37 -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/useBuildAccordionItems.tsx +78 -58
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +2 -2
- package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
- package/src/state/EditableTable/CellValueState.ts +5 -4
- package/src/state/EditableTable/types.ts +2 -5
- package/src/state/EditableTable/utils.ts +1 -75
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/buildEditableFieldColumns.ts +2 -80
- package/src/styles.global.css +2 -2
- package/src/{components/CollectionTable → utils}/buildMobileColumns.tsx +46 -17
- package/src/utils/fieldValidation.ts +153 -0
- package/src/version.ts +1 -1
- package/dist/cjs/components/CollectionTable/buildMobileColumns.js.map +0 -1
- package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js +0 -24
- package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
- package/dist/esm/components/CollectionTable/buildMobileColumns.js.map +0 -1
- package/dist/esm/components/CollectionTable/mobileColumnsUtils.js +0 -15
- package/dist/esm/components/CollectionTable/mobileColumnsUtils.js.map +0 -1
- package/dist/types/components/CollectionTable/buildMobileColumns.d.ts +0 -4
- package/dist/types/components/CollectionTable/buildMobileColumns.d.ts.map +0 -1
- package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts +0 -17
- package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts.map +0 -1
- package/src/components/CollectionTable/mobileColumnsUtils.ts +0 -31
|
@@ -5,16 +5,16 @@ exports.__esModule = true;
|
|
|
5
5
|
exports.useBuildAccordionItems = useBuildAccordionItems;
|
|
6
6
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
7
|
var _react = require("@wix/bex-core/react");
|
|
8
|
-
var _react2 =
|
|
8
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
9
9
|
var _designSystem = require("@wix/design-system");
|
|
10
10
|
var _CollectionFilter = require("../components/CollectionFilter");
|
|
11
11
|
var _FilterAccordionResetButton = require("../components/FiltersPanel/FilterAccordionResetButton");
|
|
12
12
|
var _FilterAccordionTitle = require("../components/FiltersPanel/FilterAccordionTitle");
|
|
13
|
+
var _FilterRevealAnchor = require("../components/FiltersPanel/FilterRevealAnchor");
|
|
13
14
|
var _fieldTypePrefixIcons = require("../utils/fieldTypePrefixIcons");
|
|
14
15
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/hooks/useBuildAccordionItems.tsx";
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
return (0, _react2.useCallback)(filterElement => {
|
|
16
|
+
function createAccordionItemBuilder(state, showFieldTypeIcons) {
|
|
17
|
+
return filterElement => {
|
|
18
18
|
const {
|
|
19
19
|
type: Component,
|
|
20
20
|
props: filterProps
|
|
@@ -35,7 +35,7 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
|
|
|
35
35
|
__source: {
|
|
36
36
|
fileName: _jsxFileName,
|
|
37
37
|
lineNumber: 32,
|
|
38
|
-
columnNumber:
|
|
38
|
+
columnNumber: 7
|
|
39
39
|
}
|
|
40
40
|
}));
|
|
41
41
|
const titleElement = /*#__PURE__*/_react2.default.createElement(_FilterAccordionTitle.FilterAccordionTitle, {
|
|
@@ -46,7 +46,7 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
|
|
|
46
46
|
__source: {
|
|
47
47
|
fileName: _jsxFileName,
|
|
48
48
|
lineNumber: 38,
|
|
49
|
-
columnNumber:
|
|
49
|
+
columnNumber: 7
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
const titleWithIcon = showFieldTypeIcons ? /*#__PURE__*/_react2.default.createElement(_designSystem.Box, {
|
|
@@ -56,48 +56,69 @@ function useBuildAccordionItem(state, showFieldTypeIcons) {
|
|
|
56
56
|
__source: {
|
|
57
57
|
fileName: _jsxFileName,
|
|
58
58
|
lineNumber: 45,
|
|
59
|
-
columnNumber:
|
|
59
|
+
columnNumber: 7
|
|
60
60
|
}
|
|
61
61
|
}, (0, _fieldTypePrefixIcons.getFieldTypeIcon)({
|
|
62
62
|
fieldType,
|
|
63
63
|
size: 'medium'
|
|
64
64
|
}), titleElement) : titleElement;
|
|
65
|
-
const
|
|
65
|
+
const panel = state.panel;
|
|
66
|
+
const sectionKey = panel.getSectionKey(filterElement);
|
|
67
|
+
const open = panel.isSectionOpen(filterElement);
|
|
68
|
+
const request = panel.revealRequest;
|
|
69
|
+
const revealTitle = content => (request == null ? void 0 : request.sectionKey) === sectionKey ? /*#__PURE__*/_react2.default.createElement(_FilterRevealAnchor.FilterRevealAnchor, {
|
|
70
|
+
request: request,
|
|
71
|
+
scrollContainerRef: panel.scrollContainerRef,
|
|
72
|
+
open: open,
|
|
73
|
+
__self: this,
|
|
74
|
+
__source: {
|
|
75
|
+
fileName: _jsxFileName,
|
|
76
|
+
lineNumber: 59,
|
|
77
|
+
columnNumber: 9
|
|
78
|
+
}
|
|
79
|
+
}, content) : content;
|
|
80
|
+
const title = /*#__PURE__*/_react2.default.createElement(_designSystem.Box, {
|
|
66
81
|
width: "100%",
|
|
67
82
|
align: "space-between",
|
|
68
83
|
verticalAlign: "middle",
|
|
69
84
|
__self: this,
|
|
70
85
|
__source: {
|
|
71
86
|
fileName: _jsxFileName,
|
|
72
|
-
lineNumber:
|
|
73
|
-
columnNumber:
|
|
87
|
+
lineNumber: 71,
|
|
88
|
+
columnNumber: 7
|
|
74
89
|
}
|
|
75
|
-
}, titleWithIcon, /*#__PURE__*/_react2.default.createElement(_FilterAccordionResetButton.FilterAccordionResetButton, {
|
|
90
|
+
}, revealTitle(titleWithIcon), /*#__PURE__*/_react2.default.createElement(_FilterAccordionResetButton.FilterAccordionResetButton, {
|
|
76
91
|
state: state.toolbar,
|
|
77
|
-
filter:
|
|
92
|
+
filter: filter,
|
|
78
93
|
__self: this,
|
|
79
94
|
__source: {
|
|
80
95
|
fileName: _jsxFileName,
|
|
81
|
-
lineNumber:
|
|
82
|
-
columnNumber:
|
|
96
|
+
lineNumber: 73,
|
|
97
|
+
columnNumber: 9
|
|
83
98
|
}
|
|
84
|
-
}))
|
|
99
|
+
}));
|
|
100
|
+
const itemTitle = accordionItemProps && 'title' in accordionItemProps ? revealTitle(accordionItemProps.title) : title;
|
|
85
101
|
return {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
filter: filterProps.filter,
|
|
102
|
+
children: /*#__PURE__*/_react2.default.createElement(_CollectionFilter.CollectionFilter, {
|
|
103
|
+
filter: filter,
|
|
89
104
|
state: state,
|
|
90
105
|
__self: this,
|
|
91
106
|
__source: {
|
|
92
107
|
fileName: _jsxFileName,
|
|
93
|
-
lineNumber:
|
|
94
|
-
columnNumber:
|
|
108
|
+
lineNumber: 83,
|
|
109
|
+
columnNumber: 9
|
|
95
110
|
}
|
|
96
|
-
}, clonedElement)
|
|
111
|
+
}, clonedElement),
|
|
97
112
|
initiallyOpen,
|
|
98
|
-
...accordionItemProps
|
|
113
|
+
...accordionItemProps,
|
|
114
|
+
key: sectionKey,
|
|
115
|
+
open,
|
|
116
|
+
title: itemTitle,
|
|
117
|
+
onToggle: event => {
|
|
118
|
+
panel.toggleSection(filterElement, event);
|
|
119
|
+
}
|
|
99
120
|
};
|
|
100
|
-
}
|
|
121
|
+
};
|
|
101
122
|
}
|
|
102
123
|
function useBuildAccordionItems(state, searchTerm = '') {
|
|
103
124
|
const {
|
|
@@ -107,7 +128,7 @@ function useBuildAccordionItems(state, searchTerm = '') {
|
|
|
107
128
|
panelFilterElements
|
|
108
129
|
} = state;
|
|
109
130
|
const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;
|
|
110
|
-
const buildAccordionItem =
|
|
131
|
+
const buildAccordionItem = createAccordionItemBuilder(state, showFieldTypeIcons);
|
|
111
132
|
const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');
|
|
112
133
|
const term = searchTerm.trim().toLowerCase();
|
|
113
134
|
const elements = term ? panelFilterElements.filter(el => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_react2","_interopRequireWildcard","_designSystem","_CollectionFilter","_FilterAccordionResetButton","_FilterAccordionTitle","_fieldTypePrefixIcons","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useBuildAccordionItem","state","showFieldTypeIcons","useCallback","filterElement","type","Component","props","filterProps","filter","initiallyOpen","popoverProps","accordionItemProps","fieldType","clonedElement","createElement","_extends2","appendTo","__self","__source","fileName","lineNumber","columnNumber","titleElement","FilterAccordionTitle","toolbar","titleWithIcon","Box","gap","verticalAlign","getFieldTypeIcon","size","title","width","align","FilterAccordionResetButton","children","CollectionFilter","useBuildAccordionItems","searchTerm","translate","useWixPatternsContainer","panelFilterElements","buildAccordionItem","defaultSectionTitle","term","trim","toLowerCase","elements","el","_el$props","_el$props2","label","section","sectionTitle","includes","groups","defaultGroup","reduce","accumulator","item","_item$props","groupItems","accordionSectionItemBuilder","items","values","flat","length"],"sources":["../../../src/hooks/useBuildAccordionItems.tsx"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport React, { useCallback } from 'react';\nimport {\n AccordionProps,\n Box,\n accordionSectionItemBuilder,\n} from '@wix/design-system';\nimport { CollectionFilter } from '../components/CollectionFilter';\nimport { FilterElement } from '../components/CollectionToolbarFilters';\nimport { CollectionToolbarFiltersState } from '../components/CollectionToolbarFilters/CollectionToolbarFiltersState';\nimport { FilterAccordionResetButton } from '../components/FiltersPanel/FilterAccordionResetButton';\nimport { FilterAccordionTitle } from '../components/FiltersPanel/FilterAccordionTitle';\nimport { getFieldTypeIcon } from '../utils/fieldTypePrefixIcons';\n\nfunction useBuildAccordionItem<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n showFieldTypeIcons: boolean,\n) {\n return useCallback(\n (filterElement: FilterElement) => {\n const { type: Component, props: filterProps } = filterElement;\n const {\n filter,\n initiallyOpen,\n popoverProps,\n accordionItemProps,\n fieldType,\n } = filterProps;\n\n const clonedElement = (\n <Component\n {...filterProps}\n popoverProps={{ appendTo: 'window', ...popoverProps }}\n />\n );\n const titleElement = (\n <FilterAccordionTitle\n state={state.toolbar}\n filter={filter}\n filterProps={filterProps}\n />\n );\n const titleWithIcon = showFieldTypeIcons ? (\n <Box gap=\"SP1\" verticalAlign=\"middle\">\n {getFieldTypeIcon({ fieldType, size: 'medium' })}\n {titleElement}\n </Box>\n ) : (\n titleElement\n );\n\n const title = filterProps.filter ? (\n <Box width=\"100%\" align=\"space-between\" verticalAlign=\"middle\">\n {titleWithIcon}\n <FilterAccordionResetButton\n state={state.toolbar}\n filter={filterProps.filter}\n />\n </Box>\n ) : (\n titleWithIcon\n );\n\n return {\n title,\n children: filterProps.filter ? (\n <CollectionFilter filter={filterProps.filter} state={state}>\n {clonedElement}\n </CollectionFilter>\n ) : (\n clonedElement\n ),\n initiallyOpen,\n ...accordionItemProps,\n };\n },\n [showFieldTypeIcons],\n );\n}\n\nexport function useBuildAccordionItems<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n searchTerm: string = '',\n) {\n const { translate: t } = useWixPatternsContainer();\n const { panelFilterElements } = state;\n const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;\n const buildAccordionItem = useBuildAccordionItem(state, showFieldTypeIcons);\n\n const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');\n\n const term = searchTerm.trim().toLowerCase();\n const elements = term\n ? panelFilterElements.filter((el) => {\n const label = (el.props?.accordionItemProps?.label ?? '').toLowerCase();\n const section = (el.props?.sectionTitle ?? '').toLowerCase();\n return label.includes(term) || section.includes(term);\n })\n : panelFilterElements;\n\n const { groups, defaultGroup } = elements.reduce<{\n groups: Record<string, NonNullable<AccordionProps['items']>>;\n defaultGroup: NonNullable<AccordionProps['items']>;\n }>(\n (accumulator, item) => {\n const sectionTitle = item.props?.sectionTitle;\n\n if (!sectionTitle) {\n return {\n ...accumulator,\n defaultGroup: [...accumulator.defaultGroup, buildAccordionItem(item)],\n };\n }\n\n const groupItems = accumulator.groups[sectionTitle]\n ? [...accumulator.groups[sectionTitle], buildAccordionItem(item)]\n : [\n accordionSectionItemBuilder({ title: sectionTitle }),\n buildAccordionItem(item),\n ];\n\n return {\n ...accumulator,\n groups: {\n ...accumulator.groups,\n [sectionTitle]: groupItems,\n },\n };\n },\n {\n groups: {},\n defaultGroup: [],\n },\n );\n\n const items = Object.values(groups).flat();\n\n if (!items.length) {\n return defaultGroup;\n }\n\n return [\n ...items,\n ...(defaultGroup.length\n ? [\n accordionSectionItemBuilder({ title: defaultSectionTitle }),\n ...defaultGroup,\n ]\n : []),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_react2","_interopRequireDefault","_designSystem","_CollectionFilter","_FilterAccordionResetButton","_FilterAccordionTitle","_FilterRevealAnchor","_fieldTypePrefixIcons","_jsxFileName","createAccordionItemBuilder","state","showFieldTypeIcons","filterElement","type","Component","props","filterProps","filter","initiallyOpen","popoverProps","accordionItemProps","fieldType","clonedElement","default","createElement","_extends2","appendTo","__self","__source","fileName","lineNumber","columnNumber","titleElement","FilterAccordionTitle","toolbar","titleWithIcon","Box","gap","verticalAlign","getFieldTypeIcon","size","panel","sectionKey","getSectionKey","open","isSectionOpen","request","revealRequest","revealTitle","content","FilterRevealAnchor","scrollContainerRef","title","width","align","FilterAccordionResetButton","itemTitle","children","CollectionFilter","key","onToggle","event","toggleSection","useBuildAccordionItems","searchTerm","translate","t","useWixPatternsContainer","panelFilterElements","buildAccordionItem","defaultSectionTitle","term","trim","toLowerCase","elements","el","_el$props","_el$props2","label","section","sectionTitle","includes","groups","defaultGroup","reduce","accumulator","item","_item$props","groupItems","accordionSectionItemBuilder","items","Object","values","flat","length"],"sources":["../../../src/hooks/useBuildAccordionItems.tsx"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport React from 'react';\nimport {\n AccordionProps,\n Box,\n accordionSectionItemBuilder,\n} from '@wix/design-system';\nimport { CollectionFilter } from '../components/CollectionFilter';\nimport { FilterElement } from '../components/CollectionToolbarFilters';\nimport { CollectionToolbarFiltersState } from '../components/CollectionToolbarFilters/CollectionToolbarFiltersState';\nimport { FilterAccordionResetButton } from '../components/FiltersPanel/FilterAccordionResetButton';\nimport { FilterAccordionTitle } from '../components/FiltersPanel/FilterAccordionTitle';\nimport { FilterRevealAnchor } from '../components/FiltersPanel/FilterRevealAnchor';\nimport { getFieldTypeIcon } from '../utils/fieldTypePrefixIcons';\n\nfunction createAccordionItemBuilder<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n showFieldTypeIcons: boolean,\n) {\n return (filterElement: FilterElement) => {\n const { type: Component, props: filterProps } = filterElement;\n const {\n filter,\n initiallyOpen,\n popoverProps,\n accordionItemProps,\n fieldType,\n } = filterProps;\n\n const clonedElement = (\n <Component\n {...filterProps}\n popoverProps={{ appendTo: 'window', ...popoverProps }}\n />\n );\n const titleElement = (\n <FilterAccordionTitle\n state={state.toolbar}\n filter={filter}\n filterProps={filterProps}\n />\n );\n const titleWithIcon = showFieldTypeIcons ? (\n <Box gap=\"SP1\" verticalAlign=\"middle\">\n {getFieldTypeIcon({ fieldType, size: 'medium' })}\n {titleElement}\n </Box>\n ) : (\n titleElement\n );\n\n const panel = state.panel;\n const sectionKey = panel.getSectionKey(filterElement);\n const open = panel.isSectionOpen(filterElement);\n const request = panel.revealRequest;\n const revealTitle = (content: React.ReactNode) =>\n request?.sectionKey === sectionKey ? (\n <FilterRevealAnchor\n request={request}\n scrollContainerRef={panel.scrollContainerRef}\n open={open}\n >\n {content}\n </FilterRevealAnchor>\n ) : (\n content\n );\n\n const title = (\n <Box width=\"100%\" align=\"space-between\" verticalAlign=\"middle\">\n {revealTitle(titleWithIcon)}\n <FilterAccordionResetButton state={state.toolbar} filter={filter} />\n </Box>\n );\n\n const itemTitle =\n accordionItemProps && 'title' in accordionItemProps\n ? revealTitle(accordionItemProps.title)\n : title;\n return {\n children: (\n <CollectionFilter filter={filter} state={state}>\n {clonedElement}\n </CollectionFilter>\n ),\n initiallyOpen,\n ...accordionItemProps,\n key: sectionKey,\n open,\n title: itemTitle,\n onToggle: (event: React.MouseEvent<HTMLElement>) => {\n panel.toggleSection(filterElement, event);\n },\n };\n };\n}\n\nexport function useBuildAccordionItems<T, F extends FiltersMap>(\n state: CollectionToolbarFiltersState<T, F>,\n searchTerm: string = '',\n) {\n const { translate: t } = useWixPatternsContainer();\n const { panelFilterElements } = state;\n const showFieldTypeIcons = state.toolbar.showFieldTypeIcons;\n const buildAccordionItem = createAccordionItemBuilder(\n state,\n showFieldTypeIcons,\n );\n\n const defaultSectionTitle = t('cairo.filtersPanel.sections.default.title');\n\n const term = searchTerm.trim().toLowerCase();\n const elements = term\n ? panelFilterElements.filter((el) => {\n const label = (el.props?.accordionItemProps?.label ?? '').toLowerCase();\n const section = (el.props?.sectionTitle ?? '').toLowerCase();\n return label.includes(term) || section.includes(term);\n })\n : panelFilterElements;\n\n const { groups, defaultGroup } = elements.reduce<{\n groups: Record<string, NonNullable<AccordionProps['items']>>;\n defaultGroup: NonNullable<AccordionProps['items']>;\n }>(\n (accumulator, item) => {\n const sectionTitle = item.props?.sectionTitle;\n\n if (!sectionTitle) {\n return {\n ...accumulator,\n defaultGroup: [...accumulator.defaultGroup, buildAccordionItem(item)],\n };\n }\n\n const groupItems = accumulator.groups[sectionTitle]\n ? [...accumulator.groups[sectionTitle], buildAccordionItem(item)]\n : [\n accordionSectionItemBuilder({ title: sectionTitle }),\n buildAccordionItem(item),\n ];\n\n return {\n ...accumulator,\n groups: {\n ...accumulator.groups,\n [sectionTitle]: groupItems,\n },\n };\n },\n {\n groups: {},\n defaultGroup: [],\n },\n );\n\n const items = Object.values(groups).flat();\n\n if (!items.length) {\n return defaultGroup;\n }\n\n return [\n ...items,\n ...(defaultGroup.length\n ? [\n accordionSectionItemBuilder({ title: defaultSectionTitle }),\n ...defaultGroup,\n ]\n : []),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,15 +5,15 @@ 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_ = "CollectionPageHeader1806512227";
|
|
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": "
|
|
16
|
-
"mobileMoreActions": "
|
|
15
|
+
"root": "CollectionPageHeader1806512227__root",
|
|
16
|
+
"mobileMoreActions": "CollectionPageHeader1806512227__mobileMoreActions"
|
|
17
17
|
};
|
|
18
18
|
var keyframes = exports.keyframes = {};
|
|
19
19
|
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/CollectionPage/CollectionPageHeader.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/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader1806512227\";\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\":\"CollectionPageHeader1806512227__root\",\"mobileMoreActions\":\"CollectionPageHeader1806512227__mobileMoreActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-page-header-title-actions-gap\":\"--wds-page-header-title-actions-gap\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,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,sCAAsC;EAAC,mBAAmB,EAAC;AAAmD,CAAC;AACrI,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;EAAC,mCAAmC,EAAC;AAAqC,CAAC","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_ = "MobilePrimaryActionBar921216690";
|
|
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": "MobilePrimaryActionBar921216690__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/CollectionPage/MobilePrimaryActionBar.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/CollectionPage/MobilePrimaryActionBar.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"MobilePrimaryActionBar921216690\";\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\":\"MobilePrimaryActionBar921216690__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-space-300\":\"--wds-space-300\",\"wds-space-400\":\"--wds-space-400\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,iCAAiC;AACnD,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;AAAuC,CAAC;AAC9D,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;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
|
|
@@ -5,16 +5,16 @@ 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_ = "TitleBadges1040141928";
|
|
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": "
|
|
16
|
-
"tooltip": "
|
|
17
|
-
"tooltipTrigger": "
|
|
15
|
+
"root": "TitleBadges1040141928__root",
|
|
16
|
+
"tooltip": "TitleBadges1040141928__tooltip",
|
|
17
|
+
"tooltipTrigger": "TitleBadges1040141928__tooltipTrigger"
|
|
18
18
|
};
|
|
19
19
|
var keyframes = exports.keyframes = {};
|
|
20
20
|
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/CollectionPage/TitleBadges.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/CollectionPage/TitleBadges.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TitleBadges1040141928\";\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\":\"TitleBadges1040141928__root\",\"tooltip\":\"TitleBadges1040141928__tooltip\",\"tooltipTrigger\":\"TitleBadges1040141928__tooltipTrigger\"};\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,uBAAuB;AACzC,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,6BAA6B;EAAC,SAAS,EAAC,gCAAgC;EAAC,gBAAgB,EAAC;AAAuC,CAAC;AACxJ,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":[]}
|
|
@@ -7,6 +7,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
8
|
var _cellTypes = require("../../components/EditableTable/cellTypes");
|
|
9
9
|
var _utils = require("./utils");
|
|
10
|
+
var _fieldValidation = require("../../utils/fieldValidation");
|
|
10
11
|
const builtInCellTypeMap = new Map(_cellTypes.builtInCellTypes.map(ct => [ct.type, ct]));
|
|
11
12
|
class CellValueState {
|
|
12
13
|
constructor(parent, extraCellTypes = new Map()) {
|
|
@@ -76,7 +77,7 @@ class CellValueState {
|
|
|
76
77
|
errors: pending.errors
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
|
-
return
|
|
80
|
+
return _fieldValidation.validResult;
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
/** Normalize like commitHandler does, then validate, so a value commit
|
|
@@ -86,11 +87,11 @@ class CellValueState {
|
|
|
86
87
|
var _this$_parent$collect;
|
|
87
88
|
const column = this._parent._columnMap.get(columnId);
|
|
88
89
|
if (!column) {
|
|
89
|
-
return
|
|
90
|
+
return _fieldValidation.validResult;
|
|
90
91
|
}
|
|
91
92
|
const resolved = this.resolveCellTypeByColumnId(column.id);
|
|
92
93
|
const normalized = resolved.normalizeOnCommit ? resolved.normalizeOnCommit(value) : value;
|
|
93
|
-
return (0,
|
|
94
|
+
return (0, _fieldValidation.validateFieldValue)(normalized, column.validation, resolved.validate, (_this$_parent$collect = this._parent.collection) == null ? void 0 : _this$_parent$collect.translate);
|
|
94
95
|
}
|
|
95
96
|
isCellEditable(rowKey, columnId) {
|
|
96
97
|
const column = this._parent._columnMap.get(columnId);
|
|
@@ -351,7 +352,7 @@ class CellValueState {
|
|
|
351
352
|
continue;
|
|
352
353
|
}
|
|
353
354
|
const resolved = this.resolveCellTypeByColumnId(column.id);
|
|
354
|
-
const result = (0,
|
|
355
|
+
const result = (0, _fieldValidation.validateFieldValue)(value, column.validation, resolved.validate, (_this$_parent$collect3 = this._parent.collection) == null ? void 0 : _this$_parent$collect3.translate);
|
|
355
356
|
const pendingKey = this._pendingCellKey(rowKey, columnId);
|
|
356
357
|
if (result.valid) {
|
|
357
358
|
if (pendingKey) {
|
|
@@ -403,7 +404,7 @@ class CellValueState {
|
|
|
403
404
|
return;
|
|
404
405
|
}
|
|
405
406
|
const resolved = this.resolveCellTypeByColumnId(column.id);
|
|
406
|
-
const result = (0,
|
|
407
|
+
const result = (0, _fieldValidation.validateFieldValue)(value, column.validation, resolved.validate, (_this$_parent$collect4 = this._parent.collection) == null ? void 0 : _this$_parent$collect4.translate);
|
|
407
408
|
const pendingKey = this._pendingCellKey(rowKey, columnId);
|
|
408
409
|
if (result.valid && pendingKey) {
|
|
409
410
|
this._pendingCells.delete(pendingKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_cellTypes","_utils","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","revalidatePendingCells","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","runCellValidation","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","isDeserializationError","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","rowsToSave","parseCellKey","has","cellInteraction","isRowActive","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { parseCellKey, runCellValidation, validResult } from './utils';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<\n string,\n { value: any; errors: string[]; isDeserializationError?: boolean }\n >();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n revalidatePendingCells: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return runCellValidation(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: [error],\n isDeserializationError: true,\n });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n revalidatePendingCells() {\n const rowsToSave = new Set<string>();\n for (const [key, pending] of this._pendingCells) {\n const cell = parseCellKey(key);\n if (!cell || pending.isDeserializationError) {\n continue;\n }\n this._applyValue(cell.rowKey, cell.columnId, pending.value);\n if (!this._pendingCells.has(key)) {\n rowsToSave.add(cell.rowKey);\n }\n }\n for (const rowKey of rowsToSave) {\n if (!this._parent.cellInteraction.isRowActive(rowKey)) {\n this.flushRow(rowKey);\n }\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIA,IAAAC,UAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAEA,MAAMG,kBAAkB,GAAG,IAAIC,GAAG,CAChCC,2BAAgB,CAACC,GAAG,CAAEC,EAAE,IAAK,CAACA,EAAE,CAACC,IAAI,EAAED,EAAE,CAAC,CAC5C,CAAC;AAEM,MAAME,cAAc,CAA0B;EAiBnDC,WAAWA,CACTC,MAAgC,EAChCC,cAAqC,GAAG,IAAIR,GAAG,CAAC,CAAC,EACjD;IAnBF;IAAA,IAAAS,gBAAA,CAAAC,OAAA,yBACyB,IAAIV,GAAG,CAG9B,CAAC;IAEH;AACF;IADE,IAAAS,gBAAA,CAAAC,OAAA,uBAEuB,IAAIV,GAAG,CAG5B,CAAC;IAAA,IAAAS,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IASD,IAAI,CAACC,OAAO,GAAGJ,MAAM;IACrB,IAAI,CAACK,eAAe,GAAGJ,cAAc;IAErC,IAAAK,oBAAc,EAAC,IAAI,EAAE;MACnBC,aAAa,EAAEC,gBAAU;MACzBC,WAAW,EAAED,gBAAU;MACvBE,YAAY,EAAEC,cAAQ;MACtBC,UAAU,EAAEC,YAAM;MAClBC,UAAU,EAAED,YAAM;MAClBE,aAAa,EAAEF,YAAM;MACrBG,kBAAkB,EAAEH,YAAM;MAC1BI,eAAe,EAAEJ,YAAM;MACvBK,sBAAsB,EAAEL,YAAM;MAC9BM,WAAW,EAAEN,YAAM;MACnBO,QAAQ,EAAEP,YAAM;MAChBQ,gBAAgB,EAAER;IACpB,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;EACA,IAAIH,YAAYA,CAAA,EAA0B;IACxC,MAAMf,GAAG,GAAG,IAAIF,GAAG,CAAmB,CAAC;IACvC,KAAK,MAAM6B,GAAG,IAAI,IAAI,CAAClB,OAAO,CAACmB,UAAU,EAAE;MACzC,IAAID,GAAG,CAACE,QAAQ,KAAK,QAAQ,IAAIF,GAAG,CAACG,UAAU,EAAE;QAC/C9B,GAAG,CAAC+B,GAAG,CAACJ,GAAG,CAACK,EAAE,EAAE;UAAE9B,IAAI,EAAE,QAAQ;UAAE,GAAGyB,GAAG,CAACG;QAAW,CAAC,CAAC;MACxD,CAAC,MAAM;QACL9B,GAAG,CAAC+B,GAAG,CACLJ,GAAG,CAACK,EAAE,EACNnC,kBAAkB,CAACoC,GAAG,CAACN,GAAG,CAACE,QAAQ,CAAC,IAClC,IAAI,CAACnB,eAAe,CAACuB,GAAG,CAACN,GAAG,CAACE,QAAQ,CAAC,IACtCK,uBACJ,CAAC;MACH;IACF;IACA,OAAOlC,GAAG;EACZ;EAEAmC,yBAAyBA,CAACC,QAAgB,EAAY;IACpD,OAAO,IAAI,CAACrB,YAAY,CAACkB,GAAG,CAACG,QAAQ,CAAC,IAAIF,uBAAY;EACxD;EAEAG,mBAAmBA,CAACC,MAAc,EAAEF,QAAgB,EAAO;IACzD,MAAMG,OAAO,GAAG,IAAI,CAACC,eAAe,CAACF,MAAM,EAAEF,QAAQ,CAAC;IACtD,IAAIG,OAAO,EAAE;MACX,OAAOA,OAAO,CAACE,KAAK;IACtB;IACA,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACL,MAAM,EAAEF,QAAQ,CAAC;IAClD,IAAIM,KAAK,EAAE;MACT,OAAOA,KAAK,CAACD,KAAK;IACpB;IACA,MAAMG,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,OAAOM,MAAM,IAAIE,SAAS,GAAGF,MAAM,CAACI,QAAQ,CAACF,SAAS,CAACG,IAAI,CAAC,GAAGC,SAAS;EAC1E;EAEAC,iBAAiBA,CAACb,MAAc,EAAEF,QAAgB,EAAoB;IACpE,MAAMG,OAAO,GAAG,IAAI,CAACC,eAAe,CAACF,MAAM,EAAEF,QAAQ,CAAC;IACtD,IAAIG,OAAO,EAAE;MACX,OAAO;QAAEa,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAEd,OAAO,CAACc;MAAO,CAAC;IACjD;IACA,OAAOC,kBAAW;EACpB;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAACnB,QAAgB,EAAEK,KAAU,EAAoB;IAAA,IAAAe,qBAAA;IACnE,MAAMZ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAOU,kBAAW;IACpB;IACA,MAAMG,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAM0B,UAAU,GAAGD,QAAQ,CAACE,iBAAiB,GACzCF,QAAQ,CAACE,iBAAiB,CAAClB,KAAK,CAAC,GACjCA,KAAK;IACT,OAAO,IAAAmB,wBAAiB,EACtBF,UAAU,EACVd,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAN,qBAAA,GACjB,IAAI,CAAC/C,OAAO,CAACsD,UAAU,qBAAvBP,qBAAA,CAAyBQ,SAC3B,CAAC;EACH;EAEAC,cAAcA,CAAC3B,MAAc,EAAEF,QAAgB,EAAW;IACxD,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAO,KAAK;IACd;IAEA,MAAMa,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAIyB,QAAQ,CAACS,QAAQ,KAAK,KAAK,IAAI,CAACT,QAAQ,CAACU,aAAa,EAAE;MAC1D,OAAO,KAAK;IACd;IACA,OAAO,IAAI,CAACC,gBAAgB,CAAC9B,MAAM,EAAEF,QAAQ,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEgC,gBAAgBA,CAAC9B,MAAc,EAAEF,QAAgB,EAAW;IAC1D,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,EAACQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,GAAE;MACrB,OAAO,KAAK;IACd;IAEA,IAAI,OAAOzB,MAAM,CAACsB,QAAQ,KAAK,UAAU,EAAE;MACzC,MAAMpB,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,OAAOQ,SAAS,GAAGF,MAAM,CAACsB,QAAQ,CAACpB,SAAS,CAACG,IAAI,CAAC,GAAG,KAAK;IAC5D;IACA,OAAOL,MAAM,CAACsB,QAAQ,KAAK,KAAK;EAClC;EAEAI,4BAA4BA,CAC1BC,QAAuC,EACvCC,IAAU,EACU;IACpB,MAAM5B,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACuC,IAAI,CAACpC,QAAQ,CAAC;IACzD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAOM,SAAS;IAClB;IAEA,MAAMuB,WAAW,GAAG,IAAI,CAACtC,yBAAyB,CAChDqC,IAAI,CAACpC,QACP,CAAC,CAACqC,WAAW;IACb,IAAI,CAACA,WAAW,EAAE;MAChB,OAAOvB,SAAS;IAClB;IAEA,MAAMwB,OAAO,GAAG;MACdjC,KAAK,EAAE,IAAI,CAACJ,mBAAmB,CAACmC,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MAC3DuC,KAAK,EAAE/B,MAAM,CAAC+B,KAAK;MACnBrC,MAAM,EAAEkC,IAAI,CAAClC,MAAM;MACnBF,QAAQ,EAAEoC,IAAI,CAACpC;IACjB,CAAC;IACD,MAAMwC,OAAO,GACXL,QAAQ,KAAK,KAAK,GACd,CAACE,WAAW,CAACI,GAAG,EAAEJ,WAAW,CAACK,IAAI,EAAEL,WAAW,CAACM,KAAK,CAAC,GACtD,CAACN,WAAW,CAACF,QAAQ,CAAC,CAAC;IAE7B,KAAK,MAAMS,MAAM,IAAIJ,OAAO,EAAE;MAC5B,MAAMK,OAAO,GAAGD,MAAM,oBAANA,MAAM,CAAEE,eAAe,CAACR,OAAO,CAAC;MAChD,IAAIO,OAAO,EAAE;QACX,OAAOA,OAAO;MAChB;IACF;IACA,OAAO/B,SAAS;EAClB;EAEAiC,kBAAkBA,CAChBZ,QAAuC,EACvCa,KAAa,EACL;IACR,OAAOA,KAAK,CAACC,MAAM,CAChBb,IAAI,IAAK,CAAC,IAAI,CAACF,4BAA4B,CAACC,QAAQ,EAAEC,IAAI,CAC7D,CAAC;EACH;EAEAc,6BAA6BA,CAC3Bf,QAAuC,EACvCa,KAAa,EACoC;IACjD,IAAIF,eAAmC;IAEvC,KAAK,MAAMV,IAAI,IAAIY,KAAK,EAAE;MACxB,MAAMH,OAAO,GAAG,IAAI,CAACX,4BAA4B,CAACC,QAAQ,EAAEC,IAAI,CAAC;MACjEU,eAAe,KAAfA,eAAe,GAAKD,OAAO;MAC3B,MAAMM,8BAA8B,GAClChB,QAAQ,KAAK,MAAM,IACnB,IAAI,CAACH,gBAAgB,CAACI,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MACnD,IAAImD,8BAA8B,IAAI,CAACN,OAAO,EAAE;QAC9C,OAAO;UAAEO,QAAQ,EAAE;QAAM,CAAC;MAC5B;IACF;IAEA,OAAO;MAAEA,QAAQ,EAAE,IAAI;MAAEN;IAAgB,CAAC;EAC5C;;EAEA;EACAO,kBAAkBA,CAACnD,MAAc,EAAEF,QAAgB,EAAU;IAC3D,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,CAACM,MAAM,IAAI,CAACE,SAAS,EAAE;MACzB,OAAO,EAAE;IACX;IACA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAMS,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEF,QAAQ,CAAC;IACxD,OAAOqB,QAAQ,CAACiC,SAAS,GAAGjC,QAAQ,CAACiC,SAAS,CAACjD,KAAK,CAAC,GAAGkD,MAAM,CAAClD,KAAK,IAAI,EAAE,CAAC;EAC7E;;EAEA;AACF;EACExB,UAAUA,CAACmE,KAAa,EAAU;IAChC,MAAMQ,OAA2D,GAAG,EAAE;IAEtE,KAAK,MAAMpB,IAAI,IAAIY,KAAK,EAAE;MACxB,MAAMxC,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACuC,IAAI,CAACpC,QAAQ,CAAC;MACzD,IAAI,EAACQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,GAAE;QACrB;MACF;MACA,IAAI,CAAC,IAAI,CAACD,gBAAgB,CAACI,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC,EAAE;QACtD;MACF;MACA,IAAI,IAAI,CAACkC,4BAA4B,CAAC,OAAO,EAAEE,IAAI,CAAC,EAAE;QACpD;MACF;MAEA,MAAMqB,UAAU,GAAG,IAAI,CAACC,eAAe,CAACtB,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,CAAC;MACnE,IAAIyD,UAAU,EAAE;QACd,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;MACvC;MACAD,OAAO,CAACI,IAAI,CAAC;QACX1D,MAAM,EAAEkC,IAAI,CAAClC,MAAM;QACnBF,QAAQ,EAAEoC,IAAI,CAACpC,QAAQ;QACvBK,KAAK,EAAES;MACT,CAAC,CAAC;IACJ;IAEA,IAAI0C,OAAO,CAACK,MAAM,GAAG,CAAC,EAAE;MACtB,IAAI,CAAC3E,eAAe,CAACsE,OAAO,CAAC;IAC/B;IAEA,OAAOA,OAAO,CAAC5F,GAAG,CAAC,CAAC;MAAEsC,MAAM;MAAEF;IAAS,CAAC,MAAM;MAAEE,MAAM;MAAEF;IAAS,CAAC,CAAC,CAAC;EACtE;EAEAjB,UAAUA,CAACmB,MAAc,EAAEF,QAAgB,EAAE;IAC3C,MAAMQ,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KAAI,CAACvB,SAAS,EAAE;MACnC;IACF;IAEA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAI,CAACyB,QAAQ,CAACyC,WAAW,EAAE;MACzB;IACF;IAEA,MAAMzD,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEF,QAAQ,CAAC;IACxD,MAAM+D,QAAQ,GAAG1C,QAAQ,CAACyC,WAAW,CAACzD,KAAK,CAAC;IAC5C,MAAM2D,eAAe,GAAG,CAACC,MAAM,CAACC,EAAE,CAAC7D,KAAK,EAAE0D,QAAQ,CAAC;IACnD,IAAI,CAACI,WAAW,CAACjE,MAAM,EAAEF,QAAQ,EAAE+D,QAAQ,CAAC;IAC5C;IACA;IACA,IAAI,CAAC1F,OAAO,CAAC+F,EAAE,CAACC,iBAAiB,CAC/B;MAAEnE,MAAM;MAAEF;IAAS,CAAC,EACpB;MAAEsE,MAAM,EAAE,QAAQ;MAAEN;IAAgB,CACtC,CAAC;EACH;;EAEA;EACAhF,aAAaA,CAACuF,YAAiB,EAAEnC,IAAU,EAAE;IAC3C,IAAImC,YAAY,KAAKzD,SAAS,EAAE;MAC9B,MAAMO,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACqC,IAAI,CAACpC,QAAQ,CAAC;MAC9D,MAAMsB,UAAU,GAAGD,QAAQ,CAACE,iBAAiB,GACzCF,QAAQ,CAACE,iBAAiB,CAACgD,YAAY,CAAC,GACxCA,YAAY;MAChB,IAAI,CAACJ,WAAW,CAAC/B,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,EAAEsB,UAAU,CAAC;IAC1D;EACF;EAEQlB,eAAeA,CACrBF,MAAc,EACdF,QAAgB,EAC8B;IAC9C,MAAMwE,GAAG,GAAG,IAAI,CAACd,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAClD,OAAOwE,GAAG,GAAG,IAAI,CAAChG,aAAa,CAACqB,GAAG,CAAC2E,GAAG,CAAC,GAAG1D,SAAS;EACtD;EAEQP,aAAaA,CACnBL,MAAc,EACdF,QAAgB,EACY;IAC5B,MAAMwE,GAAG,GAAG,IAAI,CAACd,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAClD,OAAOwE,GAAG,GAAG,IAAI,CAAC9F,WAAW,CAACmB,GAAG,CAAC2E,GAAG,CAAC,GAAG1D,SAAS;EACpD;EAEQ4C,eAAeA,CACrBxD,MAAc,EACdF,QAAgB,EACI;IACpB,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,MAAMM,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACU,SAAS,IAAI,CAACF,MAAM,EAAE;MACzB,OAAOM,SAAS;IAClB;IACA,OAAO,GAAGJ,SAAS,CAAC8D,GAAG,IAAIhE,MAAM,CAACZ,EAAE,EAAE;EACxC;;EAEA;AACF;AACA;AACA;EACE6E,cAAcA,CACZzE,QAAgB,EAChB0E,QAAgB,EACgB;IAChC,MAAMlE,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACQ,MAAM,EAAE;MACX,OAAO;QAAEH,KAAK,EAAEqE;MAAS,CAAC;IAC5B;IACA,MAAMrD,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,IAAI,CAACyB,QAAQ,CAACsD,WAAW,EAAE;MACzB,OAAO;QAAEtE,KAAK,EAAEqE;MAAS,CAAC;IAC5B;IACA,IAAI;MACF,OAAO;QAAErE,KAAK,EAAEgB,QAAQ,CAACsD,WAAW,CAACD,QAAQ;MAAE,CAAC;IAClD,CAAC,CAAC,MAAM;MAAA,IAAAE,sBAAA;MACN,MAAMhD,SAAS,IAAAgD,sBAAA,GAAG,IAAI,CAACvG,OAAO,CAACsD,UAAU,qBAAvBiD,sBAAA,CAAyBhD,SAAS;MACpD,OAAO;QACLvB,KAAK,EAAEqE,QAAQ;QACfG,KAAK,EACH,CAAAxD,QAAQ,CAACyD,mBAAmB,oBAA5BzD,QAAQ,CAACyD,mBAAmB,CAAGJ,QAAQ,EAAE9C,SAAS,CAAC,MACnDA,SAAS,oBAATA,SAAS,CAAG,mDAAmD,CAAC;MACpE,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;EACE3C,kBAAkBA,CAChB8F,UAAoE,EACpE;IACA,MAAMvB,OAA2D,GAAG,EAAE;IACtE,KAAK,MAAM;MAAEtD,MAAM;MAAEF,QAAQ;MAAE0E;IAAS,CAAC,IAAIK,UAAU,EAAE;MACvD,MAAM;QAAE1E,KAAK;QAAEwE;MAAM,CAAC,GAAG,IAAI,CAACJ,cAAc,CAACzE,QAAQ,EAAE0E,QAAQ,CAAC;MAChE,IAAIG,KAAK,EAAE;QACT,MAAMpB,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;QACzD,IAAIyD,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;YACjCpD,KAAK;YACLY,MAAM,EAAE,CAAC4D,KAAK,CAAC;YACfG,sBAAsB,EAAE;UAC1B,CAAC,CAAC;QACJ;MACF,CAAC,MAAM;QACLxB,OAAO,CAACI,IAAI,CAAC;UAAE1D,MAAM;UAAEF,QAAQ;UAAEK;QAAM,CAAC,CAAC;MAC3C;IACF;IACA,IAAI,CAACnB,eAAe,CAACsE,OAAO,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEtE,eAAeA,CAACsE,OAA2D,EAAE;IAC3E,MAAMyB,UAAU,GAAG,IAAIvH,GAAG,CAGxB,CAAC;IAEH,KAAK,MAAM;MAAEwC,MAAM;MAAEF,QAAQ;MAAEK;IAAM,CAAC,IAAImD,OAAO,EAAE;MAAA,IAAA0B,sBAAA;MACjD,MAAM1E,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;MACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,IACE,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KACjB,CAACvB,SAAS,IACV,CAAC,IAAI,CAACsB,gBAAgB,CAAC9B,MAAM,EAAEF,QAAQ,CAAC,EACxC;QACA;MACF;MAEA,MAAMqB,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;MAC1D,MAAMuF,MAAM,GAAG,IAAA3D,wBAAiB,EAC9BnB,KAAK,EACLG,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAwD,sBAAA,GACjB,IAAI,CAAC7G,OAAO,CAACsD,UAAU,qBAAvBuD,sBAAA,CAAyBtD,SAC3B,CAAC;MACD,MAAM6B,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;MAEzD,IAAImF,MAAM,CAACnE,KAAK,EAAE;QAChB,IAAIyC,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;QACvC;QACA,IAAI,IAAI,CAACpF,OAAO,CAAC+G,QAAQ,CAACC,aAAa,CAACnF,MAAM,CAAC,EAAE;UAC/C;UACA;UACA;UACA,IAAIuD,UAAU,EAAE;YACd,IAAI,CAAC/E,WAAW,CAACiB,GAAG,CAAC8D,UAAU,EAAE;cAC/BvD,MAAM,EAAEQ,SAAS,CAAC8D,GAAG;cACrBxE,QAAQ,EAAEQ,MAAM,CAACZ,EAAE;cACnBS;YACF,CAAC,CAAC;UACJ;UACA;QACF;QACA,IAAIiF,SAAS,GAAGL,UAAU,CAACpF,GAAG,CAACK,MAAM,CAAC;QACtC,IAAI,CAACoF,SAAS,EAAE;UACd,MAAMC,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;UAC/DyE,SAAS,GAAG;YACVzE,IAAI,EAAE0E,QAAQ,CAAC1E,IAAI;YACnB4E,eAAe,EAAE,IAAIC,GAAG,CAACH,QAAQ,CAACE,eAAe;UACnD,CAAC;UACDR,UAAU,CAACtF,GAAG,CAACO,MAAM,EAAEoF,SAAS,CAAC;QACnC;QACAA,SAAS,CAACzE,IAAI,GAAGL,MAAM,CAACyB,QAAQ,CAACqD,SAAS,CAACzE,IAAI,EAAER,KAAK,CAAC;QACvDiF,SAAS,CAACG,eAAe,CAACE,GAAG,CAACnF,MAAM,CAACZ,EAAE,CAAC;MAC1C,CAAC,MAAM,IAAI6D,UAAU,EAAE;QACrB,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;UACjCpD,KAAK;UACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;QAC3B,CAAC,CAAC;MACJ;IACF;IAEA,MAAM2E,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACb,UAAU,CAACc,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC1H,OAAO,CAAC+G,QAAQ,CAACY,WAAW,CAC/BJ,OAAO,CAAChI,GAAG,CAAC,CAAC;MAAEiD;IAAK,CAAC,KAAKA,IAAI,CAAC,EAC/B+E,OAAO,CAAChI,GAAG,CAAC,CAAC;MAAE6H;IAAgB,CAAC,KAAKI,KAAK,CAACC,IAAI,CAACL,eAAe,CAAC,CAClE,CAAC;EACH;EAEQtB,WAAWA,CAACjE,MAAc,EAAEF,QAAgB,EAAEK,KAAU,EAAE;IAAA,IAAA4F,sBAAA;IAChE,MAAMzF,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACG,QAAQ,CAAC;IACpD,MAAMU,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;IACpD,IAAI,EAACM,MAAM,YAANA,MAAM,CAAEyB,QAAQ,KAAI,CAACvB,SAAS,EAAE;MACnC;IACF;IAEA,MAAMW,QAAQ,GAAG,IAAI,CAACtB,yBAAyB,CAACS,MAAM,CAACZ,EAAE,CAAC;IAC1D,MAAMuF,MAAM,GAAG,IAAA3D,wBAAiB,EAC9BnB,KAAK,EACLG,MAAM,CAACiB,UAAU,EACjBJ,QAAQ,CAACK,QAAQ,GAAAuE,sBAAA,GACjB,IAAI,CAAC5H,OAAO,CAACsD,UAAU,qBAAvBsE,sBAAA,CAAyBrE,SAC3B,CAAC;IACD,MAAM6B,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEF,QAAQ,CAAC;IAEzD,IAAImF,MAAM,CAACnE,KAAK,IAAIyC,UAAU,EAAE;MAC9B,IAAI,CAACjF,aAAa,CAACmF,MAAM,CAACF,UAAU,CAAC;MACrC,IAAI,CAAC/E,WAAW,CAACiB,GAAG,CAAC8D,UAAU,EAAE;QAC/BvD,MAAM,EAAEQ,SAAS,CAAC8D,GAAG;QACrBxE,QAAQ,EAAEQ,MAAM,CAACZ,EAAE;QACnBS;MACF,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIoD,UAAU,EAAE;MACrB,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;QACjCpD,KAAK;QACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;MAC3B,CAAC,CAAC;IACJ;EACF;EAEA9B,sBAAsBA,CAAA,EAAG;IACvB,MAAM+G,UAAU,GAAG,IAAIR,GAAG,CAAS,CAAC;IACpC,KAAK,MAAM,CAAClB,GAAG,EAAErE,OAAO,CAAC,IAAI,IAAI,CAAC3B,aAAa,EAAE;MAC/C,MAAM4D,IAAI,GAAG,IAAA+D,mBAAY,EAAC3B,GAAG,CAAC;MAC9B,IAAI,CAACpC,IAAI,IAAIjC,OAAO,CAAC6E,sBAAsB,EAAE;QAC3C;MACF;MACA,IAAI,CAACb,WAAW,CAAC/B,IAAI,CAAClC,MAAM,EAAEkC,IAAI,CAACpC,QAAQ,EAAEG,OAAO,CAACE,KAAK,CAAC;MAC3D,IAAI,CAAC,IAAI,CAAC7B,aAAa,CAAC4H,GAAG,CAAC5B,GAAG,CAAC,EAAE;QAChC0B,UAAU,CAACP,GAAG,CAACvD,IAAI,CAAClC,MAAM,CAAC;MAC7B;IACF;IACA,KAAK,MAAMA,MAAM,IAAIgG,UAAU,EAAE;MAC/B,IAAI,CAAC,IAAI,CAAC7H,OAAO,CAACgI,eAAe,CAACC,WAAW,CAACpG,MAAM,CAAC,EAAE;QACrD,IAAI,CAACb,QAAQ,CAACa,MAAM,CAAC;MACvB;IACF;EACF;EAEAd,WAAWA,CAACmH,YAAqB,EAAE;IACjC,IAAI,CAACC,UAAU,CAAEtG,MAAM,IAAKA,MAAM,KAAKqG,YAAY,CAAC;EACtD;;EAEA;EACAlH,QAAQA,CAACa,MAAc,EAAE;IACvB,IAAI,CAACsG,UAAU,CAAEhC,GAAG,IAAKA,GAAG,KAAKtE,MAAM,CAAC;EAC1C;EAEQsG,UAAUA,CAACC,UAAuC,EAAE;IAC1D,MAAMC,cAAc,GAAG,IAAIhB,GAAG,CAAS,CAAC;IACxC,KAAK,MAAMxF,MAAM,IAAI,IAAI,CAAC7B,OAAO,CAAC+G,QAAQ,CAACuB,OAAO,CAACC,IAAI,CAAC,CAAC,EAAE;MACzD,IAAIH,UAAU,CAACvG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC2G,eAAe,CAAC3G,MAAM,CAAC,EAAE;QACvDwG,cAAc,CAACf,GAAG,CAACzF,MAAM,CAAC;MAC5B;IACF;IAEA,MAAM4G,OAAO,GAAG,IAAIpB,GAAG,CAAS,CAAC;IACjC,KAAK,MAAMqB,KAAK,IAAI,IAAI,CAACrI,WAAW,CAACqH,MAAM,CAAC,CAAC,EAAE;MAC7C,IAAIU,UAAU,CAACM,KAAK,CAAC7G,MAAM,CAAC,EAAE;QAC5B4G,OAAO,CAACnB,GAAG,CAACoB,KAAK,CAAC7G,MAAM,CAAC;MAC3B;IACF;IAEA,MAAM0F,OAAiD,GAAG,EAAE;IAC5D,KAAK,MAAM1F,MAAM,IAAI4G,OAAO,EAAE;MAC5B,MAAMpG,SAAS,GAAG,IAAI,CAACrC,OAAO,CAACsC,aAAa,CAACT,MAAM,CAAC;MACpD,IAAI,CAACQ,SAAS,EAAE;QACd,IAAI,CAACpB,gBAAgB,CAACY,MAAM,CAAC;MAC/B,CAAC,MAAM,IAAI,IAAI,CAAC7B,OAAO,CAAC+G,QAAQ,CAACC,aAAa,CAACnF,MAAM,CAAC,EAAE;QACtD,IAAI,CAACwG,cAAc,CAACN,GAAG,CAAClG,MAAM,CAAC,EAAE;UAC/B,MAAMqF,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;UAC/D,IAAI,CAACxC,OAAO,CAAC+G,QAAQ,CAAC4B,YAAY,CAAC9G,MAAM,EAAEqF,QAAQ,CAAC1E,IAAI,CAAC;QAC3D;MACF,CAAC,MAAM;QACL,MAAM0E,QAAQ,GAAG,IAAI,CAACC,iBAAiB,CAACtF,MAAM,EAAEQ,SAAS,CAACG,IAAI,CAAC;QAC/D+E,OAAO,CAAChC,IAAI,CAAC2B,QAAQ,CAAC;MACxB;IACF;IACA,IAAIK,OAAO,CAAC/B,MAAM,GAAG,CAAC,EAAE;MACtB,IAAI,CAACxF,OAAO,CAAC+G,QAAQ,CAACY,WAAW,CAC/BJ,OAAO,CAAChI,GAAG,CAAC,CAAC;QAAEiD;MAAK,CAAC,KAAKA,IAAI,CAAC,EAC/B+E,OAAO,CAAChI,GAAG,CAAC,CAAC;QAAE6H;MAAgB,CAAC,KAAKA,eAAe,CACtD,CAAC;IACH;EACF;;EAEA;AACF;EACUoB,eAAeA,CAAC3G,MAAc,EAAW;IAC/C,IAAIc,KAAK,GAAG,IAAI;IAChB,KAAK,MAAMR,MAAM,IAAI,IAAI,CAACnC,OAAO,CAACmB,UAAU,EAAE;MAC5C,IAAI,CAAC,IAAI,CAACwC,gBAAgB,CAAC9B,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC,EAAE;QAC7C;MACF;MACA;MACA;MACA;MACA,IAAI,IAAI,CAACQ,eAAe,CAACF,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC,EAAE;QAC3CoB,KAAK,GAAG,KAAK;QACb;MACF;MACA,MAAMX,KAAK,GAAG,IAAI,CAACJ,mBAAmB,CAACC,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC;MACzD,MAAMuF,MAAM,GAAG,IAAI,CAAChE,oBAAoB,CAACX,MAAM,CAACZ,EAAE,EAAES,KAAK,CAAC;MAC1D,IAAI,CAAC8E,MAAM,CAACnE,KAAK,EAAE;QACjBA,KAAK,GAAG,KAAK;QACb,MAAMyC,UAAU,GAAG,IAAI,CAACC,eAAe,CAACxD,MAAM,EAAEM,MAAM,CAACZ,EAAE,CAAC;QAC1D,IAAI6D,UAAU,EAAE;UACd,IAAI,CAACjF,aAAa,CAACmB,GAAG,CAAC8D,UAAU,EAAE;YACjCpD,KAAK;YACLY,MAAM,EAAEkE,MAAM,CAAClE,MAAM,IAAI;UAC3B,CAAC,CAAC;QACJ;MACF;IACF;IACA,OAAOD,KAAK;EACd;EAEQwE,iBAAiBA,CACvBtF,MAAc,EACdW,IAAO,EACiC;IACxC,MAAM4E,eAAe,GAAG,IAAIC,GAAG,CAAS,CAAC;IACzC,KAAK,MAAM,CAAClB,GAAG,EAAEuC,KAAK,CAAC,IAAI,IAAI,CAACrI,WAAW,EAAE;MAC3C,IAAIqI,KAAK,CAAC7G,MAAM,KAAKA,MAAM,EAAE;QAC3B;MACF;MACA,MAAMM,MAAM,GAAG,IAAI,CAACnC,OAAO,CAACoC,UAAU,CAACZ,GAAG,CAACkH,KAAK,CAAC/G,QAAQ,CAAC;MAC1D,IAAIQ,MAAM,YAANA,MAAM,CAAEyB,QAAQ,EAAE;QACpBpB,IAAI,GAAGL,MAAM,CAACyB,QAAQ,CAACpB,IAAI,EAAEkG,KAAK,CAAC1G,KAAK,CAAC;QACzCoF,eAAe,CAACE,GAAG,CAACnF,MAAM,CAACZ,EAAE,CAAC;MAChC;MACA,IAAI,CAAClB,WAAW,CAACiF,MAAM,CAACa,GAAG,CAAC;IAC9B;IACA,OAAO;MAAE3D,IAAI;MAAE4E,eAAe,EAAEI,KAAK,CAACC,IAAI,CAACL,eAAe;IAAE,CAAC;EAC/D;;EAEA;AACF;AACA;EACEnG,gBAAgBA,CAACY,MAAc,EAAE;IAC/B,KAAK,MAAM,CAACsE,GAAG,EAAEuC,KAAK,CAAC,IAAI,IAAI,CAACrI,WAAW,EAAE;MAC3C,IAAIqI,KAAK,CAAC7G,MAAM,KAAKA,MAAM,EAAE;QAC3B,IAAI,CAACxB,WAAW,CAACiF,MAAM,CAACa,GAAG,CAAC;MAC9B;IACF;IACA,MAAMyC,MAAM,GAAG,GAAG/G,MAAM,GAAG;IAC3B,KAAK,MAAMsE,GAAG,IAAI,IAAI,CAAChG,aAAa,CAACoI,IAAI,CAAC,CAAC,EAAE;MAC3C,IAAIpC,GAAG,CAAC0C,UAAU,CAACD,MAAM,CAAC,EAAE;QAC1B,IAAI,CAACzI,aAAa,CAACmF,MAAM,CAACa,GAAG,CAAC;MAChC;IACF;EACF;AACF;AAAC2C,OAAA,CAAApJ,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_cellTypes","_utils","_fieldValidation","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","revalidatePendingCells","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","validateFieldValue","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","isDeserializationError","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","rowsToSave","parseCellKey","has","cellInteraction","isRowActive","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { parseCellKey } from './utils';\nimport { validateFieldValue, validResult } from '../../utils/fieldValidation';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<\n string,\n { value: any; errors: string[]; isDeserializationError?: boolean }\n >();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n revalidatePendingCells: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return validateFieldValue(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: [error],\n isDeserializationError: true,\n });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = validateFieldValue(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = validateFieldValue(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n revalidatePendingCells() {\n const rowsToSave = new Set<string>();\n for (const [key, pending] of this._pendingCells) {\n const cell = parseCellKey(key);\n if (!cell || pending.isDeserializationError) {\n continue;\n }\n this._applyValue(cell.rowKey, cell.columnId, pending.value);\n if (!this._pendingCells.has(key)) {\n rowsToSave.add(cell.rowKey);\n }\n }\n for (const rowKey of rowsToSave) {\n if (!this._parent.cellInteraction.isRowActive(rowKey)) {\n this.flushRow(rowKey);\n }\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type {\n EditableCellConfig,\n Field,\n Translate,\n ValidationRule,\n} from '@wix/bex-core';\nimport type { RichTextStyleVariables } from '@wix/patterns-fields';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type { ReferenceTypeConfig } from '../../components/EditableTable/cellTypes/reference/types';\nimport type { AddressCellTypeConfig } from '../../components/EditableTable/cellTypes/address';\nimport type {\n CellViewProps,\n CellEditProps,\n CellEditWrapperProps,\n} from '../../components/EditableTable/types';\n\nexport interface RichTextCellTypeConfig {\n textStyle?: RichTextStyleVariables;\n}\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 } from '@wix/bex-core';\n\nexport
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/state/EditableTable/types.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport type {\n EditableCellConfig,\n Field,\n Translate,\n ValidationRule,\n} from '@wix/bex-core';\nimport type { RichTextStyleVariables } from '@wix/patterns-fields';\nimport type { TableColumn } from '../../model/tableColumn';\nimport type { ReferenceTypeConfig } from '../../components/EditableTable/cellTypes/reference/types';\nimport type { AddressCellTypeConfig } from '../../components/EditableTable/cellTypes/address';\nimport type {\n CellViewProps,\n CellEditProps,\n CellEditWrapperProps,\n} from '../../components/EditableTable/types';\n\nexport interface RichTextCellTypeConfig {\n textStyle?: RichTextStyleVariables;\n}\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 } from '@wix/bex-core';\n\nexport type { ValidationResult } from '../../utils/fieldValidation';\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 * `translate` is optional so cell types whose validate doesn't need\n * localization (text/number/date/…) can keep their existing call sites.\n * Cell types that DO localize (array/object) must be called with a translator. */\n validate?: (\n value: any,\n rules?: ValidationRule[],\n translate?: Translate,\n ) => string | null;\n\n /** Error message for pasted text that `deserialize` rejected. Receives the\n * raw text, not a typed value. Omit it to show the generic\n * \"not compatible\" message. */\n invalidInputMessage?: (raw: string, translate?: Translate) => string | null;\n\n /** Can this cell type be edited? (default: true) */\n editable?: boolean;\n\n /** Availability of Cairo's built-in cell context-menu actions. */\n contextMenu?: EditableCellConfig<unknown>['contextMenu'];\n\n /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */\n toggleValue?: (value: any) => any;\n\n /** Enter edit mode on single click (e.g., image cell with no value). */\n editOnClick?: (value: any) => boolean;\n\n /** Show the EditComponent when the cell is focused, without entering edit mode.\n * Keyboard navigation remains active. Similar to toggleValue but without toggling. */\n showEditWhenFocused?: boolean;\n\n /** Optional wrapper component the cell type defines to own behavior that must\n * outlive the inline editor. EditableCell mounts it around the cell content\n * and keeps it mounted across the edit↔view transition (e.g. a reference cell\n * navigating to an overlay and refreshing the table on return). The wrapper\n * hands anything the editor needs down via its own context. */\n EditWrapper?: ComponentType<CellEditWrapperProps>;\n\n /** Cell content can grow past row height when focused (e.g. multi-document\n * wraps chips into multiple rows). The framework releases the bottom anchor\n * and lays an opaque base under the selection tint so the overflow doesn't\n * bleed adjacent rows through.\n * Also applies to read-only views. Other editors release the bottom\n * anchor via :editing already. */\n growable?: boolean;\n\n /** Called on type-to-edit. Return object with cleared value and/or prevent flag.\n * CMS-web pattern: text clears to '', number clears only for digits, date blocks non-digits.\n * Return undefined to block the key. Return {} to enter edit mode without changing the value. */\n onTypeToEdit?: (params: {\n key: string;\n validation?: ValidationRule[];\n }) => { value?: any } | undefined;\n\n /** Optional hook to normalize the committed value (e.g. auto-prepend https://).\n * Called before commitEdit() from EditableCell (blur/Enter) and useKeyboardNavigation (Tab).\n * The value is written back to editingValue via runInAction before committing. */\n normalizeOnCommit?: (value: any) => any;\n\n /** When true, type-to-edit flushes the edit-mode render synchronously and\n * focuses the input within the same keydown event, then lets the browser's\n * default action deliver the keystroke to the now-focused input naturally\n * (no preventDefault, no programmatic value injection).\n * Mirrors cms-web's `focusOnTyping` pattern. Use for cells that wrap a\n * controlled input whose value can't be seeded via props (e.g. WSR TimeInput). */\n nativeTypeToEdit?: boolean;\n}\n\nexport interface CellTypeConfigMap {\n text: never;\n number: never;\n boolean: never;\n url: never;\n email: never;\n color: never;\n date: never;\n time: never;\n datetime: never;\n object: never;\n array: never;\n image: never;\n mediaImage: never;\n document: never;\n multiDocument: never;\n richContent: never;\n video: never;\n audio: never;\n richText: RichTextCellTypeConfig;\n mediaGallery: never;\n reference: ReferenceTypeConfig;\n multiReference: ReferenceTypeConfig;\n address: AddressCellTypeConfig;\n /** An inline custom cell: the full cell contract minus the registry key.\n * Authorable directly on a column (`cellType: 'custom'` + `typeConfig`),\n * and also produced by the column builder when a schema field's type\n * definition (registered via the source's `fieldTypes`) has an\n * `editableTable` slot. */\n custom: Omit<CellType, 'type'>;\n}\n\ninterface EditableColumnBase<T> extends Omit<TableColumn<T>, 'render'> {\n id: string;\n /** Column type — maps to a CellType in the registry */\n cellType: keyof CellTypeConfigMap;\n\n /** Extract the cell value from the row data */\n getValue: (item: T) => any;\n\n /** Field metadata associated with the column, when available. */\n field?: Field;\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 /** True if this column represents the schema's primary field. Drives header-action disable rules (e.g. blocks Delete, blocks Make Primary). */\n isPrimary?: boolean;\n\n /** True if this column represents a system field. Drives header-action disable rules (e.g. blocks Edit, Delete, Duplicate). */\n isSystem?: 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":[]}
|