@wix/patterns 1.425.0 → 1.426.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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.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.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.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/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/array/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/array/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/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/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/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/FieldCell/FieldCell.js +1 -1
- package/dist/cjs/components/FieldCell/FieldCell.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/ImportButton.js +11 -21
- package/dist/cjs/components/ImportButton/ImportButton.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +19 -27
- package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportProps.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/schemaFieldsSource.js +5 -1
- package/dist/cjs/components/SchemaSource/schemaFieldsSource.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaImportRef.js +128 -0
- package/dist/cjs/components/SchemaSource/schemaImportRef.js.map +1 -0
- package/dist/cjs/components/SchemaSource/tableSchemaSource.js +23 -9
- package/dist/cjs/components/SchemaSource/tableSchemaSource.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 +9 -9
- 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/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.js +34 -44
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.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/TagsWidget/TagsWidgetContent.js +14 -24
- package/dist/cjs/components/TagsWidget/TagsWidgetContent.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/hooks/index.js +6 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useReachBottom.js +41 -0
- package/dist/cjs/hooks/useReachBottom.js.map +1 -0
- package/dist/cjs/hooks/useSchemaImport.js +20 -0
- package/dist/cjs/hooks/useSchemaImport.js.map +1 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/state/CollectionFieldsSourceState.js +7 -0
- package/dist/cjs/state/CollectionFieldsSourceState.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/TagsModalState.js +23 -1
- package/dist/cjs/state/TagsModalState.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/test-utils/TagsMocks.js +31 -6
- package/dist/cjs/test-utils/TagsMocks.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/MultiAutoInlineCheckboxFilter.md +1 -1
- package/dist/docs/MultiInlineCheckboxFilter.md +1 -1
- package/dist/docs/index.json +18 -18
- 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/CmsFieldManagement/formFields/CharactersLimitInput.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/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- 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/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/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.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/array/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/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/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/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/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/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/FieldCell/FieldCell.js +1 -1
- package/dist/esm/components/FieldCell/FieldCell.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/ImportButton.js +2 -2
- package/dist/esm/components/ImportButton/ImportButton.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +5 -8
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/SchemaSource/schemaFieldsSource.js +4 -0
- package/dist/esm/components/SchemaSource/schemaFieldsSource.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaImportRef.js +93 -0
- package/dist/esm/components/SchemaSource/schemaImportRef.js.map +1 -0
- package/dist/esm/components/SchemaSource/tableSchemaSource.js +18 -9
- package/dist/esm/components/SchemaSource/tableSchemaSource.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/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.js +7 -7
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.js.map +1 -1
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/esm/components/TagsWidget/TagsWidgetContent.js +1 -8
- package/dist/esm/components/TagsWidget/TagsWidgetContent.js.map +1 -1
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useReachBottom.js +30 -0
- package/dist/esm/hooks/useReachBottom.js.map +1 -0
- package/dist/esm/hooks/useSchemaImport.js +16 -0
- package/dist/esm/hooks/useSchemaImport.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/state/CollectionFieldsSourceState.js +5 -0
- package/dist/esm/state/CollectionFieldsSourceState.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/TagsModalState.js +26 -3
- package/dist/esm/state/TagsModalState.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/test-utils/TagsMocks.js +47 -13
- package/dist/esm/test-utils/TagsMocks.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +28 -28
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
- package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +3 -3
- package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +4 -4
- package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
- package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +2 -2
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/reference/Edit.uni.driver.d.ts +1 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.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/View.st.css.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButton.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +2 -2
- package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +2 -2
- package/dist/types/components/ImportButton/ImportProps.d.ts +7 -32
- package/dist/types/components/ImportButton/ImportProps.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +11 -11
- package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +46 -46
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +42 -42
- package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerModal/PickerModal.uni.driver.d.ts +1 -1
- package/dist/types/components/PickerModal/PickerModalLayout.uni.driver.d.ts +1 -1
- package/dist/types/components/SchemaSource/schemaFieldsSource.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaImportRef.d.ts +27 -0
- package/dist/types/components/SchemaSource/schemaImportRef.d.ts.map +1 -0
- package/dist/types/components/SchemaSource/tableSchemaSource.d.ts +9 -1
- package/dist/types/components/SchemaSource/tableSchemaSource.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
- package/dist/types/components/Table/Table.uni.driver.d.ts +31 -31
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +42 -42
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +45 -45
- package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.d.ts.map +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
- package/dist/types/components/TagsWidget/TagsWidgetContent.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useReachBottom.d.ts +16 -0
- package/dist/types/hooks/useReachBottom.d.ts.map +1 -0
- package/dist/types/hooks/useSchemaImport.d.ts +13 -0
- package/dist/types/hooks/useSchemaImport.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/state/CollectionFieldsSourceState.d.ts +4 -1
- package/dist/types/state/CollectionFieldsSourceState.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/TagsModalState.d.ts +3 -0
- package/dist/types/state/TagsModalState.d.ts.map +1 -1
- package/dist/types/test-utils/TagsMocks.d.ts +4 -4
- package/dist/types/test-utils/TagsMocks.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +216 -216
- package/dist/types/testkit/jsdom.d.ts +278 -278
- package/dist/types/testkit/playwright.d.ts +218 -218
- package/dist/types/testkit/puppeteer.d.ts +229 -229
- package/dist/types/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- 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/address/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/array/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/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/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/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/FieldCell/FieldCell.tsx +1 -1
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportButton.tsx +2 -15
- package/src/components/ImportButton/ImportButtonModalLayout.tsx +5 -17
- package/src/components/ImportButton/ImportProps.tsx +7 -39
- 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/schemaFieldsSource.ts +5 -0
- package/src/components/SchemaSource/schemaImportRef.ts +122 -0
- package/src/components/SchemaSource/tableSchemaSource.ts +27 -10
- 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/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.tsx +7 -12
- package/src/components/TagsWidget/TagsWidgetContent.tsx +0 -9
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useReachBottom.ts +50 -0
- package/src/hooks/useSchemaImport.ts +21 -0
- package/src/index.ts +1 -0
- package/src/state/CollectionFieldsSourceState.ts +7 -0
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/TagsModalState.ts +32 -6
- package/src/styles.global.css +2 -2
- package/src/test-utils/TagsMocks.ts +39 -6
- package/src/version.ts +1 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
BackupConfig,
|
|
3
|
+
BackupFn,
|
|
4
|
+
Field,
|
|
5
|
+
ImportButtonConfig,
|
|
6
|
+
ImportField,
|
|
7
|
+
NewFieldDefinition,
|
|
8
|
+
Schema,
|
|
9
|
+
} from '@wix/bex-core';
|
|
10
|
+
import type { TableSchemaSource } from './tableSchemaSource';
|
|
11
|
+
import { toPatternsFieldType } from '../ImportButton/newFieldTypeMapping';
|
|
12
|
+
|
|
13
|
+
// Adapts a schema's BackupConfig (create / wait / restore steps) to the import's
|
|
14
|
+
// BackupFn: snapshot on call, and hand back a `restore` used to undo the import
|
|
15
|
+
// on cancel. A source without `restore` snapshots but offers no undo.
|
|
16
|
+
const composeBackupFn =
|
|
17
|
+
(backup: BackupConfig): BackupFn =>
|
|
18
|
+
async (signal) => {
|
|
19
|
+
const { backupId } = await backup.create();
|
|
20
|
+
await backup.waitForCompletion(backupId, { signal });
|
|
21
|
+
|
|
22
|
+
const restore = backup.restore;
|
|
23
|
+
if (!restore) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
restore: async (restoreSignal) => {
|
|
28
|
+
const { restorationId } = await restore(backupId);
|
|
29
|
+
await backup.waitForRestoration?.(restorationId, {
|
|
30
|
+
signal: restoreSignal,
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Builds the Field to create from a pending new column: import decides the key,
|
|
37
|
+
// and the detected NewFieldType maps to the schema's PatternsFieldType. Import
|
|
38
|
+
// only ever creates non-reference fields, so the cast is safe.
|
|
39
|
+
const toField = (def: NewFieldDefinition): Field =>
|
|
40
|
+
({
|
|
41
|
+
id: def.key,
|
|
42
|
+
displayName: def.displayName,
|
|
43
|
+
type: toPatternsFieldType(def.type),
|
|
44
|
+
...(def.config?.validation && { validation: def.config.validation }),
|
|
45
|
+
...(def.config?.isPii && { isPii: true }),
|
|
46
|
+
...(def.config?.helpText && { helpText: def.config.helpText }),
|
|
47
|
+
} as Field);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* An `ImportButtonConfig` that reads the table's live `SchemaState` — the same
|
|
51
|
+
* one the table renders from. Every input is read on demand, so:
|
|
52
|
+
* - the async schema load needn't resolve before this is constructed, and
|
|
53
|
+
* - fields the import creates (merged back via `mergeFields`) and fields added
|
|
54
|
+
* through the field-management panel show up immediately, with no stale copy.
|
|
55
|
+
*
|
|
56
|
+
* Reads `source.schemaState`, which the source only populates when it attaches
|
|
57
|
+
* to the table (`setOnTable`) — after this is built. Reading it through the
|
|
58
|
+
* getter each time gives that late binding: `state` is `undefined` until then
|
|
59
|
+
* (fields empty, no create).
|
|
60
|
+
*/
|
|
61
|
+
export class SchemaImportRef implements ImportButtonConfig {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
private readonly source: TableSchemaSource<any>;
|
|
64
|
+
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
+
constructor(source: TableSchemaSource<any>) {
|
|
67
|
+
this.source = source;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
private get state() {
|
|
71
|
+
return this.source.schemaState;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
get fields(): ImportField[] {
|
|
75
|
+
const state = this.state;
|
|
76
|
+
if (!state) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return state.fields.map((f) => ({ id: f.id, header: f.displayName }));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
get collectionId(): string | undefined {
|
|
83
|
+
return this.state?.source.collectionId;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
get idFieldKey(): string | undefined {
|
|
87
|
+
return this.state?.schema?.idField;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
get canAddFields(): boolean {
|
|
91
|
+
const state = this.state;
|
|
92
|
+
const schema = state?.schema;
|
|
93
|
+
// Require both the create-field permission and a batch action to create
|
|
94
|
+
// with; otherwise columns would default to "new" but nothing gets created
|
|
95
|
+
// and the upload writes values under keys with no field.
|
|
96
|
+
if (!schema || !state.fieldActions?.addFields) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return state.source.canAddFields(schema);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
updateSchema = async (
|
|
103
|
+
defs: NewFieldDefinition[],
|
|
104
|
+
): Promise<Schema['fields'] | void> => {
|
|
105
|
+
const add = this.state?.fieldActions?.addFields;
|
|
106
|
+
if (!add) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
return add(defs.map(toField));
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// Merge the created fields into the live SchemaState so the table's columns
|
|
113
|
+
// update with no reload (CAIRO-4400). Reads the same state the table renders.
|
|
114
|
+
mergeFields = (fields: Schema['fields']): void => {
|
|
115
|
+
this.state?.mergeFields(fields);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
get backup(): BackupFn | undefined {
|
|
119
|
+
const backup = this.state?.loadedSchema?.backend.backup;
|
|
120
|
+
return backup ? composeBackupFn(backup) : undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -10,18 +10,35 @@ import { SchemaState } from './SchemaState';
|
|
|
10
10
|
*
|
|
11
11
|
* It stays the full config, so you can still spread and override it. `setOnTable`
|
|
12
12
|
* reads `this`, so any overrides on the (possibly spread) object take effect.
|
|
13
|
+
*
|
|
14
|
+
* `schemaState` exposes the attached state so `useSchemaImport` reads the same
|
|
15
|
+
* live schema the table renders — import always matches the visible columns
|
|
16
|
+
* (including fields it just created, or ones added via the field-management
|
|
17
|
+
* panel), rather than a separate loaded copy.
|
|
13
18
|
*/
|
|
14
19
|
export type TableSchemaSource<T = Record<string, unknown>> = SchemaSource<T> &
|
|
15
|
-
FieldsSourceProvider
|
|
20
|
+
FieldsSourceProvider & {
|
|
21
|
+
readonly schemaState?: SchemaState<T>;
|
|
22
|
+
};
|
|
16
23
|
|
|
17
24
|
export const tableSchemaSource = <T>(
|
|
18
25
|
source: SchemaSource<T>,
|
|
19
|
-
): TableSchemaSource<T> =>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
): TableSchemaSource<T> => {
|
|
27
|
+
// Created once on attach and reused, so the table and `useSchemaImport` share
|
|
28
|
+
// one SchemaState (and one load).
|
|
29
|
+
let state: SchemaState<T> | undefined;
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
...source,
|
|
33
|
+
get schemaState() {
|
|
34
|
+
return state;
|
|
35
|
+
},
|
|
36
|
+
setOnTable(toolbar) {
|
|
37
|
+
state ??= new SchemaState<T>({
|
|
38
|
+
container: toolbar.container,
|
|
39
|
+
source: this,
|
|
40
|
+
});
|
|
41
|
+
state.setOnTable(toolbar);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "ScrollableContent350807700";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"ScrollableContent350807700__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "SetupWidget1455868437";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"SetupWidget1455868437__root","row":"SetupWidget1455868437__row","completedCta":"SetupWidget1455868437__completedCta","card":"SetupWidget1455868437__card","stepIcon":"SetupWidget1455868437__stepIcon","chevron":"SetupWidget1455868437__chevron","chevronDisabled":"SetupWidget1455868437__chevronDisabled","inProgressLabel":"SetupWidget1455868437__inProgressLabel"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "SkeletonCard2287561488";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"SkeletonCard2287561488__root","headerLoading":"SkeletonCard2287561488__headerLoading"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "SlidingModal2066405265";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"SlidingModal2066405265__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "TabsFilter1693177651";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"TabsFilter1693177651__root","title":"TabsFilter1693177651__title"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "ManageTagsModal1377424349";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"ManageTagsModal1377424349__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -11,8 +11,7 @@ import {
|
|
|
11
11
|
Search,
|
|
12
12
|
ToastContainer,
|
|
13
13
|
} from '@wix/design-system';
|
|
14
|
-
import {
|
|
15
|
-
import { InfiniteScrollLoader } from '../../../InfiniteScrollLoader/InfiniteScrollLoader';
|
|
14
|
+
import { useReachBottom } from '../../../../hooks/useReachBottom';
|
|
16
15
|
import { Add } from '@wix/wix-ui-icons-common';
|
|
17
16
|
import { useWixPatternsContainer } from '@wix/bex-core/react';
|
|
18
17
|
import { TagsListItem } from './List/TagsListItem';
|
|
@@ -68,9 +67,12 @@ const ManageTagsModalContent = observer(({ state }: ManageTagsModalProps) => {
|
|
|
68
67
|
|
|
69
68
|
const scrollRef = useRef<HTMLDivElement>(null);
|
|
70
69
|
state.ref = scrollRef;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
|
|
71
|
+
// Grows the local render window when the user scrolls near the bottom —
|
|
72
|
+
// all tags are already in memory, only rendering is windowed
|
|
73
|
+
useReachBottom({
|
|
74
|
+
containerRef: scrollRef,
|
|
75
|
+
onReachBottom: state.showMoreItems,
|
|
74
76
|
});
|
|
75
77
|
|
|
76
78
|
return (
|
|
@@ -182,13 +184,6 @@ const ManageTagsModalContent = observer(({ state }: ManageTagsModalProps) => {
|
|
|
182
184
|
{state.isShowingNewTagListItem && (
|
|
183
185
|
<NewTagItemEditable state={state} />
|
|
184
186
|
)}
|
|
185
|
-
{shouldAllowTagsPagination && (
|
|
186
|
-
<InfiniteScrollLoader
|
|
187
|
-
targetRef={targetRef}
|
|
188
|
-
state={state.tagsManagementState.collection}
|
|
189
|
-
size="small"
|
|
190
|
-
/>
|
|
191
|
-
)}
|
|
192
187
|
</ScrollableContent>
|
|
193
188
|
</Box>
|
|
194
189
|
</Box>
|
|
@@ -117,8 +117,6 @@ const _TagsWidgetContent = ({
|
|
|
117
117
|
);
|
|
118
118
|
}, [initialTagIdsKey]);
|
|
119
119
|
|
|
120
|
-
const { shouldAllowTagsPagination } = formState.tagsManagementState;
|
|
121
|
-
|
|
122
120
|
const tagsOptions = useMemo(() => {
|
|
123
121
|
const options = formState.displayedTagOptions;
|
|
124
122
|
|
|
@@ -192,13 +190,6 @@ const _TagsWidgetContent = ({
|
|
|
192
190
|
<>
|
|
193
191
|
<MultiSelect
|
|
194
192
|
popoverProps={popoverProps}
|
|
195
|
-
{...(shouldAllowTagsPagination
|
|
196
|
-
? {
|
|
197
|
-
infiniteScroll: true,
|
|
198
|
-
hasMore: formState.tagsManagementState.hasMore,
|
|
199
|
-
loadMore: () => formState.tagsManagementState.loadMore(),
|
|
200
|
-
}
|
|
201
|
-
: {})}
|
|
202
193
|
value={formState.searchValue}
|
|
203
194
|
onChange={handleSearchChange}
|
|
204
195
|
options={tagsOptions}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "ToolbarItem1774963001";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"ToolbarItem1774963001__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "ToolbarItemBox3581991017";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"ToolbarItemBox3581991017__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "common1406259648";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"common1406259648__root","column":"common1406259648__column","fullHeight":"common1406259648__fullHeight"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
package/src/hooks/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './useBuildOption';
|
|
|
3
3
|
export * from './usePickerModal';
|
|
4
4
|
export * from './usePickerStandalone';
|
|
5
5
|
export * from './useViews';
|
|
6
|
+
export * from './useSchemaImport';
|
|
6
7
|
export * from './useEmptyStateTexts';
|
|
7
8
|
export * from './customModalContent';
|
|
8
9
|
export * from './useDropdownSelectFilterState';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { RefObject, useEffect, useRef } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
ReachBottomListener,
|
|
4
|
+
ScrollableWindow,
|
|
5
|
+
} from '../reach-bottom-listener';
|
|
6
|
+
import { useWixPatternsContainer } from '@wix/bex-core/react';
|
|
7
|
+
|
|
8
|
+
export interface UseReachBottomParams {
|
|
9
|
+
containerRef: RefObject<ScrollableWindow | null | undefined>;
|
|
10
|
+
onReachBottom: () => unknown;
|
|
11
|
+
// distance from the bottom to trigger the callback
|
|
12
|
+
offsetPX?: number;
|
|
13
|
+
// throttle scroll event
|
|
14
|
+
delay?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Calls `onReachBottom` when the container is scrolled near its bottom.
|
|
19
|
+
* For fetching more pages of a collection, use `useCollectionReachBottom`
|
|
20
|
+
* instead — it also refills under-filled containers and reacts to
|
|
21
|
+
* collection events.
|
|
22
|
+
*/
|
|
23
|
+
export function useReachBottom({
|
|
24
|
+
containerRef,
|
|
25
|
+
onReachBottom,
|
|
26
|
+
offsetPX = 250,
|
|
27
|
+
delay = 200,
|
|
28
|
+
}: UseReachBottomParams) {
|
|
29
|
+
const { lodash } = useWixPatternsContainer();
|
|
30
|
+
|
|
31
|
+
const onReachBottomRef = useRef(onReachBottom);
|
|
32
|
+
onReachBottomRef.current = onReachBottom;
|
|
33
|
+
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const container = containerRef.current;
|
|
36
|
+
if (container == null) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const listener = new ReachBottomListener({
|
|
41
|
+
onReachBottom: () => onReachBottomRef.current(),
|
|
42
|
+
delay,
|
|
43
|
+
offsetPX,
|
|
44
|
+
lodash,
|
|
45
|
+
container,
|
|
46
|
+
});
|
|
47
|
+
listener.subscribe();
|
|
48
|
+
return () => listener.unsubscribe();
|
|
49
|
+
}, []);
|
|
50
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import type { ImportButtonConfig } from '@wix/bex-core';
|
|
3
|
+
import type { TableSchemaSource } from '../components/SchemaSource/tableSchemaSource';
|
|
4
|
+
import { SchemaImportRef } from '../components/SchemaSource/schemaImportRef';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Builds an `ImportButtonConfig` for the CSV import flow that reads the table's
|
|
8
|
+
* live `SchemaState` — the same one `source` attaches to the table. Pass the
|
|
9
|
+
* result to `<ImportButton config={config} />`.
|
|
10
|
+
*
|
|
11
|
+
* Because it reads the live state, the import always matches the table's current
|
|
12
|
+
* fields (including ones it just created) and needs no load of its own.
|
|
13
|
+
* `source` is expected to be stable (memoized, as `CmsFieldsTable` does).
|
|
14
|
+
*/
|
|
15
|
+
export function useSchemaImport<T = Record<string, unknown>>(
|
|
16
|
+
source: TableSchemaSource<T>,
|
|
17
|
+
): ImportButtonConfig {
|
|
18
|
+
const [config] = useState(() => new SchemaImportRef(source));
|
|
19
|
+
|
|
20
|
+
return config;
|
|
21
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -131,6 +131,7 @@ export {
|
|
|
131
131
|
export * from './hooks/usePickerStandalone';
|
|
132
132
|
export * from './hooks/useSetupWidget';
|
|
133
133
|
export * from './hooks/useViews';
|
|
134
|
+
export * from './hooks/useSchemaImport';
|
|
134
135
|
export * from './hooks/useTableGridSwitchFolders';
|
|
135
136
|
export * from './hooks/useTableCollection';
|
|
136
137
|
export * from './hooks/useGridCollection';
|
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
FieldsSource,
|
|
6
6
|
CustomFieldOrigin,
|
|
7
7
|
Field,
|
|
8
|
+
Schema,
|
|
8
9
|
WixPatternsErrorCode,
|
|
9
10
|
} from '@wix/bex-core';
|
|
10
11
|
import type { Column } from '../model';
|
|
@@ -211,6 +212,12 @@ export class CollectionFieldsSourceState {
|
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
214
|
|
|
215
|
+
/** Merges a returned fields map into the source (no refetch). No-ops for sources
|
|
216
|
+
* that don't support in-place merging. The fields reaction rebuilds columns. */
|
|
217
|
+
mergeFields(fields: Schema['fields']) {
|
|
218
|
+
this.fieldsSource.mergeFields?.(fields);
|
|
219
|
+
}
|
|
220
|
+
|
|
214
221
|
init() {
|
|
215
222
|
this.initTask.runOnce(() => this.fieldsSource.load());
|
|
216
223
|
this.initTask.status.promise?.catch(() => this.handleLoadError());
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "CollectionPageHeader313153770";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"CollectionPageHeader313153770__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "FormPageHeader4160367408";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"FormPageHeader4160367408__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
import { action, makeObservable, observable } from 'mobx';
|
|
2
|
+
import { action, computed, makeObservable, observable } from 'mobx';
|
|
3
3
|
import {
|
|
4
4
|
ConditionalModalState,
|
|
5
5
|
TAG_MAX_LENGTH,
|
|
@@ -21,6 +21,10 @@ export interface TagsModalStateParams {
|
|
|
21
21
|
|
|
22
22
|
const actionOrigin = 'Manage Tags Modal';
|
|
23
23
|
|
|
24
|
+
// Render window for the tags list — the full list (up to 1000 tags) is in
|
|
25
|
+
// memory, but rendering it all at once makes the modal sluggish
|
|
26
|
+
const SHOWN_ITEMS_WINDOW_SIZE = 100;
|
|
27
|
+
|
|
24
28
|
export class TagsModalState {
|
|
25
29
|
readonly tagsManagementState;
|
|
26
30
|
readonly tagsSearchState;
|
|
@@ -42,6 +46,7 @@ export class TagsModalState {
|
|
|
42
46
|
deep: false,
|
|
43
47
|
});
|
|
44
48
|
ref: RefObject<HTMLDivElement> | null = null;
|
|
49
|
+
shownItemsLimit: number = SHOWN_ITEMS_WINDOW_SIZE;
|
|
45
50
|
|
|
46
51
|
constructor({
|
|
47
52
|
tagsManagementState,
|
|
@@ -68,6 +73,9 @@ export class TagsModalState {
|
|
|
68
73
|
editedTagId: observable,
|
|
69
74
|
editedTagErrorMessage: observable,
|
|
70
75
|
isShowingNewTagListItem: observable,
|
|
76
|
+
shownItemsLimit: observable,
|
|
77
|
+
shownItems: computed,
|
|
78
|
+
showMoreItems: action.bound,
|
|
71
79
|
init: action,
|
|
72
80
|
openManageTagsModal: action,
|
|
73
81
|
closeManageTagsModal: action,
|
|
@@ -124,6 +132,7 @@ export class TagsModalState {
|
|
|
124
132
|
}) {
|
|
125
133
|
this.origin = origin;
|
|
126
134
|
this.tagSubOrigin = tagSubOrigin;
|
|
135
|
+
this.shownItemsLimit = SHOWN_ITEMS_WINDOW_SIZE;
|
|
127
136
|
this.manageTagsModalState.modal.open();
|
|
128
137
|
this._reportBiModalOpened();
|
|
129
138
|
this.tagsManagementState.overrideShowToast = true;
|
|
@@ -161,16 +170,23 @@ export class TagsModalState {
|
|
|
161
170
|
handleSearchChange(newSearchValue: string) {
|
|
162
171
|
this.editedTagId = null;
|
|
163
172
|
this.isShowingNewTagListItem = false;
|
|
173
|
+
this.shownItemsLimit = SHOWN_ITEMS_WINDOW_SIZE;
|
|
164
174
|
this._reportSearchChangedBi(newSearchValue);
|
|
165
175
|
this.tagsSearchState.setSearchValue(newSearchValue);
|
|
166
176
|
}
|
|
167
177
|
|
|
168
178
|
handleSearchClear() {
|
|
169
179
|
this._reportSearchEventsBi('clear');
|
|
180
|
+
this.shownItemsLimit = SHOWN_ITEMS_WINDOW_SIZE;
|
|
170
181
|
this.tagsSearchState.setSearchValue('');
|
|
171
182
|
}
|
|
172
183
|
|
|
184
|
+
showMoreItems() {
|
|
185
|
+
this.shownItemsLimit += SHOWN_ITEMS_WINDOW_SIZE;
|
|
186
|
+
}
|
|
187
|
+
|
|
173
188
|
handleCreateCtaClick() {
|
|
189
|
+
this._showAllItems();
|
|
174
190
|
this.tagsSearchState.setSearchValue('');
|
|
175
191
|
this.editedTagId = null;
|
|
176
192
|
this.isShowingNewTagListItem = true;
|
|
@@ -210,6 +226,7 @@ export class TagsModalState {
|
|
|
210
226
|
return;
|
|
211
227
|
}
|
|
212
228
|
|
|
229
|
+
this._showAllItems();
|
|
213
230
|
const newName = this.searchValue.slice(0, TAG_MAX_LENGTH);
|
|
214
231
|
this._reportSearchEventsBi('add');
|
|
215
232
|
this._createTag({
|
|
@@ -221,6 +238,7 @@ export class TagsModalState {
|
|
|
221
238
|
}
|
|
222
239
|
|
|
223
240
|
async createTagFromList(newName: string) {
|
|
241
|
+
this._showAllItems();
|
|
224
242
|
const { status, statusMessage } = this._isValidName(newName);
|
|
225
243
|
if (status === 'error') {
|
|
226
244
|
this.editedTagErrorMessage = statusMessage;
|
|
@@ -346,11 +364,13 @@ export class TagsModalState {
|
|
|
346
364
|
}
|
|
347
365
|
|
|
348
366
|
get shownItems() {
|
|
349
|
-
return [...this.tagsSearchState.items]
|
|
350
|
-
(
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
367
|
+
return [...this.tagsSearchState.items]
|
|
368
|
+
.sort(
|
|
369
|
+
(tag1, tag2) =>
|
|
370
|
+
new Date(tag1.createdDate!).valueOf() -
|
|
371
|
+
new Date(tag2.createdDate!).valueOf(),
|
|
372
|
+
)
|
|
373
|
+
.slice(0, this.shownItemsLimit);
|
|
354
374
|
}
|
|
355
375
|
|
|
356
376
|
get isOpen() {
|
|
@@ -366,6 +386,12 @@ export class TagsModalState {
|
|
|
366
386
|
private createTagFromListTimeout?: number;
|
|
367
387
|
private updateTagTimeout?: number;
|
|
368
388
|
|
|
389
|
+
// A created tag sorts to the end of the list — the render window must cover
|
|
390
|
+
// the full list so the deferred scroll-to-bottom actually reveals it
|
|
391
|
+
private _showAllItems() {
|
|
392
|
+
this.shownItemsLimit = Number.MAX_SAFE_INTEGER;
|
|
393
|
+
}
|
|
394
|
+
|
|
369
395
|
private async _createTag({
|
|
370
396
|
name,
|
|
371
397
|
isFromSearch = false,
|