@wix/patterns 1.488.0 → 1.490.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 +3 -6
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css +0 -12
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -3
- 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/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.js +3 -0
- package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/FieldIndications.js +11 -10
- package/dist/cjs/components/CustomColumnsPanel/FieldIndications.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js +37 -35
- package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.js +28 -19
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.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 +8 -9
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +18 -13
- 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/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/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/EditableTable/index.js +5 -2
- package/dist/cjs/components/EditableTable/index.js.map +1 -1
- package/dist/cjs/components/EditableTable/useClearFocusOnBlur.js +12 -4
- package/dist/cjs/components/EditableTable/useClearFocusOnBlur.js.map +1 -1
- package/dist/cjs/components/EditableTable/useKeyboardNavigation.js +7 -0
- package/dist/cjs/components/EditableTable/useKeyboardNavigation.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/EntityPageField.js +21 -14
- package/dist/cjs/components/EntityPageFields/EntityPageField.js.map +1 -1
- package/dist/cjs/components/EntityPageFields/EntityPageField.st.css +10 -0
- package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js +23 -0
- package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js.map +1 -0
- 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/Grid/Grid.uni.driver.js +6 -0
- package/dist/cjs/components/Grid/Grid.uni.driver.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +1 -0
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.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/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/VirtualGridRepeater/VirtualGridRepeaterBase.js +3 -2
- package/dist/cjs/components/VirtualGridRepeater/VirtualGridRepeaterBase.js.map +1 -1
- package/dist/cjs/components/VirtualGridRepeater/VirtualGridRepeaterState.js +13 -0
- package/dist/cjs/components/VirtualGridRepeater/VirtualGridRepeaterState.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/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/CustomColumnsState.js +20 -0
- package/dist/cjs/state/CustomColumnsState.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/GridBaseState.js +3 -1
- package/dist/cjs/state/GridBaseState.js.map +1 -1
- package/dist/cjs/state/buildFieldFilters.js +9 -5
- package/dist/cjs/state/buildFieldFilters.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/CollectionPage.Content.md +2 -1
- package/dist/docs/CustomFieldType.md +8 -3
- package/dist/docs/PickerContent.md +1 -1
- package/dist/docs/TableGridSwitchFolders.md +17 -3
- package/dist/docs/index.json +11 -11
- package/dist/docs/operatorFilter.md +2 -2
- package/dist/dts-bundle/components/OperatorFilterPicker.d.ts +2 -2
- package/dist/dts-bundle/functions/operatorFilter.d.ts +2 -2
- package/dist/dts-bundle/index.json +84 -84
- package/dist/dts-bundle/index.txt +15 -15
- package/dist/dts-bundle/types/Filter.d.ts +2 -0
- package/dist/dts-bundle/types/SchemaSource.d.ts +3 -0
- package/dist/dts-bundle/types/SchemaSourceInput.d.ts +2 -0
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- 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/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +1 -3
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css +0 -12
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.js +3 -0
- package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.js.map +1 -1
- package/dist/esm/components/CustomColumnsPanel/FieldIndications.js +1 -1
- package/dist/esm/components/CustomColumnsPanel/FieldIndications.js.map +1 -1
- package/dist/esm/components/CustomFieldModal/CustomFieldForm.js +7 -5
- package/dist/esm/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.js +17 -17
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.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/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.js +2 -3
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js +9 -4
- 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/cellTypes/CellViewLayout.st.css.js +2 -2
- 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/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/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/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/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/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/reference/EmptyReferenceView.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/index.js +1 -0
- package/dist/esm/components/EditableTable/index.js.map +1 -1
- package/dist/esm/components/EditableTable/useClearFocusOnBlur.js +14 -4
- package/dist/esm/components/EditableTable/useClearFocusOnBlur.js.map +1 -1
- package/dist/esm/components/EditableTable/useKeyboardNavigation.js +8 -0
- package/dist/esm/components/EditableTable/useKeyboardNavigation.js.map +1 -1
- package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/EntityPageFields/EntityPageField.js +13 -1
- package/dist/esm/components/EntityPageFields/EntityPageField.js.map +1 -1
- package/dist/esm/components/EntityPageFields/EntityPageField.st.css +10 -0
- package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +15 -0
- package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js.map +1 -0
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Grid/Grid.uni.driver.js +5 -0
- package/dist/esm/components/Grid/Grid.uni.driver.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js +1 -0
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- 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/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- 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/NumberCell.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- 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/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/esm/components/VirtualGridRepeater/VirtualGridRepeaterBase.js +1 -0
- package/dist/esm/components/VirtualGridRepeater/VirtualGridRepeaterBase.js.map +1 -1
- package/dist/esm/components/VirtualGridRepeater/VirtualGridRepeaterState.js +7 -0
- package/dist/esm/components/VirtualGridRepeater/VirtualGridRepeaterState.js.map +1 -1
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/components/common.st.css.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/TitleBadges.st.css.js +2 -2
- package/dist/esm/state/CustomColumnsState.js +19 -1
- package/dist/esm/state/CustomColumnsState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/GridBaseState.js +2 -1
- package/dist/esm/state/GridBaseState.js.map +1 -1
- package/dist/esm/state/buildFieldFilters.js +6 -2
- package/dist/esm/state/buildFieldFilters.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/version.js +1 -1
- package/dist/examples/CustomFieldType/editable-cell.tsx +19 -17
- package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +6 -0
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts +0 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +3 -0
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.d.ts +3 -0
- package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/FieldIndications.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldForm.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -1
- package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +6 -0
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/index.d.ts +1 -0
- package/dist/types/components/EditableTable/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useClearFocusOnBlur.d.ts +1 -1
- package/dist/types/components/EditableTable/useClearFocusOnBlur.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useKeyboardNavigation.d.ts.map +1 -1
- package/dist/types/components/EmptyState/EmptyStateBase.st.css.d.ts.map +1 -1
- package/dist/types/components/EntityPageFields/EntityPageField.d.ts.map +1 -1
- package/dist/types/components/EntityPageFields/EntityPageField.st.css.d.ts +14 -0
- package/dist/types/components/EntityPageFields/EntityPageField.st.css.d.ts.map +1 -0
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +8 -0
- package/dist/types/components/Grid/Grid.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +11 -0
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +4 -0
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +3 -0
- package/dist/types/components/Kanban/Kanban.uni.driver.d.ts.map +1 -1
- package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +9 -0
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
- package/dist/types/components/SkeletonCard/SkeletonCard.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/Table.uni.driver.d.ts +6 -0
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +9 -0
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +10 -0
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/components/VirtualGridRepeater/VirtualGridRepeaterBase.d.ts.map +1 -1
- package/dist/types/components/VirtualGridRepeater/VirtualGridRepeaterState.d.ts +4 -0
- package/dist/types/components/VirtualGridRepeater/VirtualGridRepeaterState.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
- package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/GridBaseState.d.ts +1 -0
- package/dist/types/state/GridBaseState.d.ts.map +1 -1
- package/dist/types/state/buildFieldFilters.d.ts +1 -1
- package/dist/types/state/buildFieldFilters.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +49 -0
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +58 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +55 -0
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +58 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- 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 +0 -12
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.tsx +0 -3
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomColumnsPanel/CustomColumnsPanel.uni.driver.ts +6 -0
- package/src/components/CustomColumnsPanel/FieldIndications.tsx +6 -1
- package/src/components/CustomFieldModal/CustomFieldForm.tsx +46 -37
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +2 -2
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.tsx +56 -56
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.tsx +2 -3
- package/src/components/EditableTable/EditableTableContextMenu.tsx +9 -4
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/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/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/EditableTable/index.ts +1 -0
- package/src/components/EditableTable/useClearFocusOnBlur.ts +16 -4
- package/src/components/EditableTable/useKeyboardNavigation.ts +11 -0
- package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/EntityPageFields/EntityPageField.st.css +10 -0
- package/src/components/EntityPageFields/EntityPageField.st.css.ts +25 -0
- package/src/components/EntityPageFields/EntityPageField.tsx +19 -1
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Grid/Grid.uni.driver.ts +5 -0
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/SchemaSource/schemaFieldManagement.ts +1 -0
- 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/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/VirtualGridRepeater/VirtualGridRepeaterBase.tsx +1 -0
- package/src/components/VirtualGridRepeater/VirtualGridRepeaterState.ts +15 -0
- package/src/components/common.st.css.ts +2 -2
- 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/CustomColumnsState.ts +35 -1
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/GridBaseState.ts +2 -1
- package/src/state/buildFieldFilters.tsx +12 -6
- package/src/styles.global.css +2 -2
- package/src/version.ts +1 -1
|
@@ -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_ = \"TitleBadges3696893018\";\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\":\"TitleBadges3696893018__root\",\"tooltip\":\"TitleBadges3696893018__tooltip\",\"tooltipTrigger\":\"TitleBadges3696893018__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":[]}
|
|
@@ -16,6 +16,24 @@ var _CustomColumnsPanelStateBase = require("./CustomColumnsPanelStateBase");
|
|
|
16
16
|
const CUSTOM_COLUMNS_KEY = exports.CUSTOM_COLUMNS_KEY = 'custom-columns';
|
|
17
17
|
const SPREADSHEET_CUSTOM_COLUMNS_KEY = exports.SPREADSHEET_CUSTOM_COLUMNS_KEY = 'spreadsheet-custom-columns';
|
|
18
18
|
const getCustomColumnsKeyForLayout = layout => layout === 'spreadsheet' ? SPREADSHEET_CUSTOM_COLUMNS_KEY : CUSTOM_COLUMNS_KEY;
|
|
19
|
+
const asText = content => typeof content === 'string' ? content : undefined;
|
|
20
|
+
const toPanelRow = column => {
|
|
21
|
+
var _column$infoTooltipPr, _column$infoTooltipPr2, _column$validation;
|
|
22
|
+
return {
|
|
23
|
+
id: column.id,
|
|
24
|
+
name: column.name || asText(column.title),
|
|
25
|
+
fieldType: column.fieldType,
|
|
26
|
+
infoText: asText(((_column$infoTooltipPr = column.infoTooltipProps) == null ? void 0 : _column$infoTooltipPr.panelContent) || ((_column$infoTooltipPr2 = column.infoTooltipProps) == null ? void 0 : _column$infoTooltipPr2.content)),
|
|
27
|
+
isPrimary: column.isPrimary,
|
|
28
|
+
isPii: column.isPii,
|
|
29
|
+
isSystem: column.isSystem,
|
|
30
|
+
appFieldEditable: column.dataExtension ? !!column.dataExtension.editable : undefined,
|
|
31
|
+
required: (_column$validation = column.validation) == null ? void 0 : _column$validation.some(rule => rule.type === 'required'),
|
|
32
|
+
hideable: column.hideable,
|
|
33
|
+
reorderDisabled: column.reorderDisabled,
|
|
34
|
+
hiddenFromCustomColumnsSelection: column.hiddenFromCustomColumnsSelection
|
|
35
|
+
};
|
|
36
|
+
};
|
|
19
37
|
const asStoredColumnsOrNull = customColumnsResult => Array.isArray(customColumnsResult) ? customColumnsResult : null;
|
|
20
38
|
class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanelStateBase {
|
|
21
39
|
constructor(params) {
|
|
@@ -274,6 +292,8 @@ class CustomColumnsState extends _CustomColumnsPanelStateBase.CustomColumnsPanel
|
|
|
274
292
|
selectedColumns.setValue(this.toSelectedColumns, {
|
|
275
293
|
emitEvents: ['change', 'beforeRefresh', 'refresh']
|
|
276
294
|
});
|
|
295
|
+
}), (0, _mobx.reaction)(() => this.table.columns.map(toPanelRow), () => void this.refreshColumns(), {
|
|
296
|
+
equals: _mobx.comparer.structural
|
|
277
297
|
}), this.registerSelectedColumnChange(), this.columnsCollection.init(), (_this$dragAndDrop = this.dragAndDrop) == null ? void 0 : _this$dragAndDrop.init(), (_this$customColumnsHi = this.customColumnsHistory) == null ? void 0 : _this$customColumnsHi.init(), (0, _mobx.reaction)(() => {
|
|
278
298
|
var _this$table$layoutSta;
|
|
279
299
|
return (_this$table$layoutSta = this.table.layoutState) == null ? void 0 : _this$table$layoutSta.viewType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","_CustomColumnsPanelStateBase","CUSTOM_COLUMNS_KEY","exports","SPREADSHEET_CUSTOM_COLUMNS_KEY","getCustomColumnsKeyForLayout","layout","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","CustomColumnsPanelStateBase","constructor","params","container","queryName","environment","componentId","table","collection","filter","Boolean","join","_defineProperty2","default","Map","TaskState","undefined","EventEmitter","dragAndDrop","CustomColumnsDragAndDropState","customColumns","dataSource","columns","selectedColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","initBaseObservables","makeObservable","pendingInsertPosition","observable","ref","setPendingInsertPosition","action","bound","clearPendingInsertPosition","persistCustomColumns","toSelectedColumns","computed","selectedOrderedColumns","init","orderedColumns","customColumnsState","value","column","some","selectedColumn","id","isSelected","_table$layoutState","dataCapsule","viewsProps","_touched","setItem","layoutState","viewType","registerSelectedColumnChange","events","on","off","afterColumnId","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","hiddenFromCustomColumnsSelection","diffColumns","pending","pendingIndex","afterIndex","findIndex","forEach","d","i","splice","originalIndex","afterId","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","select","isChecked","selectionChanged","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","refreshColumns","fireImmediately","selectedValues","setValue","emitEvents","columnsCollection","_this$table$layoutSta","newLayout","prevLayout","_cacheRestoredLayout","stored","_getStoredCustomColumns","reset","_fetchFromStorage","disposer","_this$table$layoutSta2","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","hasUrlColumnsForCurrentLayout","storedCustomColumns","selectedColumnsFromStorage","tableColumn","name","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","showFieldTypeIcons","manageFieldsSource","collectionFieldsSource","sidePanelTransition","sidePanel","transition","onClose","cairoFiltersPanelUsed","isOpened","feature","origin","close"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n FiltersMap,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column, ViewType } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport {\n cairoCustomizeColumnsInSidePanel,\n cairoFiltersPanelUsed,\n} from '@wix/bex-core/bi';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\n\nexport type CustomColumnsPanelState<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> = CustomColumnsPanelStateBase<T, F>;\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\n// Legacy `custom-columns` stays bound to non-spreadsheet layouts so existing\n// stored values keep their meaning; spreadsheet uses a sibling key.\nexport const CUSTOM_COLUMNS_KEY = 'custom-columns';\nexport const SPREADSHEET_CUSTOM_COLUMNS_KEY = 'spreadsheet-custom-columns';\n\nconst getCustomColumnsKeyForLayout = (layout: ViewType | undefined): string =>\n layout === 'spreadsheet'\n ? SPREADSHEET_CUSTOM_COLUMNS_KEY\n : CUSTOM_COLUMNS_KEY;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: import('@wix/bex-core').WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<\n T,\n F extends FiltersMap,\n> extends CustomColumnsPanelStateBase<T, F> {\n readonly table;\n\n readonly dragAndDrop: CustomColumnsDragAndDropState<T, F> | undefined;\n\n readonly customColumnsHistory;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n /** Where the next new column goes. `afterColumnId: null` means the start.\n * Consumed by the next `mergeNewColumns`. */\n pendingInsertPosition: { afterColumnId: string | null } | undefined =\n undefined;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n super({\n container: params.container,\n queryName: [\n params.container.environment.componentId,\n params.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n });\n\n this.table = params.table;\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n dataSource: {\n get columns() {\n return params.table.columns;\n },\n selectedColumns: params.table.selectedColumns,\n },\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n this.initBaseObservables();\n makeObservable(this, {\n pendingInsertPosition: observable.ref,\n setPendingInsertPosition: action.bound,\n clearPendingInsertPosition: action.bound,\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem(\n getCustomColumnsKeyForLayout(table.layoutState?.viewType),\n table.selectedColumns.value,\n );\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n setPendingInsertPosition(afterColumnId: string | null) {\n this.pendingInsertPosition = { afterColumnId };\n }\n\n clearPendingInsertPosition() {\n this.pendingInsertPosition = undefined;\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n const pending = this.pendingInsertPosition;\n let pendingIndex: number | null = null;\n if (pending) {\n this.clearPendingInsertPosition();\n if (pending.afterColumnId == null) {\n pendingIndex = 0;\n } else {\n const afterIndex = mergeTargetSelectedColumns.findIndex(\n (c) => c.id === pending.afterColumnId,\n );\n pendingIndex = afterIndex === -1 ? null : afterIndex + 1;\n }\n }\n\n // place new columns where the user picked, or according to their order in\n // the original columns prop\n diffColumns.forEach((d, i) => {\n if (pendingIndex != null) {\n mergeTargetSelectedColumns.splice(pendingIndex + i, 0, d);\n return;\n }\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await this.refreshColumns();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n reaction(\n () => this.table.layoutState?.viewType,\n async (newLayout, prevLayout) => {\n if (!newLayout || !prevLayout || newLayout === prevLayout) {\n return;\n }\n if (this.table._cacheRestoredLayout === newLayout) {\n return;\n }\n // Views path is handled by CollectionViewsState's own reaction.\n if (this.table.viewsProps) {\n return;\n }\n const stored = await this._getStoredCustomColumns();\n if (stored == null) {\n this.table.selectedColumns.reset();\n } else {\n await this._fetchFromStorage();\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem(\n getCustomColumnsKeyForLayout(this.table.layoutState?.viewType),\n ),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (\n customColumnsState?.customColumnsHistory?.hasUrlColumnsForCurrentLayout\n ) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get showFieldTypeIcons() {\n return this.table.showFieldTypeIcons;\n }\n\n get manageFieldsSource() {\n return this.table.collectionFieldsSource;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AAIA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,GAAA,GAAAL,OAAA;AAKA,IAAAM,4BAAA,GAAAN,OAAA;AAcA;AACA;AACO,MAAMO,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,gBAAgB;AAC3C,MAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,4BAA4B;AAE1E,MAAMC,4BAA4B,GAAIC,MAA4B,IAChEA,MAAM,KAAK,aAAa,GACpBF,8BAA8B,GAC9BF,kBAAkB;AAExB,MAAMK,qBAAqB,GAAIC,mBAA4B,IACzDC,KAAK,CAACC,OAAO,CAACF,mBAAmB,CAAC,GAC7BA,mBAAmB,GACpB,IAAI;AAaH,MAAMG,kBAAkB,SAGrBC,wDAA2B,CAAO;EAwB1CC,WAAWA,CAACC,MAAsC,EAAE;IAClD,KAAK,CAAC;MACJC,SAAS,EAAED,MAAM,CAACC,SAAS;MAC3BC,SAAS,EAAE,CACTF,MAAM,CAACC,SAAS,CAACE,WAAW,CAACC,WAAW,EACxCJ,MAAM,CAACK,KAAK,CAACC,UAAU,CAACJ,SAAS,EACjC,eAAe,CAChB,CACEK,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0CAzBH,IAAIC,GAAG,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,oBAES,IAAIE,kBAAS,CAAC,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,oBAExB,KAAK;IAEhB;AACF;IADE,IAAAD,gBAAA,CAAAC,OAAA,iCAGEG,SAAS;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,kBAEO,IAAII,oBAAY,CAAC,CAAC;IAgBlC,IAAI,CAACV,KAAK,GAAGL,MAAM,CAACK,KAAK;IAEzB,IAAIL,MAAM,CAACgB,WAAW,EAAE;MACtB,MAAM;QAAEC;MAA8B,CAAC,GAAGjB,MAAM,CAACgB,WAAW;MAC5D,IAAI,CAACA,WAAW,GAAG,IAAIC,6BAA6B,CAAC;QACnDC,aAAa,EAAE,IAAI;QACnBC,UAAU,EAAE;UACV,IAAIC,OAAOA,CAAA,EAAG;YACZ,OAAOpB,MAAM,CAACK,KAAK,CAACe,OAAO;UAC7B,CAAC;UACDC,eAAe,EAAErB,MAAM,CAACK,KAAK,CAACgB;QAChC,CAAC;QACDC,UAAU,EAAEtB,MAAM,CAACgB,WAAW;QAC9BO,kBAAkB,EAAEvB,MAAM,CAACuB;MAC7B,CAAC,CAAC;IACJ;IAEA,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAACnB,KAAK,CAACC,UAAU,CAACmB,iBAAiB,GAC/D,IAAIC,oDAAyB,CAAC;MAC5BR,aAAa,EAAE,IAAI;MACnBS,OAAO,EAAE3B,MAAM,CAACC,SAAS,CAAC0B;IAC5B,CAAC,CAAC,GACF,IAAI;IAER,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,qBAAqB,EAAEC,gBAAU,CAACC,GAAG;MACrCC,wBAAwB,EAAEC,YAAM,CAACC,KAAK;MACtCC,0BAA0B,EAAEF,YAAM,CAACC,KAAK;MACxCE,oBAAoB,EAAEH,YAAM,CAACC,KAAK;MAClCG,iBAAiB,EAAEC,cAAQ;MAC3BC,sBAAsB,EAAED,cAAQ;MAChCE,IAAI,EAAEP;IACR,CAAC,CAAC;EACJ;EAEA,IAAIQ,cAAcA,CAAA,EAAa;IAC7B,MAAM;MAAE1B,WAAW;MAAEX;IAAM,CAAC,GAAG,IAAI;IACnC,MAAM;MAAEe,OAAO;MAAEuB;IAAmB,CAAC,GAAGtC,KAAK;IAE7C,IAAIsC,kBAAkB,YAAlBA,kBAAkB,CAAE3B,WAAW,IAAIA,WAAW,EAAE;MAClD,OAAOA,WAAW,CAAC0B,cAAc;IACnC;IAEA,OAAOtB,OAAO;EAChB;EAEA,IAAIoB,sBAAsBA,CAAA,EAAG;IAC3B,MAAM;MACJE,cAAc;MACdrC,KAAK,EAAE;QACLgB,eAAe,EAAE;UAAEuB,KAAK,EAAEvB;QAAgB;MAC5C;IACF,CAAC,GAAG,IAAI;IAER,OAAOqB,cAAc,CAACnC,MAAM,CAAEsC,MAAM,IAClCxB,eAAe,CAACyB,IAAI,CACjBC,cAAc,IACbA,cAAc,CAACC,EAAE,KAAKH,MAAM,CAACG,EAAE,IAAID,cAAc,CAACE,UACtD,CACF,CAAC;EACH;EAEA,MAAMZ,oBAAoBA,CAAA,EAAG;IAAA,IAAAa,kBAAA;IAC3B,MAAM;MAAE7C;IAAM,CAAC,GAAG,IAAI;IACtB,MAAM;MAAE8C,WAAW;MAAEC;IAAW,CAAC,GAAG/C,KAAK;;IAEzC;IACA,IAAI+C,UAAU,EAAE;MACd;IACF;IAEA,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,MAAMF,WAAW,CAACG,OAAO,CACvB/D,4BAA4B,EAAA2D,kBAAA,GAAC7C,KAAK,CAACkD,WAAW,qBAAjBL,kBAAA,CAAmBM,QAAQ,CAAC,EACzDnD,KAAK,CAACgB,eAAe,CAACuB,KACxB,CAAC;EACH;EAEQa,4BAA4BA,CAAA,EAAG;IACrC,MAAM;MAAEpD;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAACgB,eAAe,CAACqC,MAAM,CAACC,EAAE,CAAC,SAAS,EAAE,IAAI,CAACtB,oBAAoB,CAAC;IAErE,OAAO,MAAM;MACXhC,KAAK,CAACgB,eAAe,CAACqC,MAAM,CAACE,GAAG,CAAC,SAAS,EAAE,IAAI,CAACvB,oBAAoB,CAAC;IACxE,CAAC;EACH;EAEAJ,wBAAwBA,CAAC4B,aAA4B,EAAE;IACrD,IAAI,CAAC/B,qBAAqB,GAAG;MAAE+B;IAAc,CAAC;EAChD;EAEAzB,0BAA0BA,CAAA,EAAG;IAC3B,IAAI,CAACN,qBAAqB,GAAGhB,SAAS;EACxC;EAEAgD,eAAeA,CAAA,EAAG;IAChB,MAAM;MACJzD,KAAK,EAAE;QAAEe,OAAO;QAAEC,eAAe;QAAE0C,eAAe;QAAEpB;MAAmB,CAAC;MACxEqB;IACF,CAAC,GAAG,IAAI;IAER,MAAMC,aAAa,GACjB,CAACD,qBAAqB,IAAI,CAAC,CAAC3C,eAAe,CAACuB,KAAK,CAACsB,MAAM;IAE1D,MAAMC,0BAA0B,GAAG,CAAC,GAAG9C,eAAe,CAACuB,KAAK,CAAC;IAE7D,IAAI,CAAAD,kBAAkB,oBAAlBA,kBAAkB,CAAE3B,WAAW,KAAI,IAAI,EAAE;MAC3C,OAAO,CACL,GAAGmD,0BAA0B,CAAC5D,MAAM,CAAE6D,CAAC,IACrChD,OAAO,CAACiD,KAAK,CAAEC,CAAC,IAAKF,CAAC,CAACpB,EAAE,KAAKsB,CAAC,CAACtB,EAAE,CACpC,CAAC,EACD,GAAG5B,OAAO,CAACmD,GAAG,CAAED,CAAC,IAAK;QACpB,MAAME,QAAQ,GAAGnD,eAAe,CAACuB,KAAK,CAAC6B,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACpB,EAAE,KAAKsB,CAAC,CAACtB,EAAE,CAAC;QACjE,IAAIwB,QAAQ,IAAI,IAAI,EAAE;UACpB,OAAOT,eAAe,CAACO,CAAC,CAAC;QAC3B;QAEA,OAAO;UACL,GAAGE,QAAQ;UACXvB,UAAU,EACRqB,CAAC,CAACI,QAAQ,KAAK,KAAK,IACpBJ,CAAC,CAACK,gCAAgC,IAClCH,QAAQ,CAACvB;QACb,CAAC;MACH,CAAC,CAAC,CACH;IACH;IAEA,MAAM2B,WAAW,GAAGxD,OAAO,CACxBb,MAAM,CAAE+D,CAAC,IAAKjD,eAAe,CAACuB,KAAK,CAACyB,KAAK,CAAED,CAAC,IAAKA,CAAC,CAACpB,EAAE,KAAKsB,CAAC,CAACtB,EAAE,CAAC,CAAC,CAChEuB,GAAG,CAAED,CAAC,IACLP,eAAe,CAAC;MACd,GAAGO,CAAC;MACJL,aAAa,EAAEA,aAAa,IAAIK,CAAC,CAACL;IACpC,CAAC,CACH,CAAC;IAEH,MAAMY,OAAO,GAAG,IAAI,CAAC/C,qBAAqB;IAC1C,IAAIgD,YAA2B,GAAG,IAAI;IACtC,IAAID,OAAO,EAAE;MACX,IAAI,CAACzC,0BAA0B,CAAC,CAAC;MACjC,IAAIyC,OAAO,CAAChB,aAAa,IAAI,IAAI,EAAE;QACjCiB,YAAY,GAAG,CAAC;MAClB,CAAC,MAAM;QACL,MAAMC,UAAU,GAAGZ,0BAA0B,CAACa,SAAS,CACpDV,CAAC,IAAKA,CAAC,CAACtB,EAAE,KAAK6B,OAAO,CAAChB,aAC1B,CAAC;QACDiB,YAAY,GAAGC,UAAU,KAAK,CAAC,CAAC,GAAG,IAAI,GAAGA,UAAU,GAAG,CAAC;MAC1D;IACF;;IAEA;IACA;IACAH,WAAW,CAACK,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MAC5B,IAAIL,YAAY,IAAI,IAAI,EAAE;QACxBX,0BAA0B,CAACiB,MAAM,CAACN,YAAY,GAAGK,CAAC,EAAE,CAAC,EAAED,CAAC,CAAC;QACzD;MACF;MACA,MAAMG,aAAa,GAAGjE,OAAO,CAAC4D,SAAS,CAAEV,CAAC,IAAKA,CAAC,CAACtB,EAAE,KAAKkC,CAAC,CAAClC,EAAE,CAAC;MAC7D,MAAMsC,OAAO,GAAGD,aAAa,GAAG,CAAC,GAAGjE,OAAO,CAACiE,aAAa,GAAG,CAAC,CAAC,CAACrC,EAAE,GAAG,IAAI;MACxE,MAAM+B,UAAU,GACdO,OAAO,IAAI,IAAI,GACXnB,0BAA0B,CAACa,SAAS,CAAEV,CAAC,IAAKA,CAAC,CAACtB,EAAE,KAAKsC,OAAO,CAAC,GAAG,CAAC,GACjED,aAAa,KAAK,CAAC,GACnB,CAAC,GACDlB,0BAA0B,CAACD,MAAM;MACvCC,0BAA0B,CAACiB,MAAM,CAACL,UAAU,EAAE,CAAC,EAAEG,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,IAAI,CAAClB,qBAAqB,GAAG,IAAI;IACjC,OAAOG,0BAA0B;EACnC;EAEAoB,qBAAqBA,CAAC;IAAEC;EAAyC,CAAC,EAAE;IAClE,MAAM;MACJxE,WAAW;MACXX,KAAK,EAAE;QACLgB,eAAe,EAAE;UAAEuB,KAAK,EAAEvB;QAAgB;MAC5C;IACF,CAAC,GAAG,IAAI;IAER,IAAIL,WAAW,IAAI,IAAI,EAAE;MACvB,OAAOwE,aAAa;IACtB;IAEA,MAAM;MAAEC,eAAe,EAAEC;IAAuB,CAAC,GAC/C1E,WAAW,CAAC2E,+BAA+B;IAE7C,IAAI,CAACD,sBAAsB,CAACxB,MAAM,EAAE;MAClC,OAAOsB,aAAa;IACtB;IAEA,OAAOxE,WAAW,CAAC2E,+BAA+B,CAACF,eAAe,CAAClF,MAAM,CACtEsC,MAAM,IACLxB,eAAe,CAACyB,IAAI,CACjBC,cAAc,IACbA,cAAc,CAACC,EAAE,KAAKH,MAAM,CAACG,EAAE,IAAID,cAAc,CAACE,UACtD,CACJ,CAAC,CAACiB,MAAM;EACV;EAEA,IAAI5B,iBAAiBA,CAAA,EAAG;IACtB,MAAM;MACJsD,MAAM;MACNvF,KAAK,EAAE;QACLgB,eAAe,EAAE;UAAEuB;QAAM;MAC3B;IACF,CAAC,GAAG,IAAI;IAER,OAAOA,KAAK,CAAC2B,GAAG,CAAC,CAAC;MAAEvB;IAAG,CAAC,MAAM;MAC5BA,EAAE;MACFC,UAAU,EAAE2C,MAAM,CAACC,SAAS,CAAC7C,EAAE;IACjC,CAAC,CAAC,CAAC;EACL;EAEA,IAAI8C,gBAAgBA,CAAA,EAAG;IACrB,MAAM;MACJxD,iBAAiB;MACjBjC,KAAK,EAAE;QACLgB,eAAe,EAAE;UAAEuB;QAAM;MAC3B;IACF,CAAC,GAAG,IAAI;IAER,IAAIA,KAAK,CAACsB,MAAM,KAAK5B,iBAAiB,CAAC4B,MAAM,EAAE;MAC7C,OAAO,IAAI;IACb;IAEA,KAAK,IAAIiB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvC,KAAK,CAACsB,MAAM,EAAEiB,CAAC,EAAE,EAAE;MACrC,MAAMY,CAAC,GAAGnD,KAAK,CAACuC,CAAC,CAAC;MAClB,MAAMa,CAAC,GAAG1D,iBAAiB,CAAC6C,CAAC,CAAC;MAE9B,IAAIY,CAAC,CAAC/C,EAAE,KAAKgD,CAAC,CAAChD,EAAE,IAAI+C,CAAC,CAAC9C,UAAU,KAAK+C,CAAC,CAAC/C,UAAU,EAAE;QAClD,OAAO,IAAI;MACb;IACF;IAEA,OAAO,KAAK;EACd;EAEAR,IAAIA,CAAA,EAAG;IAAA,IAAAwD,iBAAA,EAAAC,qBAAA;IACL,MAAM;MAAE7F;IAAM,CAAC,GAAG,IAAI;IACtBA,KAAK,CAAC8F,6BAA6B,GAAG,IAAI;IAE1C,MAAMC,SAAS,GAAG,CAChB,IAAAC,cAAQ,EACN,MAAM,IAAI,CAAChG,KAAK,CAACgB,eAAe,CAACuB,KAAK,EACtC,MAAOvB,eAAe,IAAK;MACzB,MAAM;QAAEuE;MAAO,CAAC,GAAG,IAAI;MAEvBA,MAAM,CAACU,KAAK,CAAC,CAAC;MACdV,MAAM,CAACW,YAAY,CACjBlF,eAAe,CAACkD,GAAG,CAAC,CAAC;QAAEvB,EAAE;QAAEC;MAAW,CAAC,MAAM;QAC3CL,KAAK,EAAE;UAAEI;QAAG,CAAC;QACbwD,MAAM,EAAEvD,UAAU,GAAG2C,MAAM,CAACa,WAAW,GAAGb,MAAM,CAACc;MACnD,CAAC,CAAC,CACJ,CAAC;MACD,MAAM,IAAI,CAACC,cAAc,CAAC,CAAC;IAC7B,CAAC,EACD;MACEC,eAAe,EAAE;IACnB,CACF,CAAC,EACD,IAAAP,cAAQ,EACN,MAAM,IAAI,CAACT,MAAM,CAACiB,cAAc,EAChC,MAAM;MACJ,MAAM;QACJxG,KAAK,EAAE;UAAEgB;QAAgB;MAC3B,CAAC,GAAG,IAAI;MAER,IAAI,CAAC,IAAI,CAACyE,gBAAgB,EAAE;QAC1B;MACF;MAEAzE,eAAe,CAACyF,QAAQ,CAAC,IAAI,CAACxE,iBAAiB,EAAE;QAC/CyE,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS;MACnD,CAAC,CAAC;IACJ,CACF,CAAC,EAED,IAAI,CAACtD,4BAA4B,CAAC,CAAC,EACnC,IAAI,CAACuD,iBAAiB,CAACvE,IAAI,CAAC,CAAC,GAAAwD,iBAAA,GAC7B,IAAI,CAACjF,WAAW,qBAAhBiF,iBAAA,CAAkBxD,IAAI,CAAC,CAAC,GAAAyD,qBAAA,GACxB,IAAI,CAAC1E,oBAAoB,qBAAzB0E,qBAAA,CAA2BzD,IAAI,CAAC,CAAC,EACjC,IAAA4D,cAAQ,EACN;MAAA,IAAAY,qBAAA;MAAA,QAAAA,qBAAA,GAAM,IAAI,CAAC5G,KAAK,CAACkD,WAAW,qBAAtB0D,qBAAA,CAAwBzD,QAAQ;IAAA,GACtC,OAAO0D,SAAS,EAAEC,UAAU,KAAK;MAC/B,IAAI,CAACD,SAAS,IAAI,CAACC,UAAU,IAAID,SAAS,KAAKC,UAAU,EAAE;QACzD;MACF;MACA,IAAI,IAAI,CAAC9G,KAAK,CAAC+G,oBAAoB,KAAKF,SAAS,EAAE;QACjD;MACF;MACA;MACA,IAAI,IAAI,CAAC7G,KAAK,CAAC+C,UAAU,EAAE;QACzB;MACF;MACA,MAAMiE,MAAM,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAAC,CAAC;MACnD,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,CAAChH,KAAK,CAACgB,eAAe,CAACkG,KAAK,CAAC,CAAC;MACpC,CAAC,MAAM;QACL,MAAM,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAChC;IACF,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXpB,SAAS,CAACnB,OAAO,CAAEwC,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,MAAMH,uBAAuBA,CAAA,EAAG;IAC9B,MAAM;MAAEnE;IAAY,CAAC,GAAG,IAAI,CAAC9C,KAAK;IAClC,IAAI;MAAA,IAAAqH,sBAAA;MACF,MAAMC,WAAW,GAAG,MAAMlI,qBAAqB,CAC7C,MAAM0D,WAAW,CAACyE,OAAO,CACvBrI,4BAA4B,EAAAmI,sBAAA,GAAC,IAAI,CAACrH,KAAK,CAACkD,WAAW,qBAAtBmE,sBAAA,CAAwBlE,QAAQ,CAC/D,CACF,CAAC;MACD,IAAI,CAACH,QAAQ,GAAGsE,WAAW,IAAI,IAAI;MACnC,OAAOA,WAAW;IACpB,CAAC,CAAC,OAAOE,CAAC,EAAE;MACV,IAAIA,CAAC,YAAYC,KAAK,IAAID,CAAC,CAACE,OAAO,KAAK,8BAA8B,EAAE;QACtE,OAAO,IAAI;MACb;MAEA,MAAMF,CAAC;IACT;EACF;EAEAG,UAAUA,CAAA,EAAG;IACX,MAAM;MACJC,QAAQ;MACR5H,KAAK,EAAE;QACL6H,KAAK,EAAE;UAAEC;QAAY;MACvB;IACF,CAAC,GAAG,IAAI;IACRF,QAAQ,CAACG,OAAO,CAAC,YAAY;MAC3B,IAAI;QACF,MAAMC,2BAA2B,GAC/B,IAAI,CAAC3E,MAAM,CAAC4E,SAAS,CAAC,oBAAoB,CAAC;QAC7C,MAAMC,OAAO,CAACC,GAAG,CAACH,2BAA2B,CAAC9D,GAAG,CAAEkE,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,CAACjB,iBAAiB,CAAC,CAAC;MAChC,CAAC,CAAC,OAAOK,CAAC,EAAE;QACVa,OAAO,CAACC,KAAK,CAACd,CAAC,CAAC;MAClB;IACF,CAAC,CAAC;IAEFM,WAAW,CAAClD,OAAO,CAAE3E,UAAU,IAAK;MAClC,IAAIA,UAAU,CAACsI,KAAK,CAACC,sBAAsB,EAAE;QAC3CvI,UAAU,CAACwI,KAAK,CAACC,WAAW,CAC1B,oBAAoB,EACpB,MAAMd,QAAQ,CAACzB,MAAM,CAACwC,OACxB,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EAEA,MAAMxB,iBAAiBA,CAAA,EAAG;IAAA,IAAAyB,qBAAA;IACxB,MAAM;MACJ5I,KAAK,EAAE;QACL+C,UAAU;QACVhC,OAAO;QACPC,eAAe;QACfsB,kBAAkB;QAClBoB;MACF;IACF,CAAC,GAAG,IAAI;IAER,IAAIX,UAAU,EAAE;MACd;IACF;IAEA,IACET,kBAAkB,aAAAsG,qBAAA,GAAlBtG,kBAAkB,CAAEnB,oBAAoB,aAAxCyH,qBAAA,CAA0CC,6BAA6B,EACvE;MACA;IACF;IAEA,MAAMC,mBAAmB,GAAG,MAAM,IAAI,CAAC7B,uBAAuB,CAAC,CAAC;IAEhE,IAAI6B,mBAAmB,IAAI,IAAI,EAAE;MAC/B;IACF;IAEA,MAAMC,0BAA0B,GAAGhI,OAAO,CAACmD,GAAG,CAAE8E,WAAW,IAAK;MAC9D,MAAM7E,QAAQ,GAAG2E,mBAAmB,CAAC1E,IAAI,CACtCH,CAAC,IAAK,CAAAA,CAAC,oBAADA,CAAC,CAAEtB,EAAE,MAAKqG,WAAW,CAACrG,EAC/B,CAAC;;MAED;MACA,IAAIwB,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAOT,eAAe,CAACsF,WAAW,CAAC;MACrC;;MAEA;MACA,MAAM;QAAErG,EAAE;QAAEsG,IAAI;QAAE5E,QAAQ;QAAEC;MAAiC,CAAC,GAC5D0E,WAAW;MAEb,OAAO;QACLrG,EAAE;QACFsG,IAAI;QACJrG,UAAU,EACRkG,mBAAmB,CAACrG,IAAI,CACrBwB,CAAC,IAAK,CAAAA,CAAC,oBAADA,CAAC,CAAEtB,EAAE,MAAKA,EAAE,IAAI,CAAAsB,CAAC,oBAADA,CAAC,CAAErB,UAAU,MAAK,KAC3C,CAAC,IACD,CAACyB,QAAQ,IACTC,gCAAgC,KAAK;MACzC,CAAC;IACH,CAAC,CAAC;IAEFtD,eAAe,CAACyF,QAAQ,CACtBnE,kBAAkB,YAAlBA,kBAAkB,CAAE3B,WAAW,GAC3BoI,0BAA0B,CAACG,IAAI,CAC7B,IAAAC,kCAAgB,EAACL,mBAAmB,EAAGtB,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAE7E,EAAE,CACpD,CAAC,GACDoG,0BACN,CAAC;EACH;EAEAK,6BAA6BA,CAAC;IAC5BC;EAGF,CAAC,EAAE;IACD,IAAI,IAAI,CAACC,8BAA8B,CAACC,GAAG,CAACF,UAAU,CAAC,EAAE;MACvD;IACF;IACA,IAAI,CAACC,8BAA8B,CAACE,GAAG,CAACH,UAAU,EAAE,IAAI,CAAC;IACzD,IAAI,CAACrJ,KAAK,CAACyJ,QAAQ,CACjB,IAAAC,wBAAe,EAACC,oCAAgC,CAAC,CAAC;MAChDN;IACF,CAAC,CACH,CAAC;EACH;EAEA,IAAIO,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC5J,KAAK,CAAC4J,kBAAkB;EACtC;EAEA,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC7J,KAAK,CAAC8J,sBAAsB;EAC1C;EAEA,IAAIC,mBAAmBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAAC/J,KAAK,CAACgK,SAAS,CAACC,UAAU;EACxC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAAClK,KAAK,CAACyJ,QAAQ,CACjB,IAAAC,wBAAe,EAACS,yBAAqB,CAAC,CAAC;MACrCC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE,gBAAgB;MACzBC,MAAM,EAAE;IACV,CAAC,CACH,CAAC;IACD,IAAI,CAACtK,KAAK,CAACgK,SAAS,CAACO,KAAK,CAAC,CAAC;EAC9B;AACF;AAACvL,OAAA,CAAAQ,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","_CustomColumnsPanelStateBase","CUSTOM_COLUMNS_KEY","exports","SPREADSHEET_CUSTOM_COLUMNS_KEY","getCustomColumnsKeyForLayout","layout","asText","content","undefined","toPanelRow","column","_column$infoTooltipPr","_column$infoTooltipPr2","_column$validation","id","name","title","fieldType","infoText","infoTooltipProps","panelContent","isPrimary","isPii","isSystem","appFieldEditable","dataExtension","editable","required","validation","some","rule","type","hideable","reorderDisabled","hiddenFromCustomColumnsSelection","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","CustomColumnsPanelStateBase","constructor","params","container","queryName","environment","componentId","table","collection","filter","Boolean","join","_defineProperty2","default","Map","TaskState","EventEmitter","dragAndDrop","CustomColumnsDragAndDropState","customColumns","dataSource","columns","selectedColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","initBaseObservables","makeObservable","pendingInsertPosition","observable","ref","setPendingInsertPosition","action","bound","clearPendingInsertPosition","persistCustomColumns","toSelectedColumns","computed","selectedOrderedColumns","init","orderedColumns","customColumnsState","value","selectedColumn","isSelected","_table$layoutState","dataCapsule","viewsProps","_touched","setItem","layoutState","viewType","registerSelectedColumnChange","events","on","off","afterColumnId","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","diffColumns","pending","pendingIndex","afterIndex","findIndex","forEach","d","i","splice","originalIndex","afterId","getStickyColumnsCount","stickyColumns","reorderDisabledColumns","orderedColumnsByReorderDisabled","select","isChecked","selectionChanged","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","refreshColumns","fireImmediately","selectedValues","setValue","emitEvents","equals","comparer","structural","columnsCollection","_this$table$layoutSta","newLayout","prevLayout","_cacheRestoredLayout","stored","_getStoredCustomColumns","reset","_fetchFromStorage","disposer","_this$table$layoutSta2","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","console","error","query","refreshOnColumnsChange","hooks","addListener","promise","_customColumnsState$c","hasUrlColumnsForCurrentLayout","storedCustomColumns","selectedColumnsFromStorage","tableColumn","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","showFieldTypeIcons","manageFieldsSource","collectionFieldsSource","sidePanelTransition","sidePanel","transition","onClose","cairoFiltersPanelUsed","isOpened","feature","origin","close"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n FiltersMap,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n} from '@wix/bex-core';\nimport {\n action,\n comparer,\n computed,\n makeObservable,\n observable,\n reaction,\n} from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column, ViewType } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport {\n cairoCustomizeColumnsInSidePanel,\n cairoFiltersPanelUsed,\n} from '@wix/bex-core/bi';\nimport type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';\nimport { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';\n\nexport type { CustomColumnsDragAndDropState };\n\nexport type CustomColumnsPanelState<\n T = unknown,\n F extends FiltersMap = FiltersMap,\n> = CustomColumnsPanelStateBase<T, F>;\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\n// Legacy `custom-columns` stays bound to non-spreadsheet layouts so existing\n// stored values keep their meaning; spreadsheet uses a sibling key.\nexport const CUSTOM_COLUMNS_KEY = 'custom-columns';\nexport const SPREADSHEET_CUSTOM_COLUMNS_KEY = 'spreadsheet-custom-columns';\n\nconst getCustomColumnsKeyForLayout = (layout: ViewType | undefined): string =>\n layout === 'spreadsheet'\n ? SPREADSHEET_CUSTOM_COLUMNS_KEY\n : CUSTOM_COLUMNS_KEY;\n\nconst asText = (content: unknown) =>\n typeof content === 'string' ? content : undefined;\n\nconst toPanelRow = (column: Column) => ({\n id: column.id,\n name: column.name || asText(column.title),\n fieldType: column.fieldType,\n infoText: asText(\n column.infoTooltipProps?.panelContent || column.infoTooltipProps?.content,\n ),\n isPrimary: column.isPrimary,\n isPii: column.isPii,\n isSystem: column.isSystem,\n appFieldEditable: column.dataExtension\n ? !!column.dataExtension.editable\n : undefined,\n required: column.validation?.some((rule) => rule.type === 'required'),\n hideable: column.hideable,\n reorderDisabled: column.reorderDisabled,\n hiddenFromCustomColumnsSelection: column.hiddenFromCustomColumnsSelection,\n});\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: import('@wix/bex-core').WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<\n T,\n F extends FiltersMap,\n> extends CustomColumnsPanelStateBase<T, F> {\n readonly table;\n\n readonly dragAndDrop: CustomColumnsDragAndDropState<T, F> | undefined;\n\n readonly customColumnsHistory;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n /** Where the next new column goes. `afterColumnId: null` means the start.\n * Consumed by the next `mergeNewColumns`. */\n pendingInsertPosition: { afterColumnId: string | null } | undefined =\n undefined;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n super({\n container: params.container,\n queryName: [\n params.container.environment.componentId,\n params.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n });\n\n this.table = params.table;\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n dataSource: {\n get columns() {\n return params.table.columns;\n },\n selectedColumns: params.table.selectedColumns,\n },\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n this.initBaseObservables();\n makeObservable(this, {\n pendingInsertPosition: observable.ref,\n setPendingInsertPosition: action.bound,\n clearPendingInsertPosition: action.bound,\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem(\n getCustomColumnsKeyForLayout(table.layoutState?.viewType),\n table.selectedColumns.value,\n );\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n setPendingInsertPosition(afterColumnId: string | null) {\n this.pendingInsertPosition = { afterColumnId };\n }\n\n clearPendingInsertPosition() {\n this.pendingInsertPosition = undefined;\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n const pending = this.pendingInsertPosition;\n let pendingIndex: number | null = null;\n if (pending) {\n this.clearPendingInsertPosition();\n if (pending.afterColumnId == null) {\n pendingIndex = 0;\n } else {\n const afterIndex = mergeTargetSelectedColumns.findIndex(\n (c) => c.id === pending.afterColumnId,\n );\n pendingIndex = afterIndex === -1 ? null : afterIndex + 1;\n }\n }\n\n // place new columns where the user picked, or according to their order in\n // the original columns prop\n diffColumns.forEach((d, i) => {\n if (pendingIndex != null) {\n mergeTargetSelectedColumns.splice(pendingIndex + i, 0, d);\n return;\n }\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await this.refreshColumns();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n reaction(\n () => this.table.columns.map(toPanelRow),\n () => void this.refreshColumns(),\n { equals: comparer.structural },\n ),\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n reaction(\n () => this.table.layoutState?.viewType,\n async (newLayout, prevLayout) => {\n if (!newLayout || !prevLayout || newLayout === prevLayout) {\n return;\n }\n if (this.table._cacheRestoredLayout === newLayout) {\n return;\n }\n // Views path is handled by CollectionViewsState's own reaction.\n if (this.table.viewsProps) {\n return;\n }\n const stored = await this._getStoredCustomColumns();\n if (stored == null) {\n this.table.selectedColumns.reset();\n } else {\n await this._fetchFromStorage();\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem(\n getCustomColumnsKeyForLayout(this.table.layoutState?.viewType),\n ),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.hooks.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (\n customColumnsState?.customColumnsHistory?.hasUrlColumnsForCurrentLayout\n ) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n\n get showFieldTypeIcons() {\n return this.table.showFieldTypeIcons;\n }\n\n get manageFieldsSource() {\n return this.table.collectionFieldsSource;\n }\n\n get sidePanelTransition() {\n return this.table.sidePanel.transition;\n }\n\n onClose() {\n this.table.reportBi(\n withoutDefaults(cairoFiltersPanelUsed)({\n isOpened: false,\n feature: 'Custom Columns',\n origin: 'X Button',\n }),\n );\n this.table.sidePanel.close();\n }\n}\n"],"mappings":"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","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_ = "FormPageHeader1471415525";
|
|
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": "FormPageHeader1471415525__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader1471415525\";\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\":\"FormPageHeader1471415525__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -224,12 +224,14 @@ class GridBaseState {
|
|
|
224
224
|
itemsContentHeight
|
|
225
225
|
},
|
|
226
226
|
_sizeProps: {
|
|
227
|
-
rowHeightFixed
|
|
227
|
+
rowHeightFixed,
|
|
228
|
+
rowHeightIncludingGap
|
|
228
229
|
}
|
|
229
230
|
} = this;
|
|
230
231
|
const overscanCount = Math.round(itemsContentHeight / rowHeightFixed * 1.5);
|
|
231
232
|
return {
|
|
232
233
|
...this._sizeProps,
|
|
234
|
+
estimatedRowHeight: rowHeightIncludingGap(),
|
|
233
235
|
overscanCount
|
|
234
236
|
};
|
|
235
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_RectState","_ResponsiveColumnsState","GridBaseState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_params$range","_params$range2","_defineProperty2","default","undefined","origin","toolbar","toolbarBIReporter","onAddItemClick","items","onAddItemActionComplete","container","collection","parentState","layoutType","_containerRectState","RectState","_draggable","draggable","_responsiveColumnsState","ResponsiveColumnsState","gridState","minItemWidth","rectState","_sizePreset","sizePreset","_localLimit","range","length","_localStart","start","makeObservable","trailingItemsCount","observable","ref","forceRenderIndexes","preset","computed","itemsToRenderCount","itemsToRender","rowCount","isInteracting","calcGridProps","columnsCount","_sizeProps","itemKeyRecyclerOverride","itemsContentWidth","containerPaddingTop","gap","imagePlacement","contentPadding","aspectRatio","footerHeights","_this$_dnd","isDisabled","window","result","keyedItems","itemsCount","Math","min","fetchedLastPage","floor","reportBi","columnCount","containerRect","ceil","_this$_dnd2","_this$_dnd3","isActive","isDropping","Array","fill","getItemRenderTypeAt","index","indexInCollection","errorMonitor","responsiveColumnCount","width","widthWithLastColumnGap","widthWithoutGaps","columnWidth","cardFooterSize","cardFooterHeight","cardTopImageHeight","rowHeight","columnWidthIncludingGap","rowHeightIncludingGap","rowHeightFixed","itemsContentHeight","overscanCount","round","getCollectionSnapshot","_keyedItems$index","key","dragAndDropCategories","listAttributes","_this$_dnd4","nullAnnouncements","role","_subscribe","_subGrids","push","i","indexOf","splice","init","exports"],"sources":["../../../src/state/GridBaseState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { computed, makeObservable, observable } from 'mobx';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { RectState } from './RectState';\nimport { GridSizePreset } from './gridSizePresets';\nimport { ResponsiveColumnsState } from './ResponsiveColumnsState';\nimport { GridParentState } from './GridParentState';\nimport type { Preset } from '../components/Grid/Grid.types';\n\nexport type LayoutType = 'grid' | 'list';\n\nexport interface GridBaseStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar: ToolbarCollectionState<any, Partial<F>>;\n readonly sizePreset: GridSizePreset;\n readonly range?: { start: number; length: number };\n readonly layoutType: LayoutType | undefined;\n readonly parentState: GridParentState<T, F>;\n readonly draggable?: 'none' | 'draggable';\n}\n\nexport interface GridBaseStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport class GridBaseState<T, F extends FiltersMap> {\n readonly toolbar;\n readonly container;\n readonly collection;\n readonly _containerRectState;\n readonly _responsiveColumnsState;\n readonly parentState;\n _sizePreset;\n layoutType;\n\n trailingItemsCount = 0;\n minItemWidth = 196;\n smallCardWidthThreshold = 200;\n preset: Preset = 'title';\n _draggable: 'none' | 'draggable' = 'none';\n _localLimit: number | null | undefined;\n _localStart: number;\n forceRenderIndexes: number[] | undefined = undefined;\n\n collectionDragAndDropState: CollectionDragAndDropState<T, F> | null = null;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n constructor(params: GridBaseStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n this.parentState = params.parentState;\n this.layoutType = params.layoutType ?? 'grid';\n this._containerRectState = new RectState({\n container: this.container,\n });\n this._draggable = params.draggable ?? 'none';\n this.toolbar = params.toolbar as ToolbarCollectionState<\n unknown,\n Partial<F>\n >;\n this._responsiveColumnsState = new ResponsiveColumnsState({\n gridState: this,\n minItemWidth: this.minItemWidth,\n rectState: this._containerRectState,\n });\n this._sizePreset = params.sizePreset;\n this._localLimit = params.range?.length;\n this._localStart = params.range?.start ?? 0;\n\n makeObservable(this, {\n trailingItemsCount: observable.ref,\n forceRenderIndexes: observable.ref,\n preset: observable.ref,\n _draggable: observable.ref,\n draggable: computed,\n itemsToRenderCount: computed,\n itemsToRender: computed,\n rowCount: computed,\n isInteracting: computed,\n calcGridProps: computed,\n columnsCount: computed,\n _sizeProps: computed,\n itemKeyRecyclerOverride: computed,\n _localLimit: observable.ref,\n _localStart: observable.ref,\n itemsContentWidth: computed,\n containerPaddingTop: computed,\n gap: computed,\n _sizePreset: observable.ref,\n layoutType: observable.ref,\n });\n }\n\n get sizePreset() {\n return this.parentState._sizePreset ?? this._sizePreset;\n }\n\n get imagePlacement() {\n return this.sizePreset.imagePlacement;\n }\n\n get gap() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 12;\n }\n\n return 24;\n }\n\n get containerPaddingTop() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 0;\n }\n\n return this.toolbar.contentPadding;\n }\n\n get aspectRatio() {\n return this.sizePreset.aspectRatio;\n }\n\n get footerHeights() {\n return this.sizePreset.footerHeights;\n }\n\n get itemsContentWidth() {\n return this._responsiveColumnsState.itemsContentWidth;\n }\n\n get draggable() {\n if (this._dnd?.isDisabled) {\n return 'none' as const;\n }\n return this._draggable;\n }\n\n get window() {\n return this.container.window;\n }\n\n get itemsToRenderCount() {\n const { collection, trailingItemsCount, _localLimit, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n const itemsCount =\n _localLimit != null\n ? Math.min(_localLimit, keyedItems.length)\n : keyedItems.length;\n\n return collection.fetchedLastPage ||\n (_localLimit != null && _localStart + _localLimit < keyedItems.length)\n ? itemsCount + trailingItemsCount\n : itemsCount - Math.floor(itemsCount % this.columnsCount);\n }\n\n get reportBi() {\n return this.toolbar.reportBi;\n }\n\n get columnsCount() {\n return this.calcGridProps.columnCount;\n }\n\n get containerRect() {\n return this.toolbar.containerRect;\n }\n\n get rowCount() {\n const { itemsToRenderCount, columnsCount } = this;\n\n return Math.ceil(itemsToRenderCount / columnsCount);\n }\n\n get isInteracting() {\n return this._dnd?.isActive || this._dnd?.isDropping;\n }\n\n get itemsToRender(): null[] {\n const { itemsToRenderCount } = this;\n return new Array(itemsToRenderCount).fill(null);\n }\n\n getItemRenderTypeAt(index: number) {\n const { collection, itemsToRenderCount, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n if (index >= itemsToRenderCount) {\n return null;\n }\n\n const indexInCollection = index + _localStart;\n\n if (indexInCollection >= keyedItems.length) {\n return 'trailing';\n }\n\n return keyedItems[indexInCollection];\n }\n\n get errorMonitor() {\n return this.container.errorMonitor;\n }\n\n get _sizeProps() {\n const {\n aspectRatio,\n preset,\n draggable,\n _responsiveColumnsState: {\n gap,\n columnCount: responsiveColumnCount,\n itemsContentWidth: width,\n widthWithLastColumnGap,\n },\n layoutType,\n } = this;\n\n const columnCount = layoutType === 'list' ? 1 : responsiveColumnCount;\n\n const widthWithoutGaps = width - (columnCount - 1) * gap;\n const columnWidth = widthWithoutGaps / columnCount;\n\n const cardFooterSize = 'small' as const;\n\n const cardFooterHeight =\n this.footerHeights[preset][draggable][cardFooterSize];\n const cardTopImageHeight = columnWidth * aspectRatio;\n const rowHeight =\n cardTopImageHeight + (cardFooterHeight > 0 ? cardFooterHeight + 1 : 0);\n\n const columnWidthIncludingGap = widthWithLastColumnGap / columnCount;\n const rowHeightIncludingGap = rowHeight + gap;\n\n return {\n columnCount,\n columnWidth: () => columnWidth,\n columnWidthIncludingGap: () => columnWidthIncludingGap,\n rowHeight: () => rowHeight,\n rowHeightFixed: rowHeight,\n cardTopImageHeight,\n rowHeightIncludingGap: () => rowHeightIncludingGap,\n cardFooterHeight,\n cardFooterSize,\n };\n }\n\n get calcGridProps() {\n const {\n toolbar: { itemsContentHeight },\n _sizeProps: { rowHeightFixed },\n } = this;\n\n const overscanCount = Math.round(\n (itemsContentHeight / rowHeightFixed) * 1.5,\n );\n\n return {\n ...this._sizeProps,\n overscanCount,\n };\n }\n\n get getCollectionSnapshot() {\n return this.toolbar.getCollectionSnapshot;\n }\n\n onAddItemClick = (origin?: string) => {\n this.toolbar.toolbarBIReporter.onAddItemClick(origin);\n };\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n get itemKeyRecyclerOverride() {\n const { collection } = this;\n const {\n result: { keyedItems },\n } = collection;\n return (index: number) => {\n return keyedItems[index]?.key ?? index;\n };\n }\n\n get dragAndDropCategories() {\n return this.toolbar.dragAndDropCategories;\n }\n\n get listAttributes() {\n return {\n ...this._dnd?.nullAnnouncements.listAttributes?.(),\n role: 'list',\n };\n }\n\n _subscribe() {\n const {\n parentState: { _subGrids },\n } = this;\n\n if (!_subGrids) {\n return;\n }\n\n _subGrids.push(this);\n\n return () => {\n const i = _subGrids.indexOf(this);\n i !== -1 && _subGrids.splice(i, 1);\n };\n }\n\n init() {\n return this._subscribe();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_RectState","_ResponsiveColumnsState","GridBaseState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_params$range","_params$range2","_defineProperty2","default","undefined","origin","toolbar","toolbarBIReporter","onAddItemClick","items","onAddItemActionComplete","container","collection","parentState","layoutType","_containerRectState","RectState","_draggable","draggable","_responsiveColumnsState","ResponsiveColumnsState","gridState","minItemWidth","rectState","_sizePreset","sizePreset","_localLimit","range","length","_localStart","start","makeObservable","trailingItemsCount","observable","ref","forceRenderIndexes","preset","computed","itemsToRenderCount","itemsToRender","rowCount","isInteracting","calcGridProps","columnsCount","_sizeProps","itemKeyRecyclerOverride","itemsContentWidth","containerPaddingTop","gap","imagePlacement","contentPadding","aspectRatio","footerHeights","_this$_dnd","isDisabled","window","result","keyedItems","itemsCount","Math","min","fetchedLastPage","floor","reportBi","columnCount","containerRect","ceil","_this$_dnd2","_this$_dnd3","isActive","isDropping","Array","fill","getItemRenderTypeAt","index","indexInCollection","errorMonitor","responsiveColumnCount","width","widthWithLastColumnGap","widthWithoutGaps","columnWidth","cardFooterSize","cardFooterHeight","cardTopImageHeight","rowHeight","columnWidthIncludingGap","rowHeightIncludingGap","rowHeightFixed","itemsContentHeight","overscanCount","round","estimatedRowHeight","getCollectionSnapshot","_keyedItems$index","key","dragAndDropCategories","listAttributes","_this$_dnd4","nullAnnouncements","role","_subscribe","_subGrids","push","i","indexOf","splice","init","exports"],"sources":["../../../src/state/GridBaseState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { computed, makeObservable, observable } from 'mobx';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { RectState } from './RectState';\nimport { GridSizePreset } from './gridSizePresets';\nimport { ResponsiveColumnsState } from './ResponsiveColumnsState';\nimport { GridParentState } from './GridParentState';\nimport type { Preset } from '../components/Grid/Grid.types';\n\nexport type LayoutType = 'grid' | 'list';\n\nexport interface GridBaseStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar: ToolbarCollectionState<any, Partial<F>>;\n readonly sizePreset: GridSizePreset;\n readonly range?: { start: number; length: number };\n readonly layoutType: LayoutType | undefined;\n readonly parentState: GridParentState<T, F>;\n readonly draggable?: 'none' | 'draggable';\n}\n\nexport interface GridBaseStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport class GridBaseState<T, F extends FiltersMap> {\n readonly toolbar;\n readonly container;\n readonly collection;\n readonly _containerRectState;\n readonly _responsiveColumnsState;\n readonly parentState;\n _sizePreset;\n layoutType;\n\n trailingItemsCount = 0;\n minItemWidth = 196;\n smallCardWidthThreshold = 200;\n preset: Preset = 'title';\n _draggable: 'none' | 'draggable' = 'none';\n _localLimit: number | null | undefined;\n _localStart: number;\n forceRenderIndexes: number[] | undefined = undefined;\n\n collectionDragAndDropState: CollectionDragAndDropState<T, F> | null = null;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n constructor(params: GridBaseStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n this.parentState = params.parentState;\n this.layoutType = params.layoutType ?? 'grid';\n this._containerRectState = new RectState({\n container: this.container,\n });\n this._draggable = params.draggable ?? 'none';\n this.toolbar = params.toolbar as ToolbarCollectionState<\n unknown,\n Partial<F>\n >;\n this._responsiveColumnsState = new ResponsiveColumnsState({\n gridState: this,\n minItemWidth: this.minItemWidth,\n rectState: this._containerRectState,\n });\n this._sizePreset = params.sizePreset;\n this._localLimit = params.range?.length;\n this._localStart = params.range?.start ?? 0;\n\n makeObservable(this, {\n trailingItemsCount: observable.ref,\n forceRenderIndexes: observable.ref,\n preset: observable.ref,\n _draggable: observable.ref,\n draggable: computed,\n itemsToRenderCount: computed,\n itemsToRender: computed,\n rowCount: computed,\n isInteracting: computed,\n calcGridProps: computed,\n columnsCount: computed,\n _sizeProps: computed,\n itemKeyRecyclerOverride: computed,\n _localLimit: observable.ref,\n _localStart: observable.ref,\n itemsContentWidth: computed,\n containerPaddingTop: computed,\n gap: computed,\n _sizePreset: observable.ref,\n layoutType: observable.ref,\n });\n }\n\n get sizePreset() {\n return this.parentState._sizePreset ?? this._sizePreset;\n }\n\n get imagePlacement() {\n return this.sizePreset.imagePlacement;\n }\n\n get gap() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 12;\n }\n\n return 24;\n }\n\n get containerPaddingTop() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 0;\n }\n\n return this.toolbar.contentPadding;\n }\n\n get aspectRatio() {\n return this.sizePreset.aspectRatio;\n }\n\n get footerHeights() {\n return this.sizePreset.footerHeights;\n }\n\n get itemsContentWidth() {\n return this._responsiveColumnsState.itemsContentWidth;\n }\n\n get draggable() {\n if (this._dnd?.isDisabled) {\n return 'none' as const;\n }\n return this._draggable;\n }\n\n get window() {\n return this.container.window;\n }\n\n get itemsToRenderCount() {\n const { collection, trailingItemsCount, _localLimit, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n const itemsCount =\n _localLimit != null\n ? Math.min(_localLimit, keyedItems.length)\n : keyedItems.length;\n\n return collection.fetchedLastPage ||\n (_localLimit != null && _localStart + _localLimit < keyedItems.length)\n ? itemsCount + trailingItemsCount\n : itemsCount - Math.floor(itemsCount % this.columnsCount);\n }\n\n get reportBi() {\n return this.toolbar.reportBi;\n }\n\n get columnsCount() {\n return this.calcGridProps.columnCount;\n }\n\n get containerRect() {\n return this.toolbar.containerRect;\n }\n\n get rowCount() {\n const { itemsToRenderCount, columnsCount } = this;\n\n return Math.ceil(itemsToRenderCount / columnsCount);\n }\n\n get isInteracting() {\n return this._dnd?.isActive || this._dnd?.isDropping;\n }\n\n get itemsToRender(): null[] {\n const { itemsToRenderCount } = this;\n return new Array(itemsToRenderCount).fill(null);\n }\n\n getItemRenderTypeAt(index: number) {\n const { collection, itemsToRenderCount, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n if (index >= itemsToRenderCount) {\n return null;\n }\n\n const indexInCollection = index + _localStart;\n\n if (indexInCollection >= keyedItems.length) {\n return 'trailing';\n }\n\n return keyedItems[indexInCollection];\n }\n\n get errorMonitor() {\n return this.container.errorMonitor;\n }\n\n get _sizeProps() {\n const {\n aspectRatio,\n preset,\n draggable,\n _responsiveColumnsState: {\n gap,\n columnCount: responsiveColumnCount,\n itemsContentWidth: width,\n widthWithLastColumnGap,\n },\n layoutType,\n } = this;\n\n const columnCount = layoutType === 'list' ? 1 : responsiveColumnCount;\n\n const widthWithoutGaps = width - (columnCount - 1) * gap;\n const columnWidth = widthWithoutGaps / columnCount;\n\n const cardFooterSize = 'small' as const;\n\n const cardFooterHeight =\n this.footerHeights[preset][draggable][cardFooterSize];\n const cardTopImageHeight = columnWidth * aspectRatio;\n const rowHeight =\n cardTopImageHeight + (cardFooterHeight > 0 ? cardFooterHeight + 1 : 0);\n\n const columnWidthIncludingGap = widthWithLastColumnGap / columnCount;\n const rowHeightIncludingGap = rowHeight + gap;\n\n return {\n columnCount,\n columnWidth: () => columnWidth,\n columnWidthIncludingGap: () => columnWidthIncludingGap,\n rowHeight: () => rowHeight,\n rowHeightFixed: rowHeight,\n cardTopImageHeight,\n rowHeightIncludingGap: () => rowHeightIncludingGap,\n cardFooterHeight,\n cardFooterSize,\n };\n }\n\n get calcGridProps() {\n const {\n toolbar: { itemsContentHeight },\n _sizeProps: { rowHeightFixed, rowHeightIncludingGap },\n } = this;\n\n const overscanCount = Math.round(\n (itemsContentHeight / rowHeightFixed) * 1.5,\n );\n\n return {\n ...this._sizeProps,\n estimatedRowHeight: rowHeightIncludingGap(),\n overscanCount,\n };\n }\n\n get getCollectionSnapshot() {\n return this.toolbar.getCollectionSnapshot;\n }\n\n onAddItemClick = (origin?: string) => {\n this.toolbar.toolbarBIReporter.onAddItemClick(origin);\n };\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n get itemKeyRecyclerOverride() {\n const { collection } = this;\n const {\n result: { keyedItems },\n } = collection;\n return (index: number) => {\n return keyedItems[index]?.key ?? index;\n };\n }\n\n get dragAndDropCategories() {\n return this.toolbar.dragAndDropCategories;\n }\n\n get listAttributes() {\n return {\n ...this._dnd?.nullAnnouncements.listAttributes?.(),\n role: 'list',\n };\n }\n\n _subscribe() {\n const {\n parentState: { _subGrids },\n } = this;\n\n if (!_subGrids) {\n return;\n }\n\n _subGrids.push(this);\n\n return () => {\n const i = _subGrids.indexOf(this);\n i !== -1 && _subGrids.splice(i, 1);\n };\n }\n\n init() {\n return this._subscribe();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -121,6 +121,10 @@ const isFilterableField = (field, source, config, ReferenceFilter) => {
|
|
|
121
121
|
*/
|
|
122
122
|
exports.isFilterableField = isFilterableField;
|
|
123
123
|
const registerFieldFilters = (toolbar, source, config, ReferenceFilter) => {
|
|
124
|
+
const registerFilter = (field, filter) => {
|
|
125
|
+
toolbar.collection.registerFilterFieldValueGetter(field.id, item => source.getCellValue(item, field));
|
|
126
|
+
toolbar.collection.query.addFilterIfNeeded(field.id, filter);
|
|
127
|
+
};
|
|
124
128
|
const factoryByType = filterFactoryByType(config);
|
|
125
129
|
source.filterableFields.forEach(field => {
|
|
126
130
|
if (field.type === 'CUSTOM') {
|
|
@@ -133,7 +137,7 @@ const registerFieldFilters = (toolbar, source, config, ReferenceFilter) => {
|
|
|
133
137
|
Object.assign(filter, {
|
|
134
138
|
name: field.id
|
|
135
139
|
});
|
|
136
|
-
|
|
140
|
+
registerFilter(field, filter);
|
|
137
141
|
return;
|
|
138
142
|
}
|
|
139
143
|
if ((0, _bexCore.isReferenceField)(field) && !(ReferenceFilter && config.referenceItems != null && config.referenceItems(field))) {
|
|
@@ -143,7 +147,7 @@ const registerFieldFilters = (toolbar, source, config, ReferenceFilter) => {
|
|
|
143
147
|
if (!factory) {
|
|
144
148
|
return;
|
|
145
149
|
}
|
|
146
|
-
|
|
150
|
+
registerFilter(field, factory({
|
|
147
151
|
name: field.id,
|
|
148
152
|
isCustomField: true
|
|
149
153
|
}));
|
|
@@ -179,7 +183,7 @@ const buildFieldFilterElement = (toolbar, field, config, source, ReferenceFilter
|
|
|
179
183
|
__self: void 0,
|
|
180
184
|
__source: {
|
|
181
185
|
fileName: _jsxFileName,
|
|
182
|
-
lineNumber:
|
|
186
|
+
lineNumber: 234,
|
|
183
187
|
columnNumber: 7
|
|
184
188
|
}
|
|
185
189
|
});
|
|
@@ -207,7 +211,7 @@ const buildFieldFilterElement = (toolbar, field, config, source, ReferenceFilter
|
|
|
207
211
|
__self: void 0,
|
|
208
212
|
__source: {
|
|
209
213
|
fileName: _jsxFileName,
|
|
210
|
-
lineNumber:
|
|
214
|
+
lineNumber: 249,
|
|
211
215
|
columnNumber: 7
|
|
212
216
|
}
|
|
213
217
|
});
|
|
@@ -236,7 +240,7 @@ const buildFieldFilterElement = (toolbar, field, config, source, ReferenceFilter
|
|
|
236
240
|
__self: void 0,
|
|
237
241
|
__source: {
|
|
238
242
|
fileName: _jsxFileName,
|
|
239
|
-
lineNumber:
|
|
243
|
+
lineNumber: 268,
|
|
240
244
|
columnNumber: 5
|
|
241
245
|
}
|
|
242
246
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bexCore","_fieldTypePrefixIcons","_CheckboxCustomFieldFilter","_DateCustomFieldFilter","_DateTimeCustomFieldFilter","_OperatorFilterCustomFieldFilter","_NumberRangeFilter","_HasValueCustomFieldFilter","_jsxFileName","FILTER_COMPONENT_BY_TYPE","SHORT_TEXT","OperatorFilterCustomFieldFilter","LONG_TEXT","URL","EMAIL","RICH_TEXT","ADDRESS","NUMBER","NumberRangeFilter","BOOLEAN","CheckboxCustomFieldFilter","DATE","DateCustomFieldFilter","DATETIME","DateTimeCustomFieldFilter","TIME","HasValueCustomFieldFilter","IMAGE","VIDEO","AUDIO","MEDIA_GALLERY","DOCUMENT","MULTI_DOCUMENT","RICH_CONTENT","OBJECT","COLOR","ARRAY","filterFactoryByType","config","stringFilter","params","stringOperatorFilter","allowedOperators","textOperators","numberRangeFilter","idNameArrayFilter","dateRangeFilter","REFERENCE","MULTI_REFERENCE","isFilterableFieldType","type","exports","resolveCustomFilter","field","source","customTypeConfig","resolveFieldTypeDefinition","isFilterTypeConfig","filter","undefined","isFilterableField","ReferenceFilter","isReferenceField","referenceItems","registerFieldFilters","toolbar","factoryByType","filterableFields","forEach","customFilter","createFilter","Object","assign","name","id","collection","query","addFilterIfNeeded","factory","isCustomField","buildFieldFilterElement","filters","label","displayName","_resolveCustomFilter","CustomComponent","Component","default","createElement","key","accordionItemProps","toolbarItemProps","toolbarTagProps","__self","__source","fileName","lineNumber","columnNumber","fetchItems","referencedCollectionId","referenceMetadata","fieldId","FilterComponent","decimal","numberIsDecimal","_extends2","fieldType","iconType","toFieldType","buildFieldFilters","map","el"],"sources":["../../../src/state/buildFieldFilters.tsx"],"sourcesContent":["import React, { type ComponentType } from 'react';\nimport {\n dateRangeFilter,\n idNameArrayFilter,\n isReferenceField,\n isFilterTypeConfig,\n numberRangeFilter,\n resolveFieldTypeDefinition,\n stringOperatorFilter,\n} from '@wix/bex-core';\nimport type {\n Field,\n FieldsSource,\n Filter,\n FilterStateBaseParams,\n FilterOperator,\n FilterTypeConfig,\n PatternsFieldType,\n} from '@wix/bex-core';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport type { FilterElement } from '../components/CollectionToolbarFilters';\nimport { toFieldType } from '../utils/fieldTypePrefixIcons';\nimport { CheckboxCustomFieldFilter } from '../components/CustomFieldFilters/CheckboxCustomFieldFilter';\nimport { DateCustomFieldFilter } from '../components/CustomFieldFilters/DateCustomFieldFilter';\nimport { DateTimeCustomFieldFilter } from '../components/CustomFieldFilters/DateTimeCustomFieldFilter';\nimport { OperatorFilterCustomFieldFilter } from '../components/CustomFieldFilters/OperatorFilterCustomFieldFilter';\nimport { NumberRangeFilter } from '../components/NumberRangeFilter';\nimport { HasValueCustomFieldFilter } from '../components/CustomFieldFilters/HasValueCustomFieldFilter';\nimport type {\n FetchReferenceItems,\n ReferenceFieldFilterProps,\n} from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\ntype FilterFactory = (\n params: Partial<FilterStateBaseParams<any>>,\n) => Filter<any>;\n\n/**\n * The reference filter, supplied by the source rather than imported here. It\n * reaches the referenced item's avatar in `@wix/patterns-fields`, which every\n * source would otherwise pay for — including sources with no reference fields.\n */\nexport type ReferenceFilterComponent = ComponentType<ReferenceFieldFilterProps>;\n\nexport type { FilterTypeConfig } from '@wix/bex-core';\n\n/**\n * The filter behavior a source supplies that the shared builder can't derive\n * from the neutral field type. The neutral type collapses distinct source types\n * (e.g. a DataExtension dropdown into SHORT_TEXT), so the source fills the gaps.\n */\nexport interface FieldFilterConfig {\n /** Operators the source's backend can run on text fields. */\n textOperators: FilterOperator[];\n /** Whether a NUMBER field's filter accepts decimals. Default: false. */\n numberIsDecimal?: (field: Field) => boolean;\n /** Filter type icon. Default: derived from the neutral field type. */\n iconType?: (field: Field) => ReturnType<typeof toFieldType>;\n /**\n * Queries a reference field's referenced collection for the options its\n * filter offers. Returning `undefined` for a field — or omitting this —\n * leaves that field without a filter, which is what a source that cannot\n * reach the referenced collection wants.\n */\n referenceItems?: (field: Field) => FetchReferenceItems | undefined;\n}\n\n// Field type → the filter element rendered in the toolbar. Its keys also define\n// which field types get an auto filter (see isFilterableFieldType).\nconst FILTER_COMPONENT_BY_TYPE: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: OperatorFilterCustomFieldFilter,\n LONG_TEXT: OperatorFilterCustomFieldFilter,\n URL: OperatorFilterCustomFieldFilter,\n EMAIL: OperatorFilterCustomFieldFilter,\n RICH_TEXT: OperatorFilterCustomFieldFilter,\n // The source matches an address against its formatted text.\n ADDRESS: OperatorFilterCustomFieldFilter,\n NUMBER: NumberRangeFilter,\n BOOLEAN: CheckboxCustomFieldFilter,\n DATE: DateCustomFieldFilter,\n DATETIME: DateTimeCustomFieldFilter,\n // Types with no value to match against — filter them on emptiness alone.\n TIME: HasValueCustomFieldFilter,\n IMAGE: HasValueCustomFieldFilter,\n VIDEO: HasValueCustomFieldFilter,\n AUDIO: HasValueCustomFieldFilter,\n MEDIA_GALLERY: HasValueCustomFieldFilter,\n DOCUMENT: HasValueCustomFieldFilter,\n MULTI_DOCUMENT: HasValueCustomFieldFilter,\n RICH_CONTENT: HasValueCustomFieldFilter,\n OBJECT: HasValueCustomFieldFilter,\n COLOR: HasValueCustomFieldFilter,\n ARRAY: HasValueCustomFieldFilter,\n // REFERENCE / MULTI_REFERENCE are absent on purpose: their filter component\n // is injected by the source (see ReferenceFilterComponent), so this file —\n // which every source's filters go through — never pulls it in.\n};\n\n// Field type → the filter state registered on the collection query. Text fields\n// use the source's allowed operators; the rest are fixed.\nconst filterFactoryByType = (\n config: FieldFilterConfig,\n): Partial<Record<PatternsFieldType, FilterFactory>> => {\n const stringFilter: FilterFactory = (params) =>\n stringOperatorFilter({ ...params, allowedOperators: config.textOperators });\n return {\n SHORT_TEXT: stringFilter,\n LONG_TEXT: stringFilter,\n URL: stringFilter,\n EMAIL: stringFilter,\n RICH_TEXT: stringFilter,\n ADDRESS: stringFilter,\n NUMBER: numberRangeFilter,\n BOOLEAN: idNameArrayFilter,\n DATE: dateRangeFilter,\n DATETIME: dateRangeFilter,\n TIME: idNameArrayFilter,\n IMAGE: idNameArrayFilter,\n VIDEO: idNameArrayFilter,\n AUDIO: idNameArrayFilter,\n MEDIA_GALLERY: idNameArrayFilter,\n DOCUMENT: idNameArrayFilter,\n MULTI_DOCUMENT: idNameArrayFilter,\n RICH_CONTENT: idNameArrayFilter,\n OBJECT: idNameArrayFilter,\n COLOR: idNameArrayFilter,\n ARRAY: idNameArrayFilter,\n REFERENCE: idNameArrayFilter,\n MULTI_REFERENCE: idNameArrayFilter,\n };\n};\n\n/** A field gets an auto filter when its type maps to a filter element. */\nexport const isFilterableFieldType = (type: PatternsFieldType): boolean =>\n type in FILTER_COMPONENT_BY_TYPE;\n\n/** The active filter config of a CUSTOM field's type definition, if any. */\nconst resolveCustomFilter = (\n field: Field,\n source: Pick<FieldsSource, 'fieldTypes'>,\n): FilterTypeConfig | undefined => {\n const customTypeConfig = resolveFieldTypeDefinition(source, field);\n return customTypeConfig && isFilterTypeConfig(customTypeConfig.filter)\n ? customTypeConfig.filter\n : undefined;\n};\n\n/** A field gets an auto filter when its type maps to a filter element, or —\n * for a CUSTOM field — when its type definition declares a filter config. A\n * reference field also needs the source to reach the referenced collection. */\nexport const isFilterableField = (\n field: Field,\n source: Pick<FieldsSource, 'fieldTypes'>,\n config?: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): boolean => {\n if (field.type === 'CUSTOM') {\n return !!resolveCustomFilter(field, source);\n }\n if (isReferenceField(field)) {\n return !!ReferenceFilter && !!config?.referenceItems?.(field);\n }\n return isFilterableFieldType(field.type);\n};\n\n/**\n * Registers a filter state per filterable field on the collection query, so the\n * built elements have a filter to read. Idempotent — addFilterIfNeeded skips a\n * field that is already registered.\n */\nexport const registerFieldFilters = (\n toolbar: ToolbarCollectionState<any, any>,\n source: Pick<FieldsSource, 'filterableFields' | 'fieldTypes'>,\n config: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): void => {\n const factoryByType = filterFactoryByType(config);\n source.filterableFields.forEach((field) => {\n if (field.type === 'CUSTOM') {\n const customFilter = resolveCustomFilter(field, source);\n if (!customFilter) {\n return;\n }\n const filter = customFilter.createFilter(field);\n // The collection registers the filter under the field's id.\n Object.assign(filter, { name: field.id });\n toolbar.collection.query.addFilterIfNeeded(field.id as any, filter);\n return;\n }\n if (\n isReferenceField(field) &&\n !(ReferenceFilter && config.referenceItems?.(field))\n ) {\n return;\n }\n const factory = factoryByType[field.type];\n if (!factory) {\n return;\n }\n toolbar.collection.query.addFilterIfNeeded(\n field.id as any,\n factory({ name: field.id, isCustomField: true }),\n );\n });\n};\n\n/** Builds the toolbar filter element for a field, or null when it has none. */\nconst buildFieldFilterElement = (\n toolbar: ToolbarCollectionState<any, any>,\n field: Field,\n config: FieldFilterConfig,\n source: Pick<FieldsSource, 'fieldTypes'>,\n ReferenceFilter?: ReferenceFilterComponent,\n): FilterElement | null => {\n const filter = toolbar.collection.filters[field.id];\n if (!filter) {\n return null;\n }\n const label = field.displayName || field.id;\n if (field.type === 'CUSTOM') {\n const CustomComponent = resolveCustomFilter(field, source)?.Component;\n if (!CustomComponent) {\n return null;\n }\n return (\n <CustomComponent\n key={field.id}\n filter={filter}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n />\n ) as FilterElement;\n }\n if (isReferenceField(field)) {\n const fetchItems = config.referenceItems?.(field);\n if (!ReferenceFilter || !fetchItems) {\n return null;\n }\n return (\n <ReferenceFilter\n key={field.id}\n filter={filter}\n fetchItems={fetchItems}\n referencedCollectionId={field.referenceMetadata.referencedCollectionId}\n fieldId={field.id}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n />\n ) as FilterElement;\n }\n const FilterComponent = FILTER_COMPONENT_BY_TYPE[field.type];\n if (!FilterComponent) {\n return null;\n }\n const decimal =\n field.type === 'NUMBER' ? config.numberIsDecimal?.(field) : false;\n return (\n <FilterComponent\n key={field.id}\n filter={filter}\n fieldType={config.iconType?.(field) ?? toFieldType(field.type)}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n {...(decimal ? { decimal: true } : {})}\n />\n ) as FilterElement;\n};\n\n/** Builds the toolbar filter elements for a source's filterable fields. */\nexport const buildFieldFilters = (\n toolbar: ToolbarCollectionState<any, any>,\n source: Pick<FieldsSource, 'filterableFields' | 'fieldTypes'>,\n config: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): FilterElement[] =>\n source.filterableFields\n .map((field) =>\n buildFieldFilterElement(toolbar, field, config, source, ReferenceFilter),\n )\n .filter((el): el is FilterElement => el !== null);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAoBA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,0BAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,0BAAA,GAAAR,OAAA;AAAuG,IAAAS,YAAA;AAUvG;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA,MAAMC,wBAEL,GAAG;EACFC,UAAU,EAAEC,gEAA+B;EAC3CC,SAAS,EAAED,gEAA+B;EAC1CE,GAAG,EAAEF,gEAA+B;EACpCG,KAAK,EAAEH,gEAA+B;EACtCI,SAAS,EAAEJ,gEAA+B;EAC1C;EACAK,OAAO,EAAEL,gEAA+B;EACxCM,MAAM,EAAEC,oCAAiB;EACzBC,OAAO,EAAEC,oDAAyB;EAClCC,IAAI,EAAEC,4CAAqB;EAC3BC,QAAQ,EAAEC,oDAAyB;EACnC;EACAC,IAAI,EAAEC,oDAAyB;EAC/BC,KAAK,EAAED,oDAAyB;EAChCE,KAAK,EAAEF,oDAAyB;EAChCG,KAAK,EAAEH,oDAAyB;EAChCI,aAAa,EAAEJ,oDAAyB;EACxCK,QAAQ,EAAEL,oDAAyB;EACnCM,cAAc,EAAEN,oDAAyB;EACzCO,YAAY,EAAEP,oDAAyB;EACvCQ,MAAM,EAAER,oDAAyB;EACjCS,KAAK,EAAET,oDAAyB;EAChCU,KAAK,EAAEV;EACP;EACA;EACA;AACF,CAAC;;AAED;AACA;AACA,MAAMW,mBAAmB,GACvBC,MAAyB,IAC6B;EACtD,MAAMC,YAA2B,GAAIC,MAAM,IACzC,IAAAC,6BAAoB,EAAC;IAAE,GAAGD,MAAM;IAAEE,gBAAgB,EAAEJ,MAAM,CAACK;EAAc,CAAC,CAAC;EAC7E,OAAO;IACLjC,UAAU,EAAE6B,YAAY;IACxB3B,SAAS,EAAE2B,YAAY;IACvB1B,GAAG,EAAE0B,YAAY;IACjBzB,KAAK,EAAEyB,YAAY;IACnBxB,SAAS,EAAEwB,YAAY;IACvBvB,OAAO,EAAEuB,YAAY;IACrBtB,MAAM,EAAE2B,0BAAiB;IACzBzB,OAAO,EAAE0B,0BAAiB;IAC1BxB,IAAI,EAAEyB,wBAAe;IACrBvB,QAAQ,EAAEuB,wBAAe;IACzBrB,IAAI,EAAEoB,0BAAiB;IACvBlB,KAAK,EAAEkB,0BAAiB;IACxBjB,KAAK,EAAEiB,0BAAiB;IACxBhB,KAAK,EAAEgB,0BAAiB;IACxBf,aAAa,EAAEe,0BAAiB;IAChCd,QAAQ,EAAEc,0BAAiB;IAC3Bb,cAAc,EAAEa,0BAAiB;IACjCZ,YAAY,EAAEY,0BAAiB;IAC/BX,MAAM,EAAEW,0BAAiB;IACzBV,KAAK,EAAEU,0BAAiB;IACxBT,KAAK,EAAES,0BAAiB;IACxBE,SAAS,EAAEF,0BAAiB;IAC5BG,eAAe,EAAEH;EACnB,CAAC;AACH,CAAC;;AAED;AACO,MAAMI,qBAAqB,GAAIC,IAAuB,IAC3DA,IAAI,IAAIzC,wBAAwB;;AAElC;AAAA0C,OAAA,CAAAF,qBAAA,GAAAA,qBAAA;AACA,MAAMG,mBAAmB,GAAGA,CAC1BC,KAAY,EACZC,MAAwC,KACP;EACjC,MAAMC,gBAAgB,GAAG,IAAAC,mCAA0B,EAACF,MAAM,EAAED,KAAK,CAAC;EAClE,OAAOE,gBAAgB,IAAI,IAAAE,2BAAkB,EAACF,gBAAgB,CAACG,MAAM,CAAC,GAClEH,gBAAgB,CAACG,MAAM,GACvBC,SAAS;AACf,CAAC;;AAED;AACA;AACA;AACO,MAAMC,iBAAiB,GAAGA,CAC/BP,KAAY,EACZC,MAAwC,EACxChB,MAA0B,EAC1BuB,eAA0C,KAC9B;EACZ,IAAIR,KAAK,CAACH,IAAI,KAAK,QAAQ,EAAE;IAC3B,OAAO,CAAC,CAACE,mBAAmB,CAACC,KAAK,EAAEC,MAAM,CAAC;EAC7C;EACA,IAAI,IAAAQ,yBAAgB,EAACT,KAAK,CAAC,EAAE;IAC3B,OAAO,CAAC,CAACQ,eAAe,IAAI,CAAC,EAACvB,MAAM,YAANA,MAAM,CAAEyB,cAAc,YAAtBzB,MAAM,CAAEyB,cAAc,CAAGV,KAAK,CAAC;EAC/D;EACA,OAAOJ,qBAAqB,CAACI,KAAK,CAACH,IAAI,CAAC;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAS,iBAAA,GAAAA,iBAAA;AAKO,MAAMI,oBAAoB,GAAGA,CAClCC,OAAyC,EACzCX,MAA6D,EAC7DhB,MAAyB,EACzBuB,eAA0C,KACjC;EACT,MAAMK,aAAa,GAAG7B,mBAAmB,CAACC,MAAM,CAAC;EACjDgB,MAAM,CAACa,gBAAgB,CAACC,OAAO,CAAEf,KAAK,IAAK;IACzC,IAAIA,KAAK,CAACH,IAAI,KAAK,QAAQ,EAAE;MAC3B,MAAMmB,YAAY,GAAGjB,mBAAmB,CAACC,KAAK,EAAEC,MAAM,CAAC;MACvD,IAAI,CAACe,YAAY,EAAE;QACjB;MACF;MACA,MAAMX,MAAM,GAAGW,YAAY,CAACC,YAAY,CAACjB,KAAK,CAAC;MAC/C;MACAkB,MAAM,CAACC,MAAM,CAACd,MAAM,EAAE;QAAEe,IAAI,EAAEpB,KAAK,CAACqB;MAAG,CAAC,CAAC;MACzCT,OAAO,CAACU,UAAU,CAACC,KAAK,CAACC,iBAAiB,CAACxB,KAAK,CAACqB,EAAE,EAAShB,MAAM,CAAC;MACnE;IACF;IACA,IACE,IAAAI,yBAAgB,EAACT,KAAK,CAAC,IACvB,EAAEQ,eAAe,IAAIvB,MAAM,CAACyB,cAAc,YAArBzB,MAAM,CAACyB,cAAc,CAAGV,KAAK,CAAC,CAAC,EACpD;MACA;IACF;IACA,MAAMyB,OAAO,GAAGZ,aAAa,CAACb,KAAK,CAACH,IAAI,CAAC;IACzC,IAAI,CAAC4B,OAAO,EAAE;MACZ;IACF;IACAb,OAAO,CAACU,UAAU,CAACC,KAAK,CAACC,iBAAiB,CACxCxB,KAAK,CAACqB,EAAE,EACRI,OAAO,CAAC;MAAEL,IAAI,EAAEpB,KAAK,CAACqB,EAAE;MAAEK,aAAa,EAAE;IAAK,CAAC,CACjD,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;;AAED;AAAA5B,OAAA,CAAAa,oBAAA,GAAAA,oBAAA;AACA,MAAMgB,uBAAuB,GAAGA,CAC9Bf,OAAyC,EACzCZ,KAAY,EACZf,MAAyB,EACzBgB,MAAwC,EACxCO,eAA0C,KACjB;EACzB,MAAMH,MAAM,GAAGO,OAAO,CAACU,UAAU,CAACM,OAAO,CAAC5B,KAAK,CAACqB,EAAE,CAAC;EACnD,IAAI,CAAChB,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EACA,MAAMwB,KAAK,GAAG7B,KAAK,CAAC8B,WAAW,IAAI9B,KAAK,CAACqB,EAAE;EAC3C,IAAIrB,KAAK,CAACH,IAAI,KAAK,QAAQ,EAAE;IAAA,IAAAkC,oBAAA;IAC3B,MAAMC,eAAe,IAAAD,oBAAA,GAAGhC,mBAAmB,CAACC,KAAK,EAAEC,MAAM,CAAC,qBAAlC8B,oBAAA,CAAoCE,SAAS;IACrE,IAAI,CAACD,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IACA,oBACExF,MAAA,CAAA0F,OAAA,CAAAC,aAAA,CAACH,eAAe;MACdI,GAAG,EAAEpC,KAAK,CAACqB,EAAG;MACdhB,MAAM,EAAEA,MAAO;MACfgC,kBAAkB,EAAE;QAAER;MAAM,CAAE;MAC9BS,gBAAgB,EAAE;QAAET;MAAM,CAAE;MAC5BU,eAAe,EAAE;QAAEV;MAAM,CAAE;MAAAW,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAAvF,YAAA;QAAAwF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAC5B,CAAC;EAEN;EACA,IAAI,IAAAnC,yBAAgB,EAACT,KAAK,CAAC,EAAE;IAC3B,MAAM6C,UAAU,GAAG5D,MAAM,CAACyB,cAAc,oBAArBzB,MAAM,CAACyB,cAAc,CAAGV,KAAK,CAAC;IACjD,IAAI,CAACQ,eAAe,IAAI,CAACqC,UAAU,EAAE;MACnC,OAAO,IAAI;IACb;IACA,oBACErG,MAAA,CAAA0F,OAAA,CAAAC,aAAA,CAAC3B,eAAe;MACd4B,GAAG,EAAEpC,KAAK,CAACqB,EAAG;MACdhB,MAAM,EAAEA,MAAO;MACfwC,UAAU,EAAEA,UAAW;MACvBC,sBAAsB,EAAE9C,KAAK,CAAC+C,iBAAiB,CAACD,sBAAuB;MACvEE,OAAO,EAAEhD,KAAK,CAACqB,EAAG;MAClBgB,kBAAkB,EAAE;QAAER;MAAM,CAAE;MAC9BS,gBAAgB,EAAE;QAAET;MAAM,CAAE;MAC5BU,eAAe,EAAE;QAAEV;MAAM,CAAE;MAAAW,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAAvF,YAAA;QAAAwF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAC5B,CAAC;EAEN;EACA,MAAMK,eAAe,GAAG7F,wBAAwB,CAAC4C,KAAK,CAACH,IAAI,CAAC;EAC5D,IAAI,CAACoD,eAAe,EAAE;IACpB,OAAO,IAAI;EACb;EACA,MAAMC,OAAO,GACXlD,KAAK,CAACH,IAAI,KAAK,QAAQ,GAAGZ,MAAM,CAACkE,eAAe,oBAAtBlE,MAAM,CAACkE,eAAe,CAAGnD,KAAK,CAAC,GAAG,KAAK;EACnE,oBACExD,MAAA,CAAA0F,OAAA,CAAAC,aAAA,CAACc,eAAe,MAAAG,SAAA,CAAAlB,OAAA;IACdE,GAAG,EAAEpC,KAAK,CAACqB,EAAG;IACdhB,MAAM,EAAEA,MAAO;IACfgD,SAAS,EAAE,CAAApE,MAAM,CAACqE,QAAQ,oBAAfrE,MAAM,CAACqE,QAAQ,CAAGtD,KAAK,CAAC,KAAI,IAAAuD,iCAAW,EAACvD,KAAK,CAACH,IAAI,CAAE;IAC/DwC,kBAAkB,EAAE;MAAER;IAAM,CAAE;IAC9BS,gBAAgB,EAAE;MAAET;IAAM,CAAE;IAC5BU,eAAe,EAAE;MAAEV;IAAM;EAAE,GACtBqB,OAAO,GAAG;IAAEA,OAAO,EAAE;EAAK,CAAC,GAAG,CAAC,CAAC;IAAAV,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAvF,YAAA;MAAAwF,UAAA;MAAAC,YAAA;IAAA;EAAA,EACtC,CAAC;AAEN,CAAC;;AAED;AACO,MAAMY,iBAAiB,GAAGA,CAC/B5C,OAAyC,EACzCX,MAA6D,EAC7DhB,MAAyB,EACzBuB,eAA0C,KAE1CP,MAAM,CAACa,gBAAgB,CACpB2C,GAAG,CAAEzD,KAAK,IACT2B,uBAAuB,CAACf,OAAO,EAAEZ,KAAK,EAAEf,MAAM,EAAEgB,MAAM,EAAEO,eAAe,CACzE,CAAC,CACAH,MAAM,CAAEqD,EAAE,IAA0BA,EAAE,KAAK,IAAI,CAAC;AAAC5D,OAAA,CAAA0D,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bexCore","_fieldTypePrefixIcons","_CheckboxCustomFieldFilter","_DateCustomFieldFilter","_DateTimeCustomFieldFilter","_OperatorFilterCustomFieldFilter","_NumberRangeFilter","_HasValueCustomFieldFilter","_jsxFileName","FILTER_COMPONENT_BY_TYPE","SHORT_TEXT","OperatorFilterCustomFieldFilter","LONG_TEXT","URL","EMAIL","RICH_TEXT","ADDRESS","NUMBER","NumberRangeFilter","BOOLEAN","CheckboxCustomFieldFilter","DATE","DateCustomFieldFilter","DATETIME","DateTimeCustomFieldFilter","TIME","HasValueCustomFieldFilter","IMAGE","VIDEO","AUDIO","MEDIA_GALLERY","DOCUMENT","MULTI_DOCUMENT","RICH_CONTENT","OBJECT","COLOR","ARRAY","filterFactoryByType","config","stringFilter","params","stringOperatorFilter","allowedOperators","textOperators","numberRangeFilter","idNameArrayFilter","dateRangeFilter","REFERENCE","MULTI_REFERENCE","isFilterableFieldType","type","exports","resolveCustomFilter","field","source","customTypeConfig","resolveFieldTypeDefinition","isFilterTypeConfig","filter","undefined","isFilterableField","ReferenceFilter","isReferenceField","referenceItems","registerFieldFilters","toolbar","registerFilter","collection","registerFilterFieldValueGetter","id","item","getCellValue","query","addFilterIfNeeded","factoryByType","filterableFields","forEach","customFilter","createFilter","Object","assign","name","factory","isCustomField","buildFieldFilterElement","filters","label","displayName","_resolveCustomFilter","CustomComponent","Component","default","createElement","key","accordionItemProps","toolbarItemProps","toolbarTagProps","__self","__source","fileName","lineNumber","columnNumber","fetchItems","referencedCollectionId","referenceMetadata","fieldId","FilterComponent","decimal","numberIsDecimal","_extends2","fieldType","iconType","toFieldType","buildFieldFilters","map","el"],"sources":["../../../src/state/buildFieldFilters.tsx"],"sourcesContent":["import React, { type ComponentType } from 'react';\nimport {\n dateRangeFilter,\n idNameArrayFilter,\n isReferenceField,\n isFilterTypeConfig,\n numberRangeFilter,\n resolveFieldTypeDefinition,\n stringOperatorFilter,\n} from '@wix/bex-core';\nimport type {\n Field,\n FieldsSource,\n Filter,\n FilterStateBaseParams,\n FilterOperator,\n FilterTypeConfig,\n PatternsFieldType,\n} from '@wix/bex-core';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport type { FilterElement } from '../components/CollectionToolbarFilters';\nimport { toFieldType } from '../utils/fieldTypePrefixIcons';\nimport { CheckboxCustomFieldFilter } from '../components/CustomFieldFilters/CheckboxCustomFieldFilter';\nimport { DateCustomFieldFilter } from '../components/CustomFieldFilters/DateCustomFieldFilter';\nimport { DateTimeCustomFieldFilter } from '../components/CustomFieldFilters/DateTimeCustomFieldFilter';\nimport { OperatorFilterCustomFieldFilter } from '../components/CustomFieldFilters/OperatorFilterCustomFieldFilter';\nimport { NumberRangeFilter } from '../components/NumberRangeFilter';\nimport { HasValueCustomFieldFilter } from '../components/CustomFieldFilters/HasValueCustomFieldFilter';\nimport type {\n FetchReferenceItems,\n ReferenceFieldFilterProps,\n} from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\ntype FilterFactory = (\n params: Partial<FilterStateBaseParams<any>>,\n) => Filter<any>;\n\n/**\n * The reference filter, supplied by the source rather than imported here. It\n * reaches the referenced item's avatar in `@wix/patterns-fields`, which every\n * source would otherwise pay for — including sources with no reference fields.\n */\nexport type ReferenceFilterComponent = ComponentType<ReferenceFieldFilterProps>;\n\nexport type { FilterTypeConfig } from '@wix/bex-core';\n\n/**\n * The filter behavior a source supplies that the shared builder can't derive\n * from the neutral field type. The neutral type collapses distinct source types\n * (e.g. a DataExtension dropdown into SHORT_TEXT), so the source fills the gaps.\n */\nexport interface FieldFilterConfig {\n /** Operators the source's backend can run on text fields. */\n textOperators: FilterOperator[];\n /** Whether a NUMBER field's filter accepts decimals. Default: false. */\n numberIsDecimal?: (field: Field) => boolean;\n /** Filter type icon. Default: derived from the neutral field type. */\n iconType?: (field: Field) => ReturnType<typeof toFieldType>;\n /**\n * Queries a reference field's referenced collection for the options its\n * filter offers. Returning `undefined` for a field — or omitting this —\n * leaves that field without a filter, which is what a source that cannot\n * reach the referenced collection wants.\n */\n referenceItems?: (field: Field) => FetchReferenceItems | undefined;\n}\n\n// Field type → the filter element rendered in the toolbar. Its keys also define\n// which field types get an auto filter (see isFilterableFieldType).\nconst FILTER_COMPONENT_BY_TYPE: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: OperatorFilterCustomFieldFilter,\n LONG_TEXT: OperatorFilterCustomFieldFilter,\n URL: OperatorFilterCustomFieldFilter,\n EMAIL: OperatorFilterCustomFieldFilter,\n RICH_TEXT: OperatorFilterCustomFieldFilter,\n // The source matches an address against its formatted text.\n ADDRESS: OperatorFilterCustomFieldFilter,\n NUMBER: NumberRangeFilter,\n BOOLEAN: CheckboxCustomFieldFilter,\n DATE: DateCustomFieldFilter,\n DATETIME: DateTimeCustomFieldFilter,\n // Types with no value to match against — filter them on emptiness alone.\n TIME: HasValueCustomFieldFilter,\n IMAGE: HasValueCustomFieldFilter,\n VIDEO: HasValueCustomFieldFilter,\n AUDIO: HasValueCustomFieldFilter,\n MEDIA_GALLERY: HasValueCustomFieldFilter,\n DOCUMENT: HasValueCustomFieldFilter,\n MULTI_DOCUMENT: HasValueCustomFieldFilter,\n RICH_CONTENT: HasValueCustomFieldFilter,\n OBJECT: HasValueCustomFieldFilter,\n COLOR: HasValueCustomFieldFilter,\n ARRAY: HasValueCustomFieldFilter,\n // REFERENCE / MULTI_REFERENCE are absent on purpose: their filter component\n // is injected by the source (see ReferenceFilterComponent), so this file —\n // which every source's filters go through — never pulls it in.\n};\n\n// Field type → the filter state registered on the collection query. Text fields\n// use the source's allowed operators; the rest are fixed.\nconst filterFactoryByType = (\n config: FieldFilterConfig,\n): Partial<Record<PatternsFieldType, FilterFactory>> => {\n const stringFilter: FilterFactory = (params) =>\n stringOperatorFilter({ ...params, allowedOperators: config.textOperators });\n return {\n SHORT_TEXT: stringFilter,\n LONG_TEXT: stringFilter,\n URL: stringFilter,\n EMAIL: stringFilter,\n RICH_TEXT: stringFilter,\n ADDRESS: stringFilter,\n NUMBER: numberRangeFilter,\n BOOLEAN: idNameArrayFilter,\n DATE: dateRangeFilter,\n DATETIME: dateRangeFilter,\n TIME: idNameArrayFilter,\n IMAGE: idNameArrayFilter,\n VIDEO: idNameArrayFilter,\n AUDIO: idNameArrayFilter,\n MEDIA_GALLERY: idNameArrayFilter,\n DOCUMENT: idNameArrayFilter,\n MULTI_DOCUMENT: idNameArrayFilter,\n RICH_CONTENT: idNameArrayFilter,\n OBJECT: idNameArrayFilter,\n COLOR: idNameArrayFilter,\n ARRAY: idNameArrayFilter,\n REFERENCE: idNameArrayFilter,\n MULTI_REFERENCE: idNameArrayFilter,\n };\n};\n\n/** A field gets an auto filter when its type maps to a filter element. */\nexport const isFilterableFieldType = (type: PatternsFieldType): boolean =>\n type in FILTER_COMPONENT_BY_TYPE;\n\n/** The active filter config of a CUSTOM field's type definition, if any. */\nconst resolveCustomFilter = (\n field: Field,\n source: Pick<FieldsSource, 'fieldTypes'>,\n): FilterTypeConfig | undefined => {\n const customTypeConfig = resolveFieldTypeDefinition(source, field);\n return customTypeConfig && isFilterTypeConfig(customTypeConfig.filter)\n ? customTypeConfig.filter\n : undefined;\n};\n\n/** A field gets an auto filter when its type maps to a filter element, or —\n * for a CUSTOM field — when its type definition declares a filter config. A\n * reference field also needs the source to reach the referenced collection. */\nexport const isFilterableField = (\n field: Field,\n source: Pick<FieldsSource, 'fieldTypes'>,\n config?: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): boolean => {\n if (field.type === 'CUSTOM') {\n return !!resolveCustomFilter(field, source);\n }\n if (isReferenceField(field)) {\n return !!ReferenceFilter && !!config?.referenceItems?.(field);\n }\n return isFilterableFieldType(field.type);\n};\n\n/**\n * Registers a filter state per filterable field on the collection query, so the\n * built elements have a filter to read. Idempotent — addFilterIfNeeded skips a\n * field that is already registered.\n */\nexport const registerFieldFilters = (\n toolbar: ToolbarCollectionState<any, any>,\n source: Pick<\n FieldsSource,\n 'filterableFields' | 'fieldTypes' | 'getCellValue'\n >,\n config: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): void => {\n const registerFilter = (field: Field, filter: Filter<any>) => {\n toolbar.collection.registerFilterFieldValueGetter(field.id, (item) =>\n source.getCellValue(item, field),\n );\n toolbar.collection.query.addFilterIfNeeded(field.id as any, filter);\n };\n const factoryByType = filterFactoryByType(config);\n source.filterableFields.forEach((field) => {\n if (field.type === 'CUSTOM') {\n const customFilter = resolveCustomFilter(field, source);\n if (!customFilter) {\n return;\n }\n const filter = customFilter.createFilter(field);\n // The collection registers the filter under the field's id.\n Object.assign(filter, { name: field.id });\n registerFilter(field, filter);\n return;\n }\n if (\n isReferenceField(field) &&\n !(ReferenceFilter && config.referenceItems?.(field))\n ) {\n return;\n }\n const factory = factoryByType[field.type];\n if (!factory) {\n return;\n }\n registerFilter(field, factory({ name: field.id, isCustomField: true }));\n });\n};\n\n/** Builds the toolbar filter element for a field, or null when it has none. */\nconst buildFieldFilterElement = (\n toolbar: ToolbarCollectionState<any, any>,\n field: Field,\n config: FieldFilterConfig,\n source: Pick<FieldsSource, 'fieldTypes'>,\n ReferenceFilter?: ReferenceFilterComponent,\n): FilterElement | null => {\n const filter = toolbar.collection.filters[field.id];\n if (!filter) {\n return null;\n }\n const label = field.displayName || field.id;\n if (field.type === 'CUSTOM') {\n const CustomComponent = resolveCustomFilter(field, source)?.Component;\n if (!CustomComponent) {\n return null;\n }\n return (\n <CustomComponent\n key={field.id}\n filter={filter}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n />\n ) as FilterElement;\n }\n if (isReferenceField(field)) {\n const fetchItems = config.referenceItems?.(field);\n if (!ReferenceFilter || !fetchItems) {\n return null;\n }\n return (\n <ReferenceFilter\n key={field.id}\n filter={filter}\n fetchItems={fetchItems}\n referencedCollectionId={field.referenceMetadata.referencedCollectionId}\n fieldId={field.id}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n />\n ) as FilterElement;\n }\n const FilterComponent = FILTER_COMPONENT_BY_TYPE[field.type];\n if (!FilterComponent) {\n return null;\n }\n const decimal =\n field.type === 'NUMBER' ? config.numberIsDecimal?.(field) : false;\n return (\n <FilterComponent\n key={field.id}\n filter={filter}\n fieldType={config.iconType?.(field) ?? toFieldType(field.type)}\n accordionItemProps={{ label }}\n toolbarItemProps={{ label }}\n toolbarTagProps={{ label }}\n {...(decimal ? { decimal: true } : {})}\n />\n ) as FilterElement;\n};\n\n/** Builds the toolbar filter elements for a source's filterable fields. */\nexport const buildFieldFilters = (\n toolbar: ToolbarCollectionState<any, any>,\n source: Pick<FieldsSource, 'filterableFields' | 'fieldTypes'>,\n config: FieldFilterConfig,\n ReferenceFilter?: ReferenceFilterComponent,\n): FilterElement[] =>\n source.filterableFields\n .map((field) =>\n buildFieldFilterElement(toolbar, field, config, source, ReferenceFilter),\n )\n .filter((el): el is FilterElement => el !== null);\n"],"mappings":"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","ignoreList":[]}
|