@payloadcms/ui 4.0.0-internal.d3909a9 → 4.0.0-internal.d7d662c
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/css/app.css +2 -2
- package/dist/css/colors.css +65 -0
- package/dist/elements/APIKeyInput/index.js +22 -23
- package/dist/elements/APIKeyInput/index.js.map +1 -1
- package/dist/elements/AddNewRelation/index.js +17 -19
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +39 -30
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +234 -142
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +29 -21
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +63 -23
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
- package/dist/elements/Button/index.css +3 -3
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -1
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +1 -0
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CardGrid/index.css +0 -1
- package/dist/elements/Chip/index.js.map +1 -1
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +213 -88
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +95 -56
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CollapseAllToggle/index.js +47 -32
- package/dist/elements/CollapseAllToggle/index.js.map +1 -1
- package/dist/elements/Collapsible/index.css +15 -4
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +46 -38
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js +37 -14
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelection/Popup.css +4 -0
- package/dist/elements/ColumnSelection/Popup.js +10 -2
- package/dist/elements/ColumnSelection/Popup.js.map +1 -1
- package/dist/elements/ColumnSelection/index.js.map +1 -1
- package/dist/elements/CommandPalette/index.css +8 -0
- package/dist/elements/ConfirmationModal/index.d.ts +3 -0
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +2 -0
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +45 -43
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/index.css +5 -0
- package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.css +4 -0
- package/dist/elements/DefaultListViewTabs/index.js +47 -37
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DelayedSpinner/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +1 -3
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
- package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
- package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
- package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
- package/dist/elements/DocumentCard/index.d.ts +2 -0
- package/dist/elements/DocumentCard/index.d.ts.map +1 -1
- package/dist/elements/DocumentCard/index.js +2 -0
- package/dist/elements/DocumentCard/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.js +125 -64
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
- package/dist/elements/DocumentLocked/index.js +1 -0
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentStaleData/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
- package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
- package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/index.js +104 -170
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/types.d.ts +1 -0
- package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
- package/dist/elements/DraggableSortable/types.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
- package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
- package/dist/elements/Drawer/index.js +138 -81
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
- package/dist/elements/FieldDiffContainer/index.js +7 -1
- package/dist/elements/FieldDiffContainer/index.js.map +1 -1
- package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
- package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
- package/dist/elements/FieldDiffLabel/index.js +2 -0
- package/dist/elements/FieldDiffLabel/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +23 -14
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +21 -21
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/GroupBy/Popup.js.map +1 -1
- package/dist/elements/GroupBy/index.js +120 -66
- package/dist/elements/GroupBy/index.js.map +1 -1
- package/dist/elements/HTMLDiff/colors.css +7 -0
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
- package/dist/elements/Hierarchy/Search/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.js +10 -5
- package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
- package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
- package/dist/elements/HydratePreferences/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/InputStepper/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/index.js +186 -105
- package/dist/elements/ItemsDrawer/index.js.map +1 -1
- package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
- package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
- package/dist/elements/LayoutToggle/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/Link/index.js +1 -1
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +3 -2
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListGroupByButton/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/ListWhereBuilder/index.js.map +1 -1
- package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +6 -1
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/LoadMoreRow/index.js.map +1 -1
- package/dist/elements/Loading/index.js +62 -18
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +93 -49
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +133 -108
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +54 -37
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/MiniCarousel/index.js +102 -38
- package/dist/elements/MiniCarousel/index.js.map +1 -1
- package/dist/elements/Modal/index.d.ts.map +1 -1
- package/dist/elements/Modal/index.js +13 -1
- package/dist/elements/Modal/index.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +13 -14
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +31 -20
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.css +5 -0
- package/dist/elements/NavGroup/index.css +27 -3
- package/dist/elements/NavGroup/index.js +31 -38
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.css +1 -0
- package/dist/elements/NoListResults/index.js +1 -1
- package/dist/elements/NoListResults/index.js.map +1 -1
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
- package/dist/elements/Pagination/index.js +36 -37
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +19 -3
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js +141 -70
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +1 -0
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +1 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.js +32 -24
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.css +4 -0
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +1 -1
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.js +1 -1
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SchedulePublishButton/index.js +111 -39
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/Search/SearchInput/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.js.map +1 -1
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +31 -21
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SidebarToggle/index.js.map +1 -1
- package/dist/elements/SkipToContent/index.js.map +1 -1
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/SortRow/index.js.map +1 -1
- package/dist/elements/Spinner/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/SetStepNav.js.map +1 -1
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/Switch/index.css +2 -2
- package/dist/elements/Switch/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/TableIdentity.js +32 -16
- package/dist/elements/Table/TableIdentity.js.map +1 -1
- package/dist/elements/Table/useAriaSort.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +133 -53
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.js +113 -54
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js +32 -24
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +2 -1
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -0
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-I6PL55BF.js → CodeEditor-23ZGBN6S.js} +2 -2
- package/dist/exports/client/{DatePicker-RFCB5VGD.js → DatePicker-AZBZPMY6.js} +2 -2
- package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
- package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
- package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
- package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
- package/dist/exports/client/{chunk-O2RR6XEH.js → chunk-ZP2PB6M4.js} +2 -2
- package/dist/exports/client/{chunk-O2RR6XEH.js.map → chunk-ZP2PB6M4.js.map} +1 -1
- package/dist/exports/client/index.d.ts +2 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +27 -27
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -1
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -1
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +207 -99
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +521 -308
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +224 -136
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/index.js +114 -74
- package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +75 -55
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.css +4 -0
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +1 -0
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/index.css +3 -3
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +3 -2
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +114 -73
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +215 -121
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.js +29 -21
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.js +75 -46
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Hidden/index.js +23 -15
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +3 -2
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/Input.js.map +1 -1
- package/dist/fields/Password/input.js +46 -27
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +35 -35
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/Relationship/Input.js +14 -14
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.js +216 -111
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Select/Input.js +26 -10
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.js +158 -77
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.css +11 -15
- package/dist/fields/Tabs/index.js +120 -112
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +2 -2
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js +172 -95
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +2 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.js +58 -28
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js +97 -55
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +16 -7
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/index.css +9 -0
- package/dist/fields/Upload/index.js +101 -63
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/shared/useRowFocus.js.map +1 -1
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +27 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/context.js +3 -2
- package/dist/forms/RenderFields/context.js.map +1 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +58 -18
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/Submit/index.js +12 -13
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/useField/index.js +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js +32 -17
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js +27 -18
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useElementHeightVariable.js.map +1 -1
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/usePopupWindow.js.map +1 -1
- package/dist/hooks/useRelatedCollections.js.map +1 -1
- package/dist/hooks/useResize.js.map +1 -1
- package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
- package/dist/hooks/useThrottledEffect.js +21 -24
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
- package/dist/layouts/Root/RootProviders.js +31 -28
- package/dist/layouts/Root/RootProviders.js.map +1 -1
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
- package/dist/providers/Auth/index.js +2 -2
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +65 -32
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/Embed/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +5 -5
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +6 -1
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/ModalAccessibility/index.js.map +1 -1
- package/dist/providers/ModalFocus/index.d.ts +15 -0
- package/dist/providers/ModalFocus/index.d.ts.map +1 -0
- package/dist/providers/ModalFocus/index.js +70 -0
- package/dist/providers/ModalFocus/index.js.map +1 -0
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.d.ts +3 -2
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +78 -105
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/RouterAdapter/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/providers/TableColumns/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/index.js +18 -35
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/styles.css +66 -1
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +2 -2
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +1 -0
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +17 -17
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +106 -27
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +2 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
- package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +13 -11
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +27 -16
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
- package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
- package/dist/views/HierarchyList/index.js +2 -2
- package/dist/views/HierarchyList/index.js.map +1 -1
- package/dist/views/List/DocumentGrid/index.js.map +1 -1
- package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/Verify/index.client.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.js +321 -181
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +176 -77
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +113 -33
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +9 -11
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
- package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
- package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
- package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
- package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
- package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
- package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
- package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
- package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
- package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
- package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
- package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
- package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
- package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
- package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
- package/dist/widgets/Activity/components/Pagination/index.css +42 -0
- package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
- package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/Pagination/index.js +125 -0
- package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
- package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
- package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
- package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
- package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
- package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
- package/dist/widgets/Activity/index.client.d.ts +15 -0
- package/dist/widgets/Activity/index.client.d.ts.map +1 -0
- package/dist/widgets/Activity/index.client.js +186 -0
- package/dist/widgets/Activity/index.client.js.map +1 -0
- package/dist/widgets/Activity/index.css +320 -0
- package/dist/widgets/Activity/index.d.ts +13 -0
- package/dist/widgets/Activity/index.d.ts.map +1 -0
- package/dist/widgets/Activity/index.js +100 -0
- package/dist/widgets/Activity/index.js.map +1 -0
- package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +5 -13
- package/dist/widgets/Activity/types.d.ts.map +1 -0
- package/dist/widgets/Activity/types.js +2 -0
- package/dist/widgets/Activity/types.js.map +1 -0
- package/dist/widgets/Activity/utils/cache.d.ts +33 -0
- package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/cache.js +72 -0
- package/dist/widgets/Activity/utils/cache.js.map +1 -0
- package/dist/widgets/Activity/utils/constants.d.ts +5 -0
- package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/constants.js +4 -0
- package/dist/widgets/Activity/utils/constants.js.map +1 -0
- package/dist/widgets/Activity/utils/documents.d.ts +11 -0
- package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/documents.js +38 -0
- package/dist/widgets/Activity/utils/documents.js.map +1 -0
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
- package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +18 -19
- package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
- package/dist/widgets/Activity/utils/state.d.ts +44 -0
- package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/state.js +80 -0
- package/dist/widgets/Activity/utils/state.js.map +1 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
- package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
- package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
- package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
- package/dist/widgets/Activity/utils/usePageSize.js +35 -0
- package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
- package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
- package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.client.js +3 -0
- package/dist/widgets/CollectionCards/index.client.js.map +1 -1
- package/dist/widgets/CollectionCards/index.d.ts +3 -0
- package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
- package/dist/widgets/CollectionCards/index.js +3 -0
- package/dist/widgets/CollectionCards/index.js.map +1 -1
- package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
- package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
- package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
- package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
- package/dist/widgets/CollectionQuery/index.d.ts +3 -0
- package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
- package/dist/widgets/CollectionQuery/index.js +3 -0
- package/dist/widgets/CollectionQuery/index.js.map +1 -1
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
- package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
- package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
- package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
- package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/index.client.js +3 -0
- package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
- package/dist/widgets/UploadDropzone/index.d.ts +3 -0
- package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
- package/dist/widgets/UploadDropzone/index.js +3 -0
- package/dist/widgets/UploadDropzone/index.js.map +1 -1
- package/dist/widgets/Welcome/index.d.ts +3 -0
- package/dist/widgets/Welcome/index.d.ts.map +1 -1
- package/dist/widgets/Welcome/index.js +3 -0
- package/dist/widgets/Welcome/index.js.map +1 -1
- package/dist/widgets/WidgetCard/index.css +0 -20
- package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
- package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
- package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
- package/dist/widgets/shared/CollectionFilter/index.js +170 -0
- package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
- package/package.json +8 -7
- package/dist/exports/client/chunk-R7M6BG75.js +0 -27
- package/dist/exports/client/chunk-R7M6BG75.js.map +0 -7
- package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
- package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -41
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -121
- package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
- package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
- package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/index.client.js +0 -409
- package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
- package/dist/widgets/RecentlyViewed/index.css +0 -352
- package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
- package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/index.js +0 -47
- package/dist/widgets/RecentlyViewed/index.js.map +0 -1
- package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
- package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
- package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
- package/dist/widgets/RecentlyViewed/recents.js +0 -19
- package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-I6PL55BF.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-RFCB5VGD.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useMemo","GearIcon","useHierarchy","useRouteCache","useTranslation","Button","useDocumentDrawer","HierarchyEditButton","t0","$","id","collectionSlug","hasUpdatePermission","title","refreshTree","clearRouteCache","t","t1","drawerProps","DocumentDrawer","t2","closeDrawer","openDrawer","t3","handleSave","t4","_jsxs","_Fragment","children","_jsx","label","buttonStyle","className","icon","margin","onClick","onSave"],"sources":["../../../../src/elements/Hierarchy/EditButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport function HierarchyEditButton({\n id,\n collectionSlug,\n hasUpdatePermission,\n title,\n}: {\n collectionSlug: string\n hasUpdatePermission: boolean\n id: number | string\n title: string\n}) {\n const { refreshTree } = useHierarchy()\n const { clearRouteCache } = useRouteCache()\n const { t } = useTranslation()\n const drawerProps = useMemo(() => ({ id, collectionSlug }), [id, collectionSlug])\n const [DocumentDrawer, , { closeDrawer, openDrawer }] = useDocumentDrawer(drawerProps)\n\n const handleSave = useCallback(() => {\n closeDrawer()\n clearRouteCache()\n refreshTree(collectionSlug)\n }, [clearRouteCache, closeDrawer, collectionSlug, refreshTree])\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={t('general:editLabel', { label: title })}\n buttonStyle=\"ghost\"\n className=\"hierarchy-edit-button\"\n icon={<GearIcon />}\n margin={false}\n onClick={openDrawer}\n />\n <DocumentDrawer onSave={handleSave} />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAElC,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAA6B;IAAAa,EAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAUnC;EACC;IAAAM;EAAA,IAAwBZ,YAAA;EACxB;IAAAa;EAAA,IAA4BZ,aAAA;EAC5B;IAAAa;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAC,EAAA;IACqBO,EAAA;MAAAP,EAAA;MAAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useMemo","GearIcon","useHierarchy","useRouteCache","useTranslation","Button","useDocumentDrawer","HierarchyEditButton","t0","$","id","collectionSlug","hasUpdatePermission","title","refreshTree","clearRouteCache","t","t1","drawerProps","DocumentDrawer","t2","closeDrawer","openDrawer","t3","handleSave","t4","_jsxs","_Fragment","children","_jsx","label","buttonStyle","className","icon","margin","onClick","onSave"],"sources":["../../../../src/elements/Hierarchy/EditButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport function HierarchyEditButton({\n id,\n collectionSlug,\n hasUpdatePermission,\n title,\n}: {\n collectionSlug: string\n hasUpdatePermission: boolean\n id: number | string\n title: string\n}) {\n const { refreshTree } = useHierarchy()\n const { clearRouteCache } = useRouteCache()\n const { t } = useTranslation()\n const drawerProps = useMemo(() => ({ id, collectionSlug }), [id, collectionSlug])\n const [DocumentDrawer, , { closeDrawer, openDrawer }] = useDocumentDrawer(drawerProps)\n\n const handleSave = useCallback(() => {\n closeDrawer()\n clearRouteCache()\n refreshTree(collectionSlug)\n }, [clearRouteCache, closeDrawer, collectionSlug, refreshTree])\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={t('general:editLabel', { label: title })}\n buttonStyle=\"ghost\"\n className=\"hierarchy-edit-button\"\n icon={<GearIcon />}\n margin={false}\n onClick={openDrawer}\n />\n <DocumentDrawer onSave={handleSave} />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAElC,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAA6B;IAAAa,EAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAUnC;EACC;IAAAM;EAAA,IAAwBZ,YAAA;EACxB;IAAAa;EAAA,IAA4BZ,aAAA;EAC5B;IAAAa;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAC,EAAA;IACqBO,EAAA;MAAAP,EAAA;MAAAC;IAAqB;IAAAF,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAxD,MAAAS,WAAA,GAAmCD,EAAqB;EACxD,OAAAE,cAAA,GAAAC,EAAA,IAAwDd,iBAAA,CAAkBY,WAAA;EAAjD;IAAAG,WAAA;IAAAC;EAAA,IAAAF,EAA2B;EAAA,IAAAG,EAAA;EAAA,IAAAd,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAY,WAAA,IAAAZ,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAK,WAAA;IAErBS,EAAA,GAAAA,CAAA;MAC7BF,WAAA;MACAN,eAAA;MACAD,WAAA,CAAYH,cAAA;IAAA,CACd;IAAAF,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAY,WAAA;IAAAZ,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAK,WAAA;IAAAL,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAJA,MAAAe,UAAA,GAAmBD,EAI2C;EAE9D,IAAI,CAACX,mBAAA;IAAA,OACI;EAAA;EACT,IAAAa,EAAA;EAAA,IAAAhB,CAAA,QAAAU,cAAA,IAAAV,CAAA,QAAAe,UAAA,IAAAf,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAO,CAAA,IAAAP,CAAA,SAAAI,KAAA;IAGEY,EAAA,GAAAC,KAAA,CAAAC,SAAA;MAAAC,QAAA,E,CACEC,IAAA,CAACxB,MAAA;QAAA,cACaW,CAAA,CAAE,qBAAqB;UAAAc,KAAA,EAASjB;QAAM;QAAAkB,WAAA,EACtC;QAAAC,SAAA,EACF;QAAAC,IAAA,EACJJ,IAAA,CAAC5B,QAAA;QAAAiC,MAAA,EACC;QAAAC,OAAA,EACCb;UAEXO,IAAA,CAACV,cAAA;QAAAiB,MAAA,EAAuBZ;;;;;;;;;;;;SAT1BC,E","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useEffect","useHierarchy","HydrateHierarchyProvider","t0","$","allowedCollections","baseFilter","collectionSlug","expandedNodes","parent","parentFieldName","selectedFilters","tableData","treeData","treeLimit","typeFieldName","useAsTitle","hydrate","t1","t2"],"sources":["../../../../src/elements/Hierarchy/HydrateProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect } from 'react'\n\nimport type { HydrateHierarchyProviderProps } from '../../../providers/Hierarchy/types.js'\n\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\n\nexport const HydrateHierarchyProvider: React.FC<HydrateHierarchyProviderProps> = ({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const { hydrate } = useHierarchy()\n\n useEffect(() => {\n hydrate({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n })\n }, [\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n hydrate,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n ])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAI1B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,wBAAA,GAAoEC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,kBAAA;IAAAC,UAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,eAAA;IAAAC,eAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAb,EAajF;EACC;IAAAc;EAAA,IAAoBhB,YAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAC,kBAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAa,OAAA,IAAAb,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAO,eAAA,IAAAP,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAS,QAAA,IAAAT,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAW,aAAA,IAAAX,CAAA,SAAAY,UAAA;IAEVE,EAAA,GAAAA,CAAA;MACRD,OAAA;QAAAZ,kBAAA;QAAAC,UAAA;QAAAC,cAAA;QAAAC,aAAA;QAAAC,MAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,aAAA;QAAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useEffect","useHierarchy","HydrateHierarchyProvider","t0","$","allowedCollections","baseFilter","collectionSlug","expandedNodes","parent","parentFieldName","selectedFilters","tableData","treeData","treeLimit","typeFieldName","useAsTitle","hydrate","t1","t2"],"sources":["../../../../src/elements/Hierarchy/HydrateProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect } from 'react'\n\nimport type { HydrateHierarchyProviderProps } from '../../../providers/Hierarchy/types.js'\n\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\n\nexport const HydrateHierarchyProvider: React.FC<HydrateHierarchyProviderProps> = ({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const { hydrate } = useHierarchy()\n\n useEffect(() => {\n hydrate({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n })\n }, [\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n hydrate,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n ])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAI1B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,wBAAA,GAAoEC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,kBAAA;IAAAC,UAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,eAAA;IAAAC,eAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAb,EAajF;EACC;IAAAc;EAAA,IAAoBhB,YAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAC,kBAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAa,OAAA,IAAAb,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAO,eAAA,IAAAP,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAS,QAAA,IAAAT,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAW,aAAA,IAAAX,CAAA,SAAAY,UAAA;IAEVE,EAAA,GAAAA,CAAA;MACRD,OAAA,CAAQ;QAAAZ,kBAAA;QAAAC,UAAA;QAAAC,cAAA;QAAAC,aAAA;QAAAC,MAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,aAAA;QAAAC;MAaR;IAAA,CACF;IAAGG,EAAA,IACDd,kBAAA,EACAC,UAAA,EACAC,cAAA,EACAC,aAAA,EACAS,OAAA,EACAR,MAAA,EACAC,eAAA,EACAC,eAAA,EACAC,SAAA,EACAC,QAAA,EACAC,SAAA,EACAC,aAAA,EACAC,UAAA,CACD;IAAAZ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,cAAA;IAAAH,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAa,OAAA;IAAAb,CAAA,MAAAK,MAAA;IAAAL,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAS,QAAA;IAAAT,CAAA,OAAAU,SAAA;IAAAV,CAAA,OAAAW,aAAA;IAAAX,CAAA,OAAAY,UAAA;IAAAZ,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;EAAA;IAAAD,EAAA,GAAAd,CAAA;IAAAe,EAAA,GAAAf,CAAA;EAAA;EA7BDJ,SAAA,CAAUkB,EAeV,EAAGC,EAcF;EAAA,OAEM;AAAA,CACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","FolderIcon","ReplaceIcon","useTranslation","Button","Chip","DialogFooter","baseClass","HierarchyPath","Icon","path","label","map","segment","title","join","_jsx","className","icon","HierarchyModalFooter","t0","$","confirmLabel","destinationPath","isBusy","t1","isConfirmDisabled","isMultiSelect","onClear","onConfirm","onMoveToRoot","placeholderLabel","previousPath","selectionCount","selectionCountLabel","showMoveToRoot","undefined","t","t2","_jsxs","children","Fragment","buttonStyle","margin","onClick","size","length","disabled"],"sources":["../../../../../src/elements/Hierarchy/Modal/Footer/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { PathSegment } from '../../ColumnBrowser/types.js'\n\nimport { FolderIcon } from '../../../../icons/Folder/index.js'\nimport { ReplaceIcon } from '../../../../icons/Replace/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { Chip } from '../../../Chip/index.js'\nimport { DialogFooter } from '../../../Dialog/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-modal-footer'\n\nexport type HierarchyModalFooterProps = {\n confirmLabel: string\n destinationPath?: PathSegment[]\n Icon?: React.ReactNode\n isBusy?: boolean\n isConfirmDisabled: boolean\n isMultiSelect: boolean\n onClear: () => void\n onConfirm: () => void\n onMoveToRoot?: () => void\n placeholderLabel: string\n previousPath?: PathSegment[]\n selectionCount: number\n selectionCountLabel: string\n showMoveToRoot?: boolean\n}\n\nconst HierarchyPath: React.FC<{\n Icon?: React.ReactNode\n path: PathSegment[]\n}> = ({ Icon, path }) => {\n const label = path.map((segment) => segment.title).join(' / ')\n\n return (\n <Chip aria-label={label} className={`${baseClass}__path`} icon={Icon ?? <FolderIcon />}>\n {label}\n </Chip>\n )\n}\n\nexport const HierarchyModalFooter: React.FC<HierarchyModalFooterProps> = ({\n confirmLabel,\n destinationPath,\n Icon,\n isBusy = false,\n isConfirmDisabled,\n isMultiSelect,\n onClear,\n onConfirm,\n onMoveToRoot,\n placeholderLabel,\n previousPath,\n selectionCount,\n selectionCountLabel,\n showMoveToRoot,\n}) => {\n const { t } = useTranslation()\n\n return (\n <DialogFooter>\n <div className={`${baseClass}__info`}>\n {isMultiSelect ? (\n <React.Fragment>\n <span className={`${baseClass}__secondary`}>{selectionCountLabel}</span>\n {selectionCount > 0 ? (\n <Button\n buttonStyle=\"primary-ghost\"\n className={`${baseClass}__clear`}\n margin={false}\n onClick={onClear}\n size=\"medium\"\n >\n {t('general:clear')}\n </Button>\n ) : null}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {previousPath?.length ? (\n <React.Fragment>\n <HierarchyPath Icon={Icon} path={previousPath} />\n <span aria-hidden className={`${baseClass}__arrow`}>\n <ReplaceIcon />\n </span>\n </React.Fragment>\n ) : null}\n {destinationPath?.length ? (\n <HierarchyPath Icon={Icon} path={destinationPath} />\n ) : (\n <span className={`${baseClass}__secondary`}>{placeholderLabel}</span>\n )}\n </React.Fragment>\n )}\n </div>\n <div className={`${baseClass}__actions`}>\n {showMoveToRoot && onMoveToRoot ? (\n <Button\n buttonStyle=\"secondary\"\n disabled={isBusy}\n margin={false}\n onClick={onMoveToRoot}\n size=\"medium\"\n >\n {t('hierarchy:moveToRoot')}\n </Button>\n ) : null}\n <Button\n disabled={isBusy || isConfirmDisabled}\n margin={false}\n onClick={onConfirm}\n size=\"medium\"\n >\n {confirmLabel}\n </Button>\n </div>\n </DialogFooter>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAIlB,SAASC,UAAU,QAAQ;AAC3B,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAmBlB,MAAMC,aAAA,GAGDA,CAAC;EAAEC,IAAI;EAAEC;AAAI,CAAE;EAClB,MAAMC,KAAA,GAAQD,IAAA,CAAKE,GAAG,CAAEC,OAAA,IAAYA,OAAA,CAAQC,KAAK,EAAEC,IAAI,CAAC;EAExD,oBACEC,IAAA,CAACX,IAAA;IAAK,cAAYM,KAAA;IAAOM,SAAA,EAAW,GAAGV,SAAA,QAAiB;IAAEW,IAAA,EAAMT,IAAA,iBAAQO,IAAA,CAACf,UAAA;cACtEU;;AAGP;AAEA,OAAO,MAAMQ,oBAAA,GAA4DC,EAAA;EAAA,MAAAC,CAAA,GAAAtB,EAAA;EAAC;IAAAuB,YAAA;IAAAC,eAAA;IAAAd,IAAA;IAAAe,MAAA,EAAAC,EAAA;IAAAC,iBAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,SAAA;IAAAC,YAAA;IAAAC,gBAAA;IAAAC,YAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAf,EAezE;EAXC,MAAAI,MAAA,GAAAC,EAAc,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","FolderIcon","ReplaceIcon","useTranslation","Button","Chip","DialogFooter","baseClass","HierarchyPath","Icon","path","label","map","segment","title","join","_jsx","className","icon","HierarchyModalFooter","t0","$","confirmLabel","destinationPath","isBusy","t1","isConfirmDisabled","isMultiSelect","onClear","onConfirm","onMoveToRoot","placeholderLabel","previousPath","selectionCount","selectionCountLabel","showMoveToRoot","undefined","t","t2","_jsxs","children","Fragment","buttonStyle","margin","onClick","size","length","disabled"],"sources":["../../../../../src/elements/Hierarchy/Modal/Footer/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { PathSegment } from '../../ColumnBrowser/types.js'\n\nimport { FolderIcon } from '../../../../icons/Folder/index.js'\nimport { ReplaceIcon } from '../../../../icons/Replace/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { Chip } from '../../../Chip/index.js'\nimport { DialogFooter } from '../../../Dialog/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-modal-footer'\n\nexport type HierarchyModalFooterProps = {\n confirmLabel: string\n destinationPath?: PathSegment[]\n Icon?: React.ReactNode\n isBusy?: boolean\n isConfirmDisabled: boolean\n isMultiSelect: boolean\n onClear: () => void\n onConfirm: () => void\n onMoveToRoot?: () => void\n placeholderLabel: string\n previousPath?: PathSegment[]\n selectionCount: number\n selectionCountLabel: string\n showMoveToRoot?: boolean\n}\n\nconst HierarchyPath: React.FC<{\n Icon?: React.ReactNode\n path: PathSegment[]\n}> = ({ Icon, path }) => {\n const label = path.map((segment) => segment.title).join(' / ')\n\n return (\n <Chip aria-label={label} className={`${baseClass}__path`} icon={Icon ?? <FolderIcon />}>\n {label}\n </Chip>\n )\n}\n\nexport const HierarchyModalFooter: React.FC<HierarchyModalFooterProps> = ({\n confirmLabel,\n destinationPath,\n Icon,\n isBusy = false,\n isConfirmDisabled,\n isMultiSelect,\n onClear,\n onConfirm,\n onMoveToRoot,\n placeholderLabel,\n previousPath,\n selectionCount,\n selectionCountLabel,\n showMoveToRoot,\n}) => {\n const { t } = useTranslation()\n\n return (\n <DialogFooter>\n <div className={`${baseClass}__info`}>\n {isMultiSelect ? (\n <React.Fragment>\n <span className={`${baseClass}__secondary`}>{selectionCountLabel}</span>\n {selectionCount > 0 ? (\n <Button\n buttonStyle=\"primary-ghost\"\n className={`${baseClass}__clear`}\n margin={false}\n onClick={onClear}\n size=\"medium\"\n >\n {t('general:clear')}\n </Button>\n ) : null}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {previousPath?.length ? (\n <React.Fragment>\n <HierarchyPath Icon={Icon} path={previousPath} />\n <span aria-hidden className={`${baseClass}__arrow`}>\n <ReplaceIcon />\n </span>\n </React.Fragment>\n ) : null}\n {destinationPath?.length ? (\n <HierarchyPath Icon={Icon} path={destinationPath} />\n ) : (\n <span className={`${baseClass}__secondary`}>{placeholderLabel}</span>\n )}\n </React.Fragment>\n )}\n </div>\n <div className={`${baseClass}__actions`}>\n {showMoveToRoot && onMoveToRoot ? (\n <Button\n buttonStyle=\"secondary\"\n disabled={isBusy}\n margin={false}\n onClick={onMoveToRoot}\n size=\"medium\"\n >\n {t('hierarchy:moveToRoot')}\n </Button>\n ) : null}\n <Button\n disabled={isBusy || isConfirmDisabled}\n margin={false}\n onClick={onConfirm}\n size=\"medium\"\n >\n {confirmLabel}\n </Button>\n </div>\n </DialogFooter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
const baseClass = 'hierarchy-search-result-item';
|
|
7
7
|
export const HierarchySearchResultItem = t0 => {
|
|
8
|
-
const $ = _c(
|
|
8
|
+
const $ = _c(14);
|
|
9
9
|
const {
|
|
10
10
|
id,
|
|
11
11
|
onClick,
|
|
@@ -46,21 +46,28 @@ export const HierarchySearchResultItem = t0 => {
|
|
|
46
46
|
}
|
|
47
47
|
const handleKeyDown = t3;
|
|
48
48
|
let t4;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
if ($[6] !== path || $[7] !== truncateSegments) {
|
|
50
|
+
bb0: {
|
|
51
|
+
if (!path) {
|
|
52
|
+
t4 = "";
|
|
53
|
+
break bb0;
|
|
54
|
+
}
|
|
55
|
+
const segments = path.split(" / ");
|
|
56
|
+
if (segments.length <= truncateSegments) {
|
|
57
|
+
t4 = path;
|
|
58
|
+
break bb0;
|
|
59
|
+
}
|
|
60
|
+
t4 = "... / " + segments.slice(-truncateSegments).join(" / ");
|
|
58
61
|
}
|
|
59
|
-
|
|
62
|
+
$[6] = path;
|
|
63
|
+
$[7] = truncateSegments;
|
|
64
|
+
$[8] = t4;
|
|
65
|
+
} else {
|
|
66
|
+
t4 = $[8];
|
|
60
67
|
}
|
|
61
68
|
const truncatedPath = t4;
|
|
62
69
|
let t5;
|
|
63
|
-
if ($[
|
|
70
|
+
if ($[9] !== handleClick || $[10] !== handleKeyDown || $[11] !== title || $[12] !== truncatedPath) {
|
|
64
71
|
t5 = _jsxs("div", {
|
|
65
72
|
className: baseClass,
|
|
66
73
|
onClick: handleClick,
|
|
@@ -75,13 +82,13 @@ export const HierarchySearchResultItem = t0 => {
|
|
|
75
82
|
children: truncatedPath
|
|
76
83
|
})]
|
|
77
84
|
});
|
|
78
|
-
$[
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
85
|
+
$[9] = handleClick;
|
|
86
|
+
$[10] = handleKeyDown;
|
|
87
|
+
$[11] = title;
|
|
88
|
+
$[12] = truncatedPath;
|
|
89
|
+
$[13] = t5;
|
|
83
90
|
} else {
|
|
84
|
-
t5 = $[
|
|
91
|
+
t5 = $[13];
|
|
85
92
|
}
|
|
86
93
|
return t5;
|
|
87
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchySearchResultItem.js","names":["c","_c","React","useCallback","useMemo","baseClass","HierarchySearchResultItem","t0","$","id","onClick","path","title","truncateSegments","t1","undefined","t2","handleClick","t3","e","key","preventDefault","handleKeyDown","t4","bb0","segments","split","length","slice","join","truncatedPath","t5","_jsxs","className","onKeyDown","role","tabIndex","children","_jsx"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResultItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nconst baseClass = 'hierarchy-search-result-item'\n\ntype HierarchySearchResultItemProps = {\n id: number | string\n onClick: ({ id }: { id: number | string }) => void\n path: string\n title: string\n truncateSegments?: number\n}\n\nexport const HierarchySearchResultItem: React.FC<HierarchySearchResultItemProps> = ({\n id,\n onClick,\n path,\n title,\n truncateSegments = 3,\n}) => {\n const handleClick = useCallback(() => {\n onClick({ id })\n }, [id, onClick])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick({ id })\n }\n },\n [id, onClick],\n )\n\n const truncatedPath = useMemo(() => {\n if (!path) {\n return ''\n }\n\n const segments = path.split(' / ')\n\n if (segments.length <= truncateSegments) {\n return path\n }\n\n return '... / ' + segments.slice(-truncateSegments).join(' / ')\n }, [path, truncateSegments])\n\n return (\n <div\n className={baseClass}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__title`}>{title}</div>\n {truncatedPath && <div className={`${baseClass}__path`}>{truncatedPath}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,EAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,gBAAA,EAAAC;EAAA,IAAAP,EAMnF;EADC,MAAAM,gBAAA,GAAAC,EAAoB,
|
|
1
|
+
{"version":3,"file":"HierarchySearchResultItem.js","names":["c","_c","React","useCallback","useMemo","baseClass","HierarchySearchResultItem","t0","$","id","onClick","path","title","truncateSegments","t1","undefined","t2","handleClick","t3","e","key","preventDefault","handleKeyDown","t4","bb0","segments","split","length","slice","join","truncatedPath","t5","_jsxs","className","onKeyDown","role","tabIndex","children","_jsx"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResultItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nconst baseClass = 'hierarchy-search-result-item'\n\ntype HierarchySearchResultItemProps = {\n id: number | string\n onClick: ({ id }: { id: number | string }) => void\n path: string\n title: string\n truncateSegments?: number\n}\n\nexport const HierarchySearchResultItem: React.FC<HierarchySearchResultItemProps> = ({\n id,\n onClick,\n path,\n title,\n truncateSegments = 3,\n}) => {\n const handleClick = useCallback(() => {\n onClick({ id })\n }, [id, onClick])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick({ id })\n }\n },\n [id, onClick],\n )\n\n const truncatedPath = useMemo(() => {\n if (!path) {\n return ''\n }\n\n const segments = path.split(' / ')\n\n if (segments.length <= truncateSegments) {\n return path\n }\n\n return '... / ' + segments.slice(-truncateSegments).join(' / ')\n }, [path, truncateSegments])\n\n return (\n <div\n className={baseClass}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__title`}>{title}</div>\n {truncatedPath && <div className={`${baseClass}__path`}>{truncatedPath}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,EAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,gBAAA,EAAAC;EAAA,IAAAP,EAMnF;EADC,MAAAM,gBAAA,GAAAC,EAAoB,KAApBC,SAAoB,GAApB,CAAoB,GAApBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAR,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAEYM,EAAA,GAAAA,CAAA;MAC9BN,OAAA,CAAQ;QAAAD;MAAK;IAAA,CACf;IAAAD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAFA,MAAAS,WAAA,GAAoBD,EAEJ;EAAA,IAAAE,EAAA;EAAA,IAAAV,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAGdQ,EAAA,GAAAC,CAAA;MACE,IAAIA,CAAA,CAAAC,GAAK,KAAK,OAAqB,IAAVD,CAAA,CAAAC,GAAK,KAAK;QACjCD,CAAA,CAAAE,cAAgB;QAChBX,OAAA,CAAQ;UAAAD;QAAK;MAAA;IACf,CACF;IAAAD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EANF,MAAAc,aAAA,GAAsBJ,EAOP;EAAA,IAAAK,EAAA;EAAA,IAAAf,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,gBAAA;IAAAW,GAAA;MAIb,IAAI,CAACb,IAAA;QACHY,EAAA,GAAO;QAAP,MAAAC,GAAA;MAAO;MAGT,MAAAC,QAAA,GAAiBd,IAAA,CAAAe,KAAU,CAAC;MAE5B,IAAID,QAAA,CAAAE,MAAe,IAAId,gBAAA;QACrBU,EAAA,GAAOZ,IAAA;QAAP,MAAAa,GAAA;MAAO;MAGTD,EAAA,GAAO,WAAWE,QAAA,CAAAG,KAAc,CAAC,CAACf,gBAAA,EAAAgB,IAAsB,CAAC;IAAA;IAAArB,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,gBAAA;IAAAL,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAX3D,MAAAsB,aAAA,GAAsBP,EAYK;EAAA,IAAAQ,EAAA;EAAA,IAAAvB,CAAA,QAAAS,WAAA,IAAAT,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAAI,KAAA,IAAAJ,CAAA,SAAAsB,aAAA;IAGzBC,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EACY5B,SAAA;MAAAK,OAAA,EACFO,WAAA;MAAAiB,SAAA,EACEZ,aAAA;MAAAa,IAAA,EACN;MAAAC,QAAA,EACK;MAAAC,QAAA,E,CAEVC,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAG5B,SAAA,SAAkB;QAAAgC,QAAA,EAAGzB;UACvCkB,a,IAAiBQ,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAG5B,SAAA,QAAiB;QAAAgC,QAAA,EAAGP;;;;;;;;;;;SAR3DC,E;CAWJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchySearchResults.js","names":["c","_c","React","useTranslation","LoadMoreRow","HierarchySearchResultItem","baseClass","HierarchySearchResults","t0","$","hasNextPage","isLoading","onLoadMore","onSelect","query","results","titleField","totalDocs","t","length","t1","_jsx","className","children","t2","result","id","onClick","path","title","String","_jsxs","map","currentCount","hasMore"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResults.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { LoadMoreRow } from '../../LoadMoreRow/index.js'\nimport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\n\nconst baseClass = 'hierarchy-search-results'\n\ntype HierarchySearchResultsProps = {\n hasNextPage: boolean\n isLoading: boolean\n onLoadMore: () => void\n onSelect: ({ id }: { id: number | string }) => void\n query: string\n results: SearchResult[]\n titleField: string\n totalDocs: number\n}\n\nexport const HierarchySearchResults: React.FC<HierarchySearchResultsProps> = ({\n hasNextPage,\n isLoading,\n onLoadMore,\n onSelect,\n query,\n results,\n titleField,\n totalDocs,\n}) => {\n const { t } = useTranslation()\n\n if (results.length === 0 && !isLoading) {\n return <div className={`${baseClass}__empty`}>{t('hierarchy:noResults', { query })}</div>\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__list`}>\n {results.map((result) => (\n <HierarchySearchResultItem\n id={result.id}\n key={result.id}\n onClick={onSelect}\n path={result.path}\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n title={String(result[titleField] || result.id)}\n />\n ))}\n </div>\n <LoadMoreRow\n className={`${baseClass}__load-more`}\n currentCount={results.length}\n hasMore={hasNextPage}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n totalDocs={totalDocs}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAIlB,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,sBAAA,GAAgEC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAT,EAS7E;EACC;IAAAU;EAAA,IAAcf,cAAA;
|
|
1
|
+
{"version":3,"file":"HierarchySearchResults.js","names":["c","_c","React","useTranslation","LoadMoreRow","HierarchySearchResultItem","baseClass","HierarchySearchResults","t0","$","hasNextPage","isLoading","onLoadMore","onSelect","query","results","titleField","totalDocs","t","length","t1","_jsx","className","children","t2","result","id","onClick","path","title","String","_jsxs","map","currentCount","hasMore"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResults.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { LoadMoreRow } from '../../LoadMoreRow/index.js'\nimport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\n\nconst baseClass = 'hierarchy-search-results'\n\ntype HierarchySearchResultsProps = {\n hasNextPage: boolean\n isLoading: boolean\n onLoadMore: () => void\n onSelect: ({ id }: { id: number | string }) => void\n query: string\n results: SearchResult[]\n titleField: string\n totalDocs: number\n}\n\nexport const HierarchySearchResults: React.FC<HierarchySearchResultsProps> = ({\n hasNextPage,\n isLoading,\n onLoadMore,\n onSelect,\n query,\n results,\n titleField,\n totalDocs,\n}) => {\n const { t } = useTranslation()\n\n if (results.length === 0 && !isLoading) {\n return <div className={`${baseClass}__empty`}>{t('hierarchy:noResults', { query })}</div>\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__list`}>\n {results.map((result) => (\n <HierarchySearchResultItem\n id={result.id}\n key={result.id}\n onClick={onSelect}\n path={result.path}\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n title={String(result[titleField] || result.id)}\n />\n ))}\n </div>\n <LoadMoreRow\n className={`${baseClass}__load-more`}\n currentCount={results.length}\n hasMore={hasNextPage}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n totalDocs={totalDocs}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAIlB,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,sBAAA,GAAgEC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAT,EAS7E;EACC;IAAAU;EAAA,IAAcf,cAAA;EAEd,IAAIY,OAAA,CAAAI,MAAc,KAAK,CAAM,IAAzB,CAAyBR,SAAA;IAAA,IAAAS,EAAA;IAAA,IAAAX,CAAA,QAAAK,KAAA,IAAAL,CAAA,QAAAS,CAAA;MACpBE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAGhB,SAAA,SAAkB;QAAAiB,QAAA,EAAGL,CAAA,CAAE,uBAAuB;UAAAJ;QAAQ;;;;;;;;WAAzEM,E;;EACT,IAAAA,EAAA;EAAA,IAAAX,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAO,UAAA,IAAAP,CAAA,QAAAQ,SAAA;IAAA,IAAAO,EAAA;IAAA,IAAAf,CAAA,SAAAI,QAAA,IAAAJ,CAAA,SAAAO,UAAA;MAKmBQ,EAAA,GAAAC,MAAA,IACXJ,IAAA,CAAChB,yBAAA;QAAAqB,EAAA,EACKD,MAAA,CAAAC,EAAS;QAAAC,OAAA,EAEJd,QAAA;QAAAe,IAAA,EACHH,MAAA,CAAAG,IAAW;QAAAC,KAAA,EAEVC,MAAA,CAAOL,MAAM,CAACT,UAAA,CAAwB,IAATS,MAAA,CAAAC,EAAS;SAJxCD,MAAA,CAAAC,EAAS;MAAAjB,CAAA,OAAAI,QAAA;MAAAJ,CAAA,OAAAO,UAAA;MAAAP,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IALtBW,EAAA,GAAAW,KAAA,CAAC;MAAAT,SAAA,EAAehB,SAAA;MAAAiB,QAAA,E,CACdF,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAGhB,SAAA,QAAiB;QAAAiB,QAAA,EACjCR,OAAA,CAAAiB,GAAW,CAACR,EAGK;UAQpBH,IAAA,CAACjB,WAAA;QAAAkB,SAAA,EACY,GAAGhB,SAAA,aAAsB;QAAA2B,YAAA,EACtBlB,OAAA,CAAAI,MAAc;QAAAe,OAAA,EACnBxB,WAAA;QAAAC,SAAA;QAAAC,UAAA;QAAAK;;;;;;;;;;;;;;SAhBbG,E;CAuBJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useState","FilterIcon","useConfig","useTranslation","Button","Popup","PopupList","SearchInput","HierarchySearchResults","useHierarchySearch","baseClass","HierarchySearch","t0","$","collectionSlug","collectionSpecificOptions","isActive","onActiveChange","onFilterChange","onSelect","selectedFilters","i18n","t","getEntityConfig","inputValue","setInputValue","completedQuery","setCompletedQuery","collectionConfig","titleField","admin","useAsTitle","collectionLabel","labels","plural","hierarchyConfig","hierarchy","clearResults","hasNextPage","isLoading","loadMore","results","search","totalDocs","parentFieldName","titlePathField","titlePathFieldName","t1","query","handleSearch","t2","handleClear","t3","value","handleInputChange","t4","t5","id","handleSelect","t6","selectedValues","handleFilterChange","hasFilters","length","hasActiveFilters","_jsxs","className","children","_jsx","onChange","onClear","onSearch","placeholder","label","buttonClassName","caret","horizontalAlign","popupType","render","CheckboxGroup","map","value_0","isActive_0","includes","CheckboxGroupItem","active","onClick","newSelectedValues","filter","v","onKeyDown","ariaProps","t7","buttonStyle","extraButtonProps","icon","hasBadgeCutout","size","role","count","onLoadMore","HierarchySearchResultItem"],"sources":["../../../../src/elements/Hierarchy/Search/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useState } from 'react'\n\nimport type { HierarchySearchProps } from './types.js'\n\nimport { FilterIcon } from '../../../icons/Filter/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { SearchInput } from '../../Search/SearchInput/index.js'\nimport { HierarchySearchResults } from './HierarchySearchResults.js'\nimport { useHierarchySearch } from './useHierarchySearch.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-search'\n\nexport const HierarchySearch: React.FC<HierarchySearchProps> = ({\n collectionSlug,\n collectionSpecificOptions,\n isActive,\n onActiveChange,\n onFilterChange,\n onSelect,\n selectedFilters,\n}) => {\n const { i18n, t } = useTranslation()\n const { getEntityConfig } = useConfig()\n const [inputValue, setInputValue] = useState('')\n const [completedQuery, setCompletedQuery] = useState('')\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const titleField = collectionConfig?.admin?.useAsTitle || 'id'\n const collectionLabel = getTranslation(collectionConfig?.labels?.plural, i18n)\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : null\n\n const { clearResults, hasNextPage, isLoading, loadMore, results, search, totalDocs } =\n useHierarchySearch({\n collectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n titleField,\n titlePathField: hierarchyConfig?.titlePathFieldName,\n })\n\n const handleSearch = useCallback(\n async (query: string) => {\n await search(query)\n setCompletedQuery(query)\n onActiveChange(true)\n },\n [search, onActiveChange],\n )\n\n const handleClear = useCallback(() => {\n setInputValue('')\n clearResults()\n onActiveChange(false)\n }, [clearResults, onActiveChange])\n\n const handleInputChange = useCallback(\n (value: string) => {\n setInputValue(value)\n if (!value && isActive) {\n clearResults()\n onActiveChange(false)\n }\n },\n [isActive, clearResults, onActiveChange],\n )\n\n const handleSelect = useCallback(\n ({ id }: { id: number | string }) => {\n onSelect({ id })\n handleClear()\n },\n [onSelect, handleClear],\n )\n\n const handleFilterChange = useCallback(\n ({ selectedValues }: { selectedValues: string[] }) => {\n onFilterChange?.(selectedValues)\n },\n [onFilterChange],\n )\n\n const hasFilters = collectionSpecificOptions && collectionSpecificOptions.length > 0\n const hasActiveFilters = selectedFilters && selectedFilters.length > 0\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__controls`}>\n <SearchInput\n onChange={handleInputChange}\n onClear={handleClear}\n onSearch={handleSearch}\n placeholder={t('hierarchy:searchLabel', { label: collectionLabel })}\n value={inputValue}\n />\n {hasFilters && (\n <Popup\n buttonClassName={`${baseClass}__filter`}\n caret={false}\n horizontalAlign=\"right\"\n popupType=\"menu\"\n render={() => (\n <PopupList.CheckboxGroup>\n {collectionSpecificOptions.map(({ label, value }) => {\n const isActive = selectedFilters?.includes(value)\n return (\n <PopupList.CheckboxGroupItem\n active={isActive}\n key={value}\n onClick={() => {\n const newSelectedValues = isActive\n ? selectedFilters.filter((v) => v !== value)\n : [...selectedFilters, value]\n handleFilterChange({ selectedValues: newSelectedValues })\n }}\n >\n {label}\n </PopupList.CheckboxGroupItem>\n )\n })}\n </PopupList.CheckboxGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n {...ariaProps}\n aria-label={t('general:filter')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__filter`}\n extraButtonProps={{ onKeyDown }}\n icon={<FilterIcon hasBadgeCutout={hasActiveFilters} size={16} />}\n onClick={onClick}\n round\n selected={active}\n />\n )}\n verticalAlign=\"bottom\"\n />\n )}\n </div>\n <div aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {isActive && !isLoading\n ? totalDocs === 0\n ? t('hierarchy:noResults', { query: completedQuery })\n : t('hierarchy:searchResults', { count: totalDocs })\n : ''}\n </div>\n {isActive && (\n <HierarchySearchResults\n hasNextPage={hasNextPage}\n isLoading={isLoading}\n onLoadMore={loadMore}\n onSelect={handleSelect}\n query={inputValue}\n results={results}\n titleField={titleField}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\nexport { HierarchySearchResults } from './HierarchySearchResults.js'\nexport type { HierarchySearchProps, SearchResult } from './types.js'\nexport { useHierarchySearch } from './useHierarchySearch.js'\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAI7C,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,eAAA,GAAkDC,EAAA;EAAA,MAAAC,CAAA,GAAAjB,EAAA;EAAC;IAAAkB,cAAA;IAAAC,yBAAA;IAAAC,QAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC,QAAA;IAAAC;EAAA,IAAAR,EAQ/D;EACC;IAAAS,IAAA;IAAAC;EAAA,IAAoBnB,cAAA;EACpB;IAAAoB;EAAA,IAA4BrB,SAAA;EAC5B,OAAAsB,UAAA,EAAAC,aAAA,IAAoCzB,QAAA,CAAS;EAC7C,OAAA0B,cAAA,EAAAC,iBAAA,IAA4C3B,QAAA,CAAS;EAErD,MAAA4B,gBAAA,GAAyBL,eAAA;IAAAT;EAAA,CAAiC;EAC1D,MAAAe,UAAA,GAAmBD,gBAAA,EAAAE,KAAA,EAAAC,UAAA,IAAuC;EAC1D,MAAAC,eAAA,GAAwBnC,cAAA,CAAe+B,gBAAA,EAAAK,MAAA,EAAAC,MAAA,EAAkCb,IAAA;EACzE,MAAAc,eAAA,GACEP,gBAAA,EAAAQ,SAAA,IAA+B,OAAOR,gBAAA,CAAAQ,SAAA,KAA+B,WACjER,gBAAA,CAAAQ,SAAA,OACA;EAEN;IAAAC,YAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC;EAAA,IACElC,kBAAA;IAAAK,cAAA;IAAA8B,eAAA,EAEmBT,eAAA,EAAAS,eAAA;IAAAf,UAAA;IAAAgB,cAAA,EAEDV,eAAA,EAAAW;EAAA,CAClB;EAAA,IAAAC,EAAA;EAAA,IAAAlC,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAA6B,MAAA;IAGAK,EAAA,SAAAC,KAAA;MAAA,MACQN,MAAA,CAAOM,KAAA;MACbrB,iBAAA,CAAkBqB,KAAA;MAClB/B,cAAA,KAAe;IAAA;IACjBJ,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAA6B,MAAA;IAAA7B,CAAA,MAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EALF,MAAAoC,YAAA,GAAqBF,EAMK;EAAA,IAAAG,EAAA;EAAA,IAAArC,CAAA,QAAAwB,YAAA,IAAAxB,CAAA,QAAAI,cAAA;IAGMiC,EAAA,GAAAA,CAAA;MAC9BzB,aAAA,CAAc;MACdY,YAAA;MACApB,cAAA,MAAe;IAAA;IACjBJ,CAAA,MAAAwB,YAAA;IAAAxB,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAJA,MAAAsC,WAAA,GAAoBD,EAIa;EAAA,IAAAE,EAAA;EAAA,IAAAvC,CAAA,QAAAwB,YAAA,IAAAxB,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAI,cAAA;IAG/BmC,EAAA,GAAAC,KAAA;MACE5B,aAAA,CAAc4B,KAAA;MAAA,IACV,CAACA,KAAA,IAASrC,QAAA;QACZqB,YAAA;QACApB,cAAA,MAAe;MAAA;IAAA;IAEnBJ,CAAA,MAAAwB,YAAA;IAAAxB,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAuC,EAAA;EAAA;IAAAA,EAAA,GAAAvC,CAAA;EAAA;EAPF,MAAAyC,iBAAA,GAA0BF,EAQgB;EAAA,IAAAG,EAAA;EAAA,IAAA1C,CAAA,SAAAsC,WAAA,IAAAtC,CAAA,SAAAM,QAAA;IAIxCoC,EAAA,GAAAC,EAAA;MAAC;QAAAC;MAAA,IAAAD,EAA+B;MAC9BrC,QAAA;QAAAsC;MAAA,CAAc;MACdN,WAAA;IAAA;IACFtC,CAAA,OAAAsC,WAAA;IAAAtC,CAAA,OAAAM,QAAA;IAAAN,CAAA,OAAA0C,EAAA;EAAA;IAAAA,EAAA,GAAA1C,CAAA;EAAA;EAJF,MAAA6C,YAAA,GAAqBH,EAKI;EAAA,IAAAC,EAAA;EAAA,IAAA3C,CAAA,SAAAK,cAAA;IAIvBsC,EAAA,GAAAG,EAAA;MAAC;QAAAC;MAAA,IAAAD,EAAgD;MAC/CzC,cAAA,GAAiB0C,cAAA;IAAA;IACnB/C,CAAA,OAAAK,cAAA;IAAAL,CAAA,OAAA2C,EAAA;EAAA;IAAAA,EAAA,GAAA3C,CAAA;EAAA;EAHF,MAAAgD,kBAAA,GAA2BL,EAIT;EAGlB,MAAAM,UAAA,GAAmB/C,yBAAA,IAA6BA,yBAAA,CAAAgD,MAAA,IAAmC;EACnF,MAAAC,gBAAA,GAAyB5C,eAAA,IAAmBA,eAAA,CAAA2C,MAAA,IAAyB;EAAA,OAGnEE,KAAA,CAAC;IAAAC,SAAA,EAAAxD,SAAA;IAAAyD,QAAA,GACCF,KAAA,CAAC;MAAAC,SAAA,EAAe,GAAAxD,SAAA,YAAwB;MAAAyD,QAAA,GACtCC,IAAA,CAAA7D,WAAA;QAAA8D,QAAA,EACYf,iBAAA;QAAAgB,OAAA,EACDnB,WAAA;QAAAoB,QAAA,EACCtB,YAAA;QAAAuB,WAAA,EACGlD,CAAA,CAAE;UAAAmD,KAAA,EAAkCzC;QAAA,CAAgB;QAAAqB,KAAA,EAC1D7B;MAAA,C,GAERsC,UAAA,IACCM,IAAA,CAAA/D,KAAA;QAAAqE,eAAA,EACmB,GAAAhE,SAAA,UAAsB;QAAAiE,KAAA;QAAAC,eAAA,EAEvB;QAAAC,SAAA,EACN;QAAAC,MAAA,EAAAA,CAAA,KAERV,IAAA,CAAA9D,SAAA,CAAAyE,aAAA;UAAAZ,QAAA,EACGpD,yBAAA,CAAAiE,GAAA,CAAArB,EAAA;YAA+B;cAAAc,KAAA;cAAApB,KAAA,EAAA4B;YAAA,IAAAtB,EAAgB;YAC9C,MAAAuB,UAAA,GAAiB9D,eAAA,EAAA+D,QAAA,CAA0B9B,OAAA;YAAA,OAEzCe,IAAA,CAAA9D,SAAA,CAAA8E,iBAAA;cAAAC,MAAA,EACUrE,UAAA;cAAAsE,OAAA,EAAAA,CAAA;gBAGN,MAAAC,iBAAA,GAA0BvE,UAAA,GACtBI,eAAA,CAAAoE,MAAA,CAAAC,CAAA,IAA8BA,CAAA,KAAMpC,OAAA,QAChCjC,eAAA,EAAiBiC,OAAA,CAAM;gBAC/BQ,kBAAA;kBAAAD,cAAA,EAAqC2B;gBAAA,CAAkB;cAAA;cAAApB,QAAA,EAGxDM;YAAA,GARIpB,OAAA;UAAA,CAWX;QAAA,C;;UAGW;YAAAgC,MAAA;YAAAC,OAAA;YAAAI,SAAA;YAAA,GAAAC;UAAA,IAAAC,EAA4C;UAAA,OACzDxB,IAAA,CAAAhE,MAAA;YAAA,GACMuF,SAAS;YAAA,cACDrE,CAAA,CAAE;YAAAuE,WAAA,EACF;YAAA3B,SAAA,EACD,GAAAxD,SAAA,UAAsB;YAAAoF,gBAAA;cAAAJ;YAAA;YAAAK,IAAA,EAE3B3B,IAAA,CAAAnE,UAAA;cAAA+F,cAAA,EAA4BhC,gBAAA;cAAAiC,IAAA;YAAA,C;;;sBAGxBZ;UAAA,C;;uBAGA;MAAA,C;QAIpBjB,IAAA,CAAC;MAAA,eAAgB;MAAAF,SAAA,EAAiB;MAAAgC,IAAA,EAAe;MAAA/B,QAAA,EAC9CnD,QAAA,KAAauB,SAAA,GACVI,SAAA,MAAc,GACZrB,CAAA,CAAE;QAAA0B,KAAA,EAAgCtB;MAAA,CAAe,IACjDJ,CAAA,CAAE;QAAA6E,KAAA,EAAoCxD;MAAA,CAAU,IAClD;IAAA,C,GAEL3B,QAAA,IACCoD,IAAA,CAAA5D,sBAAA;MAAA8B,WAAA;MAAAC,SAAA;MAAA6D,UAAA,EAGc5D,QAAA;MAAArB,QAAA,EACFuC,YAAA;MAAAV,KAAA,EACHxB,UAAA;MAAAiB,OAAA;MAAAZ,UAAA;MAAAc;IAAA,C;;CAQjB;AAEA,SAAS0D,yBAAyB,QAAQ;AAC1C,SAAS7F,sBAAsB,QAAQ;AAEvC,SAASC,kBAAkB,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useState","FilterIcon","useConfig","useTranslation","Button","Popup","PopupList","SearchInput","HierarchySearchResults","useHierarchySearch","baseClass","HierarchySearch","t0","$","collectionSlug","collectionSpecificOptions","isActive","onActiveChange","onFilterChange","onSelect","selectedFilters","i18n","t","getEntityConfig","inputValue","setInputValue","completedQuery","setCompletedQuery","collectionConfig","titleField","admin","useAsTitle","collectionLabel","labels","plural","hierarchyConfig","hierarchy","clearResults","hasNextPage","isLoading","loadMore","results","search","totalDocs","parentFieldName","titlePathField","titlePathFieldName","t1","query","handleSearch","t2","handleClear","t3","value","handleInputChange","t4","t5","id","handleSelect","t6","selectedValues","handleFilterChange","hasFilters","length","hasActiveFilters","_jsxs","className","children","_jsx","onChange","onClear","onSearch","placeholder","label","buttonClassName","caret","horizontalAlign","popupType","render","CheckboxGroup","map","value_0","isActive_0","includes","CheckboxGroupItem","active","onClick","newSelectedValues","filter","v","t7","onKeyDown","ariaProps","buttonStyle","extraButtonProps","icon","hasBadgeCutout","size","selected","role","count","onLoadMore","HierarchySearchResultItem"],"sources":["../../../../src/elements/Hierarchy/Search/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useState } from 'react'\n\nimport type { HierarchySearchProps } from './types.js'\n\nimport { FilterIcon } from '../../../icons/Filter/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { SearchInput } from '../../Search/SearchInput/index.js'\nimport { HierarchySearchResults } from './HierarchySearchResults.js'\nimport { useHierarchySearch } from './useHierarchySearch.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-search'\n\nexport const HierarchySearch: React.FC<HierarchySearchProps> = ({\n collectionSlug,\n collectionSpecificOptions,\n isActive,\n onActiveChange,\n onFilterChange,\n onSelect,\n selectedFilters,\n}) => {\n const { i18n, t } = useTranslation()\n const { getEntityConfig } = useConfig()\n const [inputValue, setInputValue] = useState('')\n const [completedQuery, setCompletedQuery] = useState('')\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const titleField = collectionConfig?.admin?.useAsTitle || 'id'\n const collectionLabel = getTranslation(collectionConfig?.labels?.plural, i18n)\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : null\n\n const { clearResults, hasNextPage, isLoading, loadMore, results, search, totalDocs } =\n useHierarchySearch({\n collectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n titleField,\n titlePathField: hierarchyConfig?.titlePathFieldName,\n })\n\n const handleSearch = useCallback(\n async (query: string) => {\n await search(query)\n setCompletedQuery(query)\n onActiveChange(true)\n },\n [search, onActiveChange],\n )\n\n const handleClear = useCallback(() => {\n setInputValue('')\n clearResults()\n onActiveChange(false)\n }, [clearResults, onActiveChange])\n\n const handleInputChange = useCallback(\n (value: string) => {\n setInputValue(value)\n if (!value && isActive) {\n clearResults()\n onActiveChange(false)\n }\n },\n [isActive, clearResults, onActiveChange],\n )\n\n const handleSelect = useCallback(\n ({ id }: { id: number | string }) => {\n onSelect({ id })\n handleClear()\n },\n [onSelect, handleClear],\n )\n\n const handleFilterChange = useCallback(\n ({ selectedValues }: { selectedValues: string[] }) => {\n onFilterChange?.(selectedValues)\n },\n [onFilterChange],\n )\n\n const hasFilters = collectionSpecificOptions && collectionSpecificOptions.length > 0\n const hasActiveFilters = selectedFilters && selectedFilters.length > 0\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__controls`}>\n <SearchInput\n onChange={handleInputChange}\n onClear={handleClear}\n onSearch={handleSearch}\n placeholder={t('hierarchy:searchLabel', { label: collectionLabel })}\n value={inputValue}\n />\n {hasFilters && (\n <Popup\n buttonClassName={`${baseClass}__filter`}\n caret={false}\n horizontalAlign=\"right\"\n popupType=\"menu\"\n render={() => (\n <PopupList.CheckboxGroup>\n {collectionSpecificOptions.map(({ label, value }) => {\n const isActive = selectedFilters?.includes(value)\n return (\n <PopupList.CheckboxGroupItem\n active={isActive}\n key={value}\n onClick={() => {\n const newSelectedValues = isActive\n ? selectedFilters.filter((v) => v !== value)\n : [...selectedFilters, value]\n handleFilterChange({ selectedValues: newSelectedValues })\n }}\n >\n {label}\n </PopupList.CheckboxGroupItem>\n )\n })}\n </PopupList.CheckboxGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n {...ariaProps}\n aria-label={t('general:filter')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__filter`}\n extraButtonProps={{ onKeyDown }}\n icon={<FilterIcon hasBadgeCutout={hasActiveFilters} size={16} />}\n onClick={onClick}\n round\n selected={active}\n />\n )}\n verticalAlign=\"bottom\"\n />\n )}\n </div>\n <div aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {isActive && !isLoading\n ? totalDocs === 0\n ? t('hierarchy:noResults', { query: completedQuery })\n : t('hierarchy:searchResults', { count: totalDocs })\n : ''}\n </div>\n {isActive && (\n <HierarchySearchResults\n hasNextPage={hasNextPage}\n isLoading={isLoading}\n onLoadMore={loadMore}\n onSelect={handleSelect}\n query={inputValue}\n results={results}\n titleField={titleField}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\nexport { HierarchySearchResults } from './HierarchySearchResults.js'\nexport type { HierarchySearchProps, SearchResult } from './types.js'\nexport { useHierarchySearch } from './useHierarchySearch.js'\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","formatAdminURL","qs","React","useCallback","useEffect","useRef","useState","useConfig","useHierarchy","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","t0","$","baseFilter","collectionSpecificOptions","hierarchyCollectionSlug","icon","initialData","initialExpandedNodes","initialSelectedFilters","parentFieldName","selectedNodeId","selectedNodeIdFromServer","treeLimit","typeFieldName","useAsTitle","router","searchParams","startRouteTransition","config","t1","routes","t2","admin","adminRoute","isSearchActive","setIsSearchActive","t3","selectedFilters","setSelectedFiltersLocal","setSelectedFilters","setSelectedFiltersContext","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","t4","get","currentParentParam","tabSlug","isActiveTab","activeTabSlug","t5","treeRefreshKey","prevTreeRefreshKeyRef","t6","t7","current","reloadTabContent","undefined","t8","JSON","stringify","baseFilterKey","t9","filters","handleFilterChange","t10","t11","id","url","path","view","addQueryPrefix","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\n collectionSpecificOptions?: { label: string; value: string }[]\n hierarchyCollectionSlug: string\n icon?: React.ReactNode\n initialData?: HierarchyInitialData | null\n initialExpandedNodes?: (number | string)[]\n initialSelectedFilters?: string[]\n parentFieldName?: string\n selectedNodeId?: null | string\n treeLimit?: number\n typeFieldName?: string\n useAsTitle?: string\n } & SidebarTabClientProps\n> = ({\n baseFilter,\n collectionSpecificOptions,\n hierarchyCollectionSlug,\n icon,\n initialData,\n initialExpandedNodes,\n initialSelectedFilters,\n parentFieldName,\n selectedNodeId: selectedNodeIdFromServer,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const router = useRouter()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const [isSearchActive, setIsSearchActive] = useState(false)\n const [selectedFilters, setSelectedFiltersLocal] = useState<string[]>(\n initialSelectedFilters ?? [],\n )\n const { setSelectedFilters: setSelectedFiltersContext, treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n\n const handleFilterChange = useCallback(\n (filters: string[]) => {\n setSelectedFiltersLocal(filters)\n setSelectedFiltersContext(filters)\n },\n [setSelectedFiltersContext],\n )\n\n const handleNavigateToParent = useCallback(\n ({ id }: { id: number | string }) => {\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${hierarchyCollectionSlug}${qs.stringify(\n { [resolvedParentFieldName]: id, view: 'hierarchy' },\n { addQueryPrefix: true },\n )}`,\n })\n startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n />\n <div className=\"hierarchy-sidebar-tab\">\n <HierarchySearch\n collectionSlug={hierarchyCollectionSlug}\n collectionSpecificOptions={collectionSpecificOptions}\n isActive={isSearchActive}\n onActiveChange={setIsSearchActive}\n onFilterChange={handleFilterChange}\n onSelect={handleNavigateToParent}\n selectedFilters={selectedFilters}\n />\n {!isSearchActive && (\n <HierarchyTree\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","formatAdminURL","qs","React","useCallback","useEffect","useRef","useState","useConfig","useHierarchy","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","t0","$","baseFilter","collectionSpecificOptions","hierarchyCollectionSlug","icon","initialData","initialExpandedNodes","initialSelectedFilters","parentFieldName","selectedNodeId","selectedNodeIdFromServer","treeLimit","typeFieldName","useAsTitle","router","searchParams","startRouteTransition","config","t1","routes","t2","admin","adminRoute","isSearchActive","setIsSearchActive","t3","selectedFilters","setSelectedFiltersLocal","setSelectedFilters","setSelectedFiltersContext","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","t4","get","currentParentParam","tabSlug","isActiveTab","activeTabSlug","t5","treeRefreshKey","prevTreeRefreshKeyRef","t6","t7","current","reloadTabContent","undefined","t8","JSON","stringify","baseFilterKey","t9","filters","handleFilterChange","t10","t11","id","url","path","view","addQueryPrefix","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\n collectionSpecificOptions?: { label: string; value: string }[]\n hierarchyCollectionSlug: string\n icon?: React.ReactNode\n initialData?: HierarchyInitialData | null\n initialExpandedNodes?: (number | string)[]\n initialSelectedFilters?: string[]\n parentFieldName?: string\n selectedNodeId?: null | string\n treeLimit?: number\n typeFieldName?: string\n useAsTitle?: string\n } & SidebarTabClientProps\n> = ({\n baseFilter,\n collectionSpecificOptions,\n hierarchyCollectionSlug,\n icon,\n initialData,\n initialExpandedNodes,\n initialSelectedFilters,\n parentFieldName,\n selectedNodeId: selectedNodeIdFromServer,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const router = useRouter()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const [isSearchActive, setIsSearchActive] = useState(false)\n const [selectedFilters, setSelectedFiltersLocal] = useState<string[]>(\n initialSelectedFilters ?? [],\n )\n const { setSelectedFilters: setSelectedFiltersContext, treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n\n const handleFilterChange = useCallback(\n (filters: string[]) => {\n setSelectedFiltersLocal(filters)\n setSelectedFiltersContext(filters)\n },\n [setSelectedFiltersContext],\n )\n\n const handleNavigateToParent = useCallback(\n ({ id }: { id: number | string }) => {\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${hierarchyCollectionSlug}${qs.stringify(\n { [resolvedParentFieldName]: id, view: 'hierarchy' },\n { addQueryPrefix: true },\n )}`,\n })\n void startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n />\n <div className=\"hierarchy-sidebar-tab\">\n <HierarchySearch\n collectionSlug={hierarchyCollectionSlug}\n collectionSpecificOptions={collectionSpecificOptions}\n isActive={isSearchActive}\n onActiveChange={setIsSearchActive}\n onFilterChange={handleFilterChange}\n onSelect={handleNavigateToParent}\n selectedFilters={selectedFilters}\n />\n {!isSearchActive && (\n <HierarchyTree\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeFocusContext.js","names":["c","_c","createContext","use","useCallback","useEffect","useLayoutEffect","useRef","useState","TreeFocusContext","undefined","TreeFocusProvider","children","focusedId","setFocusedIdState","itemsRef","Map","setFocusedId","id","item","current","get","ref","document","activeElement","focus","registerItem","set","unregisterItem","delete","moveFocus","direction","items","Array","from","values","length","sortedItems","filter","sort","a","b","aElement","bElement","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","currentIndex","findIndex","nextIndex","Math","min","max","nextItem","_jsx","value","useTreeFocus","context","Error","useFocusableItem","t0","$","type","isInitialTabStop","t1","isFocused","wasFocusedRef","t2","t3","t4","t5","t6","handleFocus","tabIndex","t7"],"sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react'\n\ntype FocusableItem = {\n id: string\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}\n\ntype TreeFocusContextType = {\n focusedId: null | string\n moveFocus: (direction: 'down' | 'up') => void\n registerItem: (item: FocusableItem) => void\n setFocusedId: (id: null | string) => void\n unregisterItem: (id: string) => void\n}\n\nconst TreeFocusContext = createContext<TreeFocusContextType | undefined>(undefined)\n\nexport const TreeFocusProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [focusedId, setFocusedIdState] = useState<null | string>(null)\n const itemsRef = useRef<Map<string, FocusableItem>>(new Map())\n\n const setFocusedId = useCallback((id: null | string) => {\n setFocusedIdState(id)\n if (id) {\n const item = itemsRef.current.get(id)\n if (item?.ref.current && document.activeElement !== item.ref.current) {\n item.ref.current.focus()\n }\n }\n }, [])\n\n const registerItem = useCallback((item: FocusableItem) => {\n itemsRef.current.set(item.id, item)\n }, [])\n\n const unregisterItem = useCallback((id: string) => {\n itemsRef.current.delete(id)\n setFocusedIdState((focusedId) => (focusedId === id ? null : focusedId))\n }, [])\n\n const moveFocus = useCallback(\n (direction: 'down' | 'up') => {\n const items = Array.from(itemsRef.current.values())\n if (items.length === 0) {\n return\n }\n\n // Sort items by their DOM position to ensure correct navigation order\n const sortedItems = items\n .filter((item) => item.ref.current)\n .sort((a, b) => {\n const aElement = a.ref.current\n const bElement = b.ref.current\n if (!aElement || !bElement) {\n return 0\n }\n\n const position = aElement.compareDocumentPosition(bElement)\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1\n }\n return 0\n })\n\n const currentIndex = focusedId ? sortedItems.findIndex((item) => item.id === focusedId) : -1\n\n let nextIndex: number\n if (direction === 'down') {\n nextIndex = currentIndex === -1 ? 0 : Math.min(currentIndex + 1, sortedItems.length - 1)\n } else {\n nextIndex = Math.max(currentIndex - 1, 0)\n }\n\n const nextItem = sortedItems[nextIndex]\n if (nextItem && nextItem.ref.current) {\n nextItem.ref.current.focus()\n setFocusedId(nextItem.id)\n }\n },\n [focusedId, setFocusedId],\n )\n\n return (\n <TreeFocusContext\n value={{\n focusedId,\n moveFocus,\n registerItem,\n setFocusedId,\n unregisterItem,\n }}\n >\n {children}\n </TreeFocusContext>\n )\n}\n\nexport const useTreeFocus = () => {\n const context = use(TreeFocusContext)\n if (!context) {\n throw new Error('useTreeFocus must be used within TreeFocusProvider')\n }\n return context\n}\n\nexport const useFocusableItem = ({\n id,\n type,\n isInitialTabStop = false,\n ref,\n}: {\n id: string\n isInitialTabStop?: boolean\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}) => {\n const { focusedId, registerItem, setFocusedId, unregisterItem } = useTreeFocus()\n const isFocused = focusedId === id\n const wasFocusedRef = useRef(false)\n\n useEffect(() => {\n registerItem({ id, type, ref })\n return () => {\n unregisterItem(id)\n }\n }, [id, ref, type, registerItem, unregisterItem])\n\n useLayoutEffect(() => {\n if (\n isFocused &&\n !wasFocusedRef.current &&\n ref.current &&\n document.activeElement !== ref.current\n ) {\n ref.current.focus()\n }\n\n wasFocusedRef.current = isFocused\n }, [isFocused, ref])\n\n const handleFocus = useCallback(() => {\n setFocusedId(id)\n }, [id, setFocusedId])\n\n const tabIndex = isFocused || (focusedId === null && isInitialTabStop) ? 0 : -1\n\n return {\n handleFocus,\n isFocused,\n tabIndex,\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TreeFocusContext.js","names":["c","_c","createContext","use","useCallback","useEffect","useLayoutEffect","useRef","useState","TreeFocusContext","undefined","TreeFocusProvider","children","focusedId","setFocusedIdState","itemsRef","Map","setFocusedId","id","item","current","get","ref","document","activeElement","focus","registerItem","set","unregisterItem","delete","moveFocus","direction","items","Array","from","values","length","sortedItems","filter","sort","a","b","aElement","bElement","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","currentIndex","findIndex","nextIndex","Math","min","max","nextItem","_jsx","value","useTreeFocus","context","Error","useFocusableItem","t0","$","type","isInitialTabStop","t1","isFocused","wasFocusedRef","t2","t3","t4","t5","t6","handleFocus","tabIndex","t7"],"sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react'\n\ntype FocusableItem = {\n id: string\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}\n\ntype TreeFocusContextType = {\n focusedId: null | string\n moveFocus: (direction: 'down' | 'up') => void\n registerItem: (item: FocusableItem) => void\n setFocusedId: (id: null | string) => void\n unregisterItem: (id: string) => void\n}\n\nconst TreeFocusContext = createContext<TreeFocusContextType | undefined>(undefined)\n\nexport const TreeFocusProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [focusedId, setFocusedIdState] = useState<null | string>(null)\n const itemsRef = useRef<Map<string, FocusableItem>>(new Map())\n\n const setFocusedId = useCallback((id: null | string) => {\n setFocusedIdState(id)\n if (id) {\n const item = itemsRef.current.get(id)\n if (item?.ref.current && document.activeElement !== item.ref.current) {\n item.ref.current.focus()\n }\n }\n }, [])\n\n const registerItem = useCallback((item: FocusableItem) => {\n itemsRef.current.set(item.id, item)\n }, [])\n\n const unregisterItem = useCallback((id: string) => {\n itemsRef.current.delete(id)\n setFocusedIdState((focusedId) => (focusedId === id ? null : focusedId))\n }, [])\n\n const moveFocus = useCallback(\n (direction: 'down' | 'up') => {\n const items = Array.from(itemsRef.current.values())\n if (items.length === 0) {\n return\n }\n\n // Sort items by their DOM position to ensure correct navigation order\n const sortedItems = items\n .filter((item) => item.ref.current)\n .sort((a, b) => {\n const aElement = a.ref.current\n const bElement = b.ref.current\n if (!aElement || !bElement) {\n return 0\n }\n\n const position = aElement.compareDocumentPosition(bElement)\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1\n }\n return 0\n })\n\n const currentIndex = focusedId ? sortedItems.findIndex((item) => item.id === focusedId) : -1\n\n let nextIndex: number\n if (direction === 'down') {\n nextIndex = currentIndex === -1 ? 0 : Math.min(currentIndex + 1, sortedItems.length - 1)\n } else {\n nextIndex = Math.max(currentIndex - 1, 0)\n }\n\n const nextItem = sortedItems[nextIndex]\n if (nextItem && nextItem.ref.current) {\n nextItem.ref.current.focus()\n setFocusedId(nextItem.id)\n }\n },\n [focusedId, setFocusedId],\n )\n\n return (\n <TreeFocusContext\n value={{\n focusedId,\n moveFocus,\n registerItem,\n setFocusedId,\n unregisterItem,\n }}\n >\n {children}\n </TreeFocusContext>\n )\n}\n\nexport const useTreeFocus = () => {\n const context = use(TreeFocusContext)\n if (!context) {\n throw new Error('useTreeFocus must be used within TreeFocusProvider')\n }\n return context\n}\n\nexport const useFocusableItem = ({\n id,\n type,\n isInitialTabStop = false,\n ref,\n}: {\n id: string\n isInitialTabStop?: boolean\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}) => {\n const { focusedId, registerItem, setFocusedId, unregisterItem } = useTreeFocus()\n const isFocused = focusedId === id\n const wasFocusedRef = useRef(false)\n\n useEffect(() => {\n registerItem({ id, type, ref })\n return () => {\n unregisterItem(id)\n }\n }, [id, ref, type, registerItem, unregisterItem])\n\n useLayoutEffect(() => {\n if (\n isFocused &&\n !wasFocusedRef.current &&\n ref.current &&\n document.activeElement !== ref.current\n ) {\n ref.current.focus()\n }\n\n wasFocusedRef.current = isFocused\n }, [isFocused, ref])\n\n const handleFocus = useCallback(() => {\n setFocusedId(id)\n }, [id, setFocusedId])\n\n const tabIndex = isFocused || (focusedId === null && isInitialTabStop) ? 0 : -1\n\n return {\n handleFocus,\n isFocused,\n tabIndex,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwD,MAAM,OAAO,CAAA;AAE5E,OAAO,KAAK,EAAkB,kBAAkB,EAAgB,MAAM,YAAY,CAAA;AAgBlF,OAAO,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwD,MAAM,OAAO,CAAA;AAE5E,OAAO,KAAK,EAAkB,kBAAkB,EAAgB,MAAM,YAAY,CAAA;AAgBlF,OAAO,aAAa,CAAA;AAgYpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAA"}
|
|
@@ -137,10 +137,15 @@ const HierarchyTreeInner = ({
|
|
|
137
137
|
prevBaseFilterKeyRef.current = baseFilterKey;
|
|
138
138
|
childrenCache.current.clear();
|
|
139
139
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
140
|
+
// Fill the cache during render, so children find initialData on their first render. Compares the
|
|
141
|
+
// inputs like useMemo would, since a useMemo used only for its side effect isn't guaranteed to run.
|
|
142
|
+
const initialDataInputs = [initialData, filterByCollections, parentFieldName, collectionSlug, treeLimit, baseFilterKey];
|
|
143
|
+
const prevInitialDataInputsRef = useRef(null);
|
|
144
|
+
const haveInitialDataInputsChanged = !prevInitialDataInputsRef.current || initialDataInputs.some((input, i) => !Object.is(input, prevInitialDataInputsRef.current[i]));
|
|
145
|
+
if (haveInitialDataInputsChanged) {
|
|
146
|
+
prevInitialDataInputsRef.current = initialDataInputs;
|
|
147
|
+
}
|
|
148
|
+
if (haveInitialDataInputsChanged && initialData && initialData.docs.length > 0) {
|
|
144
149
|
const docsByParent = new Map();
|
|
145
150
|
for (const doc of initialData.docs) {
|
|
146
151
|
const parentId = doc[parentFieldName] || 'null';
|
|
@@ -171,7 +176,7 @@ const HierarchyTreeInner = ({
|
|
|
171
176
|
});
|
|
172
177
|
}
|
|
173
178
|
}
|
|
174
|
-
}
|
|
179
|
+
}
|
|
175
180
|
const treeRef = useRef(null);
|
|
176
181
|
const allOptionRef = useRef(null);
|
|
177
182
|
const allOptionID = useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","DEFAULT_HIERARCHY_TREE_LIMIT","React","useCallback","useId","useMemo","useRef","useState","PlusIcon","useAuth","useConfig","useHierarchy","useRouter","useTranslation","Button","CreateDocumentButton","DelayedSpinner","DocumentDrawer","LoadMore","TreeFocusProvider","useFocusableItem","useTreeFocus","TreeNode","useChildren","baseClass","getDocumentTitle","doc","useAsTitle","docId","id","idStr","String","value","HierarchyTreeInner","baseFilter","collectionSlug","filterByCollections","icon","initialData","initialDataProp","initialExpandedNodes","initialExpandedNodesProp","onNodeClick","selectedNodeId","useAsTitleProp","moveFocus","router","i18n","t","permissions","getEntityConfig","closeModal","openModal","createDrawerSlug","isCreateDrawerOpen","setIsCreateDrawerOpen","getExpandedNodesForCollection","getTreeDataForCollection","toggleNodeForCollection","typeFieldName","collectionConfig","hierarchyConfig","hierarchy","undefined","parentFieldName","treeLimit","admin","canCreate","Boolean","collections","create","allPossibleTypeValues","relatedCollections","Object","keys","contextData","baseFilterKey","JSON","stringify","contextBaseFilterKey","contextSeededRef","lastInitialExpandedRef","current","expandedNodes","contextExpanded","size","Set","handleToggleNode","wasSeeded","length","initialSet","map","isCurrentlyExpanded","has","nodeId","childrenCache","Map","prevBaseFilterKeyRef","clear","docs","docsByParent","parentId","parentKey","set","get","push","filterKey","slice","sort","join","cacheKey","parentMeta","loadedParents","loadedCount","children","hasMore","page","Math","ceil","totalDocs","treeRef","allOptionRef","allOptionID","handleFocus","handleAllFocus","tabIndex","allTabIndex","type","isInitialTabStop","ref","rootNodes","isLoading","loadMore","loadMoreFromHook","refresh","cache","enabled","limit","handleLoadMore","handleNodeClick","handleTreeKeyDown","e","key","preventDefault","_jsx","className","collectionLabel","buttonStyle","drawerSlug","label","labels","singular","onSave","isAllSelected","handleAllClick","_jsxs","onKeyDown","role","filter","onClick","onFocus","plural","_Fragment","margin","redirectAfterCreate","node","nodeIdStr","nodeTitle","depth","hasChildren","title","onSelect","onToggle","selected","currentCount","onLoadMore","HierarchyTree","props"],"sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { DEFAULT_HIERARCHY_TREE_LIMIT } from 'payload/shared'\nimport React, { useCallback, useId, useMemo, useRef, useState } from 'react'\n\nimport type { CachedChildren, HierarchyTreeProps, TreeDocument } from './types.js'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { CreateDocumentButton } from '../../CreateDocumentButton/index.js'\nimport { DelayedSpinner } from '../../DelayedSpinner/index.js'\nimport { DocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { LoadMore } from './LoadMore/index.js'\nimport { TreeFocusProvider, useFocusableItem, useTreeFocus } from './TreeFocusContext.js'\nimport { TreeNode } from './TreeNode/index.js'\nimport { useChildren } from './useChildren.js'\nimport './index.css'\n\nconst baseClass = 'tree'\n\nconst getDocumentTitle = (doc: TreeDocument, useAsTitle: string | undefined): string => {\n const docId: number | string = doc.id\n const idStr = typeof docId === 'number' ? String(docId) : docId\n\n if (!useAsTitle) {\n return idStr\n }\n\n const value = doc[useAsTitle]\n if (value && (typeof value === 'string' || typeof value === 'number')) {\n return String(value)\n }\n return idStr\n}\n\nconst HierarchyTreeInner: React.FC<HierarchyTreeProps> = ({\n baseFilter,\n collectionSlug,\n filterByCollections,\n icon,\n initialData: initialDataProp,\n initialExpandedNodes: initialExpandedNodesProp,\n onNodeClick,\n selectedNodeId,\n useAsTitle: useAsTitleProp,\n}) => {\n const { moveFocus } = useTreeFocus()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { getEntityConfig } = useConfig()\n const { closeModal, openModal } = useModal()\n const createDrawerSlug = `tree-create-${useId()}`\n const [isCreateDrawerOpen, setIsCreateDrawerOpen] = useState(false)\n\n const {\n getExpandedNodesForCollection,\n getTreeDataForCollection,\n toggleNodeForCollection,\n typeFieldName,\n } = useHierarchy()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const hierarchyConfig =\n collectionConfig.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const parentFieldName = hierarchyConfig?.parentFieldName\n const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT\n const useAsTitle = useAsTitleProp ?? collectionConfig.admin?.useAsTitle\n const canCreate = Boolean(permissions?.collections?.[collectionSlug]?.create)\n\n const allPossibleTypeValues = useMemo(\n () =>\n hierarchyConfig?.relatedCollections\n ? Object.keys(hierarchyConfig.relatedCollections)\n : undefined,\n [hierarchyConfig?.relatedCollections],\n )\n\n const contextData = getTreeDataForCollection(collectionSlug)\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n const contextBaseFilterKey = contextData?.baseFilter ? JSON.stringify(contextData.baseFilter) : ''\n const initialData =\n baseFilterKey === contextBaseFilterKey ? (contextData ?? initialDataProp) : initialDataProp\n // Tracks whether context has been seeded at least once since the last navigation.\n // Resets when initialExpandedNodesProp changes (new array reference = navigation).\n // Allows the memo to distinguish \"not yet seeded\" (fall back to prop) from\n // \"user collapsed all nodes\" (trust empty context).\n const contextSeededRef = useRef(false)\n const lastInitialExpandedRef = useRef(initialExpandedNodesProp)\n if (lastInitialExpandedRef.current !== initialExpandedNodesProp) {\n lastInitialExpandedRef.current = initialExpandedNodesProp\n contextSeededRef.current = false\n }\n\n const expandedNodes = useMemo(() => {\n const contextExpanded = getExpandedNodesForCollection(collectionSlug)\n if (contextExpanded.size > 0) {\n contextSeededRef.current = true\n return contextExpanded\n }\n if (contextSeededRef.current) {\n // Context was seeded (had nodes since last navigation) — trust empty set as \"all collapsed\"\n return contextExpanded\n }\n return initialExpandedNodesProp ? new Set(initialExpandedNodesProp) : contextExpanded\n }, [collectionSlug, getExpandedNodesForCollection, initialExpandedNodesProp])\n\n const handleToggleNode = useCallback(\n ({ id }: { id: number | string }) => {\n // Mark context as seeded so the memo never falls back to the prop after this interaction.\n // Capture the previous value first — seeding is only needed on the very first interaction.\n const wasSeeded = contextSeededRef.current\n contextSeededRef.current = true\n const contextExpanded = getExpandedNodesForCollection(collectionSlug)\n if (!wasSeeded && contextExpanded.size === 0 && initialExpandedNodesProp?.length) {\n // Context not yet seeded. Seed it with all initial nodes, applying the toggle correctly:\n // exclude the target if collapsing, include it if expanding.\n const initialSet = new Set(initialExpandedNodesProp.map(String))\n const isCurrentlyExpanded = initialSet.has(String(id))\n for (const nodeId of initialExpandedNodesProp) {\n if (!isCurrentlyExpanded || String(nodeId) !== String(id)) {\n toggleNodeForCollection(collectionSlug, nodeId)\n }\n }\n if (!isCurrentlyExpanded) {\n toggleNodeForCollection(collectionSlug, id)\n }\n return\n }\n toggleNodeForCollection(collectionSlug, id)\n },\n [\n collectionSlug,\n getExpandedNodesForCollection,\n initialExpandedNodesProp,\n toggleNodeForCollection,\n ],\n )\n\n // Pre-populate cache with initialData synchronously before first render\n const childrenCache = useRef<Map<string, CachedChildren>>(new Map())\n\n const prevBaseFilterKeyRef = useRef(baseFilterKey)\n if (prevBaseFilterKeyRef.current !== baseFilterKey) {\n prevBaseFilterKeyRef.current = baseFilterKey\n childrenCache.current.clear()\n }\n\n useMemo(() => {\n if (!initialData || initialData.docs.length === 0) {\n return\n }\n\n const docsByParent = new Map<string, TreeDocument[]>()\n for (const doc of initialData.docs) {\n const parentId = doc[parentFieldName] || 'null'\n const parentKey = String(parentId)\n if (!docsByParent.has(parentKey)) {\n docsByParent.set(parentKey, [])\n }\n docsByParent.get(parentKey).push(doc)\n }\n\n const filterKey = filterByCollections?.length\n ? filterByCollections.slice().sort().join(',')\n : ''\n for (const [parentKey, docs] of docsByParent) {\n const cacheKey = `${collectionSlug}-${parentKey}-${filterKey}-${baseFilterKey}`\n const parentMeta = initialData.loadedParents[parentKey]\n\n if (parentMeta) {\n const loadedCount = parentMeta.loadedCount ?? docs.length\n childrenCache.current.set(cacheKey, {\n children: docs,\n hasMore: parentMeta.hasMore,\n page: Math.ceil(loadedCount / treeLimit) || 1,\n totalDocs: parentMeta.totalDocs,\n })\n } else {\n childrenCache.current.set(cacheKey, {\n children: docs,\n hasMore: false,\n page: 1,\n totalDocs: docs.length,\n })\n }\n }\n }, [initialData, filterByCollections, parentFieldName, collectionSlug, treeLimit, baseFilterKey])\n\n const treeRef = useRef<HTMLDivElement>(null)\n const allOptionRef = useRef<HTMLDivElement>(null)\n const allOptionID = useId()\n const { handleFocus: handleAllFocus, tabIndex: allTabIndex } = useFocusableItem({\n id: allOptionID,\n type: 'node',\n isInitialTabStop: true,\n ref: allOptionRef,\n })\n\n const {\n children: rootNodes,\n hasMore,\n isLoading,\n loadMore: loadMoreFromHook,\n refresh,\n totalDocs,\n } = useChildren({\n allPossibleTypeValues,\n baseFilter,\n cache: childrenCache,\n collectionSlug,\n enabled: true,\n filterByCollections,\n initialData,\n limit: treeLimit,\n parentFieldName,\n parentId: 'null',\n typeFieldName,\n useAsTitle,\n })\n\n const handleLoadMore = useCallback(async () => {\n await loadMoreFromHook()\n }, [loadMoreFromHook])\n\n const handleNodeClick = useCallback(\n ({ id }: { id: number | string }) => {\n onNodeClick?.({ id })\n },\n [onNodeClick],\n )\n\n const handleTreeKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault()\n moveFocus(e.key === 'ArrowDown' ? 'down' : 'up')\n }\n },\n [moveFocus],\n )\n\n if (isLoading && !rootNodes) {\n return (\n <div className={baseClass}>\n <DelayedSpinner baseClass={baseClass} isLoading={true} />\n </div>\n )\n }\n\n if (!rootNodes || rootNodes.length === 0) {\n const collectionLabel = getEntityConfig({ collectionSlug })\n return (\n <div className={baseClass}>\n <CreateDocumentButton\n buttonStyle=\"primary\"\n collections={[{ collectionSlug }]}\n drawerSlug={createDrawerSlug}\n label={t('general:createNewLabel', {\n label: getTranslation(collectionLabel.labels.singular, i18n),\n })}\n onSave={async () => {\n await refresh()\n router.refresh()\n }}\n />\n </div>\n )\n }\n\n const isAllSelected = selectedNodeId === null\n const handleAllClick = () => onNodeClick?.({ id: null })\n\n return (\n <div\n className={baseClass}\n onKeyDown={handleTreeKeyDown}\n ref={treeRef}\n role=\"tree\"\n tabIndex={-1}\n >\n <div className={`${baseClass}__all-option-wrapper`}>\n <div\n aria-selected={isAllSelected}\n className={[\n `${baseClass}__all-option`,\n 'sidebar-row',\n isAllSelected && `${baseClass}__all-option--selected`,\n isAllSelected && 'sidebar-row--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={handleAllClick}\n onFocus={handleAllFocus}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleAllClick()\n }\n }}\n ref={allOptionRef}\n role=\"treeitem\"\n tabIndex={allTabIndex}\n >\n <span className=\"sidebar-row__title\">\n {t('general:all')}{' '}\n {getTranslation(getEntityConfig({ collectionSlug })?.labels?.plural, i18n)}\n </span>\n </div>\n {canCreate && (\n <>\n <Button\n aria-label={t('general:createNewLabel', {\n label: getTranslation(collectionConfig.labels.singular, i18n),\n })}\n buttonStyle=\"ghost\"\n className={`${baseClass}__create-button`}\n margin={false}\n onClick={() => {\n setIsCreateDrawerOpen(true)\n openModal(createDrawerSlug)\n }}\n >\n <PlusIcon size={24} />\n </Button>\n {isCreateDrawerOpen && (\n <DocumentDrawer\n collectionSlug={collectionSlug}\n drawerSlug={createDrawerSlug}\n initialData={parentFieldName ? { [parentFieldName]: null } : undefined}\n onSave={async () => {\n closeModal(createDrawerSlug)\n setIsCreateDrawerOpen(false)\n await refresh()\n router.refresh()\n }}\n redirectAfterCreate={false}\n />\n )}\n </>\n )}\n </div>\n {rootNodes.map((node) => {\n const nodeId: number | string = node.id\n const nodeIdStr = typeof nodeId === 'number' ? String(nodeId) : nodeId\n const nodeTitle = getDocumentTitle(node, useAsTitle)\n\n return (\n <TreeNode\n allPossibleTypeValues={allPossibleTypeValues}\n baseFilter={baseFilter}\n cache={childrenCache}\n collectionSlug={collectionSlug}\n depth={0}\n expandedNodes={expandedNodes}\n filterByCollections={filterByCollections}\n icon={icon}\n key={nodeIdStr}\n limit={treeLimit}\n node={{ id: nodeId, hasChildren: true, title: nodeTitle }}\n onSelect={handleNodeClick}\n onToggle={handleToggleNode}\n parentFieldName={parentFieldName}\n selected={nodeIdStr === String(selectedNodeId)}\n selectedNodeId={selectedNodeId}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n })}\n {hasMore && (\n <LoadMore\n currentCount={rootNodes.length}\n depth={0}\n id=\"load-more-root\"\n onLoadMore={handleLoadMore}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport const HierarchyTree: React.FC<HierarchyTreeProps> = (props) => {\n return (\n <TreeFocusProvider>\n <HierarchyTreeInner {...props} />\n </TreeFocusProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","DEFAULT_HIERARCHY_TREE_LIMIT","React","useCallback","useId","useMemo","useRef","useState","PlusIcon","useAuth","useConfig","useHierarchy","useRouter","useTranslation","Button","CreateDocumentButton","DelayedSpinner","DocumentDrawer","LoadMore","TreeFocusProvider","useFocusableItem","useTreeFocus","TreeNode","useChildren","baseClass","getDocumentTitle","doc","useAsTitle","docId","id","idStr","String","value","HierarchyTreeInner","baseFilter","collectionSlug","filterByCollections","icon","initialData","initialDataProp","initialExpandedNodes","initialExpandedNodesProp","onNodeClick","selectedNodeId","useAsTitleProp","moveFocus","router","i18n","t","permissions","getEntityConfig","closeModal","openModal","createDrawerSlug","isCreateDrawerOpen","setIsCreateDrawerOpen","getExpandedNodesForCollection","getTreeDataForCollection","toggleNodeForCollection","typeFieldName","collectionConfig","hierarchyConfig","hierarchy","undefined","parentFieldName","treeLimit","admin","canCreate","Boolean","collections","create","allPossibleTypeValues","relatedCollections","Object","keys","contextData","baseFilterKey","JSON","stringify","contextBaseFilterKey","contextSeededRef","lastInitialExpandedRef","current","expandedNodes","contextExpanded","size","Set","handleToggleNode","wasSeeded","length","initialSet","map","isCurrentlyExpanded","has","nodeId","childrenCache","Map","prevBaseFilterKeyRef","clear","initialDataInputs","prevInitialDataInputsRef","haveInitialDataInputsChanged","some","input","i","is","docs","docsByParent","parentId","parentKey","set","get","push","filterKey","slice","sort","join","cacheKey","parentMeta","loadedParents","loadedCount","children","hasMore","page","Math","ceil","totalDocs","treeRef","allOptionRef","allOptionID","handleFocus","handleAllFocus","tabIndex","allTabIndex","type","isInitialTabStop","ref","rootNodes","isLoading","loadMore","loadMoreFromHook","refresh","cache","enabled","limit","handleLoadMore","handleNodeClick","handleTreeKeyDown","e","key","preventDefault","_jsx","className","collectionLabel","buttonStyle","drawerSlug","label","labels","singular","onSave","isAllSelected","handleAllClick","_jsxs","onKeyDown","role","filter","onClick","onFocus","plural","_Fragment","margin","redirectAfterCreate","node","nodeIdStr","nodeTitle","depth","hasChildren","title","onSelect","onToggle","selected","currentCount","onLoadMore","HierarchyTree","props"],"sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { DEFAULT_HIERARCHY_TREE_LIMIT } from 'payload/shared'\nimport React, { useCallback, useId, useMemo, useRef, useState } from 'react'\n\nimport type { CachedChildren, HierarchyTreeProps, TreeDocument } from './types.js'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { CreateDocumentButton } from '../../CreateDocumentButton/index.js'\nimport { DelayedSpinner } from '../../DelayedSpinner/index.js'\nimport { DocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { LoadMore } from './LoadMore/index.js'\nimport { TreeFocusProvider, useFocusableItem, useTreeFocus } from './TreeFocusContext.js'\nimport { TreeNode } from './TreeNode/index.js'\nimport { useChildren } from './useChildren.js'\nimport './index.css'\n\nconst baseClass = 'tree'\n\nconst getDocumentTitle = (doc: TreeDocument, useAsTitle: string | undefined): string => {\n const docId: number | string = doc.id\n const idStr = typeof docId === 'number' ? String(docId) : docId\n\n if (!useAsTitle) {\n return idStr\n }\n\n const value = doc[useAsTitle]\n if (value && (typeof value === 'string' || typeof value === 'number')) {\n return String(value)\n }\n return idStr\n}\n\nconst HierarchyTreeInner: React.FC<HierarchyTreeProps> = ({\n baseFilter,\n collectionSlug,\n filterByCollections,\n icon,\n initialData: initialDataProp,\n initialExpandedNodes: initialExpandedNodesProp,\n onNodeClick,\n selectedNodeId,\n useAsTitle: useAsTitleProp,\n}) => {\n const { moveFocus } = useTreeFocus()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { getEntityConfig } = useConfig()\n const { closeModal, openModal } = useModal()\n const createDrawerSlug = `tree-create-${useId()}`\n const [isCreateDrawerOpen, setIsCreateDrawerOpen] = useState(false)\n\n const {\n getExpandedNodesForCollection,\n getTreeDataForCollection,\n toggleNodeForCollection,\n typeFieldName,\n } = useHierarchy()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const hierarchyConfig =\n collectionConfig.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const parentFieldName = hierarchyConfig?.parentFieldName\n const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT\n const useAsTitle = useAsTitleProp ?? collectionConfig.admin?.useAsTitle\n const canCreate = Boolean(permissions?.collections?.[collectionSlug]?.create)\n\n const allPossibleTypeValues = useMemo(\n () =>\n hierarchyConfig?.relatedCollections\n ? Object.keys(hierarchyConfig.relatedCollections)\n : undefined,\n [hierarchyConfig?.relatedCollections],\n )\n\n const contextData = getTreeDataForCollection(collectionSlug)\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n const contextBaseFilterKey = contextData?.baseFilter ? JSON.stringify(contextData.baseFilter) : ''\n const initialData =\n baseFilterKey === contextBaseFilterKey ? (contextData ?? initialDataProp) : initialDataProp\n // Tracks whether context has been seeded at least once since the last navigation.\n // Resets when initialExpandedNodesProp changes (new array reference = navigation).\n // Allows the memo to distinguish \"not yet seeded\" (fall back to prop) from\n // \"user collapsed all nodes\" (trust empty context).\n const contextSeededRef = useRef(false)\n const lastInitialExpandedRef = useRef(initialExpandedNodesProp)\n if (lastInitialExpandedRef.current !== initialExpandedNodesProp) {\n lastInitialExpandedRef.current = initialExpandedNodesProp\n contextSeededRef.current = false\n }\n\n const expandedNodes = useMemo(() => {\n const contextExpanded = getExpandedNodesForCollection(collectionSlug)\n if (contextExpanded.size > 0) {\n contextSeededRef.current = true\n return contextExpanded\n }\n if (contextSeededRef.current) {\n // Context was seeded (had nodes since last navigation) — trust empty set as \"all collapsed\"\n return contextExpanded\n }\n return initialExpandedNodesProp ? new Set(initialExpandedNodesProp) : contextExpanded\n }, [collectionSlug, getExpandedNodesForCollection, initialExpandedNodesProp])\n\n const handleToggleNode = useCallback(\n ({ id }: { id: number | string }) => {\n // Mark context as seeded so the memo never falls back to the prop after this interaction.\n // Capture the previous value first — seeding is only needed on the very first interaction.\n const wasSeeded = contextSeededRef.current\n contextSeededRef.current = true\n const contextExpanded = getExpandedNodesForCollection(collectionSlug)\n if (!wasSeeded && contextExpanded.size === 0 && initialExpandedNodesProp?.length) {\n // Context not yet seeded. Seed it with all initial nodes, applying the toggle correctly:\n // exclude the target if collapsing, include it if expanding.\n const initialSet = new Set(initialExpandedNodesProp.map(String))\n const isCurrentlyExpanded = initialSet.has(String(id))\n for (const nodeId of initialExpandedNodesProp) {\n if (!isCurrentlyExpanded || String(nodeId) !== String(id)) {\n toggleNodeForCollection(collectionSlug, nodeId)\n }\n }\n if (!isCurrentlyExpanded) {\n toggleNodeForCollection(collectionSlug, id)\n }\n return\n }\n toggleNodeForCollection(collectionSlug, id)\n },\n [\n collectionSlug,\n getExpandedNodesForCollection,\n initialExpandedNodesProp,\n toggleNodeForCollection,\n ],\n )\n\n // Pre-populate cache with initialData synchronously before first render\n const childrenCache = useRef<Map<string, CachedChildren>>(new Map())\n\n const prevBaseFilterKeyRef = useRef(baseFilterKey)\n if (prevBaseFilterKeyRef.current !== baseFilterKey) {\n prevBaseFilterKeyRef.current = baseFilterKey\n childrenCache.current.clear()\n }\n\n // Fill the cache during render, so children find initialData on their first render. Compares the\n // inputs like useMemo would, since a useMemo used only for its side effect isn't guaranteed to run.\n const initialDataInputs = [\n initialData,\n filterByCollections,\n parentFieldName,\n collectionSlug,\n treeLimit,\n baseFilterKey,\n ]\n const prevInitialDataInputsRef = useRef<typeof initialDataInputs>(null)\n const haveInitialDataInputsChanged =\n !prevInitialDataInputsRef.current ||\n initialDataInputs.some((input, i) => !Object.is(input, prevInitialDataInputsRef.current[i]))\n\n if (haveInitialDataInputsChanged) {\n prevInitialDataInputsRef.current = initialDataInputs\n }\n\n if (haveInitialDataInputsChanged && initialData && initialData.docs.length > 0) {\n const docsByParent = new Map<string, TreeDocument[]>()\n for (const doc of initialData.docs) {\n const parentId = doc[parentFieldName] || 'null'\n const parentKey = String(parentId)\n if (!docsByParent.has(parentKey)) {\n docsByParent.set(parentKey, [])\n }\n docsByParent.get(parentKey).push(doc)\n }\n\n const filterKey = filterByCollections?.length\n ? filterByCollections.slice().sort().join(',')\n : ''\n for (const [parentKey, docs] of docsByParent) {\n const cacheKey = `${collectionSlug}-${parentKey}-${filterKey}-${baseFilterKey}`\n const parentMeta = initialData.loadedParents[parentKey]\n\n if (parentMeta) {\n const loadedCount = parentMeta.loadedCount ?? docs.length\n childrenCache.current.set(cacheKey, {\n children: docs,\n hasMore: parentMeta.hasMore,\n page: Math.ceil(loadedCount / treeLimit) || 1,\n totalDocs: parentMeta.totalDocs,\n })\n } else {\n childrenCache.current.set(cacheKey, {\n children: docs,\n hasMore: false,\n page: 1,\n totalDocs: docs.length,\n })\n }\n }\n }\n\n const treeRef = useRef<HTMLDivElement>(null)\n const allOptionRef = useRef<HTMLDivElement>(null)\n const allOptionID = useId()\n const { handleFocus: handleAllFocus, tabIndex: allTabIndex } = useFocusableItem({\n id: allOptionID,\n type: 'node',\n isInitialTabStop: true,\n ref: allOptionRef,\n })\n\n const {\n children: rootNodes,\n hasMore,\n isLoading,\n loadMore: loadMoreFromHook,\n refresh,\n totalDocs,\n } = useChildren({\n allPossibleTypeValues,\n baseFilter,\n cache: childrenCache,\n collectionSlug,\n enabled: true,\n filterByCollections,\n initialData,\n limit: treeLimit,\n parentFieldName,\n parentId: 'null',\n typeFieldName,\n useAsTitle,\n })\n\n const handleLoadMore = useCallback(async () => {\n await loadMoreFromHook()\n }, [loadMoreFromHook])\n\n const handleNodeClick = useCallback(\n ({ id }: { id: number | string }) => {\n onNodeClick?.({ id })\n },\n [onNodeClick],\n )\n\n const handleTreeKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault()\n moveFocus(e.key === 'ArrowDown' ? 'down' : 'up')\n }\n },\n [moveFocus],\n )\n\n if (isLoading && !rootNodes) {\n return (\n <div className={baseClass}>\n <DelayedSpinner baseClass={baseClass} isLoading={true} />\n </div>\n )\n }\n\n if (!rootNodes || rootNodes.length === 0) {\n const collectionLabel = getEntityConfig({ collectionSlug })\n return (\n <div className={baseClass}>\n <CreateDocumentButton\n buttonStyle=\"primary\"\n collections={[{ collectionSlug }]}\n drawerSlug={createDrawerSlug}\n label={t('general:createNewLabel', {\n label: getTranslation(collectionLabel.labels.singular, i18n),\n })}\n onSave={async () => {\n await refresh()\n router.refresh()\n }}\n />\n </div>\n )\n }\n\n const isAllSelected = selectedNodeId === null\n const handleAllClick = () => onNodeClick?.({ id: null })\n\n return (\n <div\n className={baseClass}\n onKeyDown={handleTreeKeyDown}\n ref={treeRef}\n role=\"tree\"\n tabIndex={-1}\n >\n <div className={`${baseClass}__all-option-wrapper`}>\n <div\n aria-selected={isAllSelected}\n className={[\n `${baseClass}__all-option`,\n 'sidebar-row',\n isAllSelected && `${baseClass}__all-option--selected`,\n isAllSelected && 'sidebar-row--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={handleAllClick}\n onFocus={handleAllFocus}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleAllClick()\n }\n }}\n ref={allOptionRef}\n role=\"treeitem\"\n tabIndex={allTabIndex}\n >\n <span className=\"sidebar-row__title\">\n {t('general:all')}{' '}\n {getTranslation(getEntityConfig({ collectionSlug })?.labels?.plural, i18n)}\n </span>\n </div>\n {canCreate && (\n <>\n <Button\n aria-label={t('general:createNewLabel', {\n label: getTranslation(collectionConfig.labels.singular, i18n),\n })}\n buttonStyle=\"ghost\"\n className={`${baseClass}__create-button`}\n margin={false}\n onClick={() => {\n setIsCreateDrawerOpen(true)\n openModal(createDrawerSlug)\n }}\n >\n <PlusIcon size={24} />\n </Button>\n {isCreateDrawerOpen && (\n <DocumentDrawer\n collectionSlug={collectionSlug}\n drawerSlug={createDrawerSlug}\n initialData={parentFieldName ? { [parentFieldName]: null } : undefined}\n onSave={async () => {\n closeModal(createDrawerSlug)\n setIsCreateDrawerOpen(false)\n await refresh()\n router.refresh()\n }}\n redirectAfterCreate={false}\n />\n )}\n </>\n )}\n </div>\n {rootNodes.map((node) => {\n const nodeId: number | string = node.id\n const nodeIdStr = typeof nodeId === 'number' ? String(nodeId) : nodeId\n const nodeTitle = getDocumentTitle(node, useAsTitle)\n\n return (\n <TreeNode\n allPossibleTypeValues={allPossibleTypeValues}\n baseFilter={baseFilter}\n cache={childrenCache}\n collectionSlug={collectionSlug}\n depth={0}\n expandedNodes={expandedNodes}\n filterByCollections={filterByCollections}\n icon={icon}\n key={nodeIdStr}\n limit={treeLimit}\n node={{ id: nodeId, hasChildren: true, title: nodeTitle }}\n onSelect={handleNodeClick}\n onToggle={handleToggleNode}\n parentFieldName={parentFieldName}\n selected={nodeIdStr === String(selectedNodeId)}\n selectedNodeId={selectedNodeId}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n })}\n {hasMore && (\n <LoadMore\n currentCount={rootNodes.length}\n depth={0}\n id=\"load-more-root\"\n onLoadMore={handleLoadMore}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport const HierarchyTree: React.FC<HierarchyTreeProps> = (props) => {\n return (\n <TreeFocusProvider>\n <HierarchyTreeInner {...props} />\n </TreeFocusProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useEffect","useAuth","HydrateAuthProvider","t0","$","permissions","setPermissions","t1","t2"],"sources":["../../../src/elements/HydrateAuthProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedPermissions } from 'payload'\n\nimport { useEffect } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\n\n/**\n * The Auth Provider wraps the entire app\n * but each page has specific permissions\n *\n * i.e. access control on documents/fields on a document\n */\n\ntype Props = {\n permissions: SanitizedPermissions\n}\n\nexport function HydrateAuthProvider({ permissions }: Props) {\n const { setPermissions } = useAuth()\n\n useEffect(() => {\n setPermissions(permissions)\n }, [permissions, setPermissions])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAE1B,SAASC,OAAO,QAAQ;AAaxB,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAA6B;IAAAM;EAAA,IAAAF,EAAsB;EACxD;IAAAG;EAAA,IAA2BL,OAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,cAAA;IAEjBC,EAAA,GAAAA,CAAA;MACRD,cAAA,CAAeD,WAAA;IAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useEffect","useAuth","HydrateAuthProvider","t0","$","permissions","setPermissions","t1","t2"],"sources":["../../../src/elements/HydrateAuthProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedPermissions } from 'payload'\n\nimport { useEffect } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\n\n/**\n * The Auth Provider wraps the entire app\n * but each page has specific permissions\n *\n * i.e. access control on documents/fields on a document\n */\n\ntype Props = {\n permissions: SanitizedPermissions\n}\n\nexport function HydrateAuthProvider({ permissions }: Props) {\n const { setPermissions } = useAuth()\n\n useEffect(() => {\n setPermissions(permissions)\n }, [permissions, setPermissions])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAE1B,SAASC,OAAO,QAAQ;AAaxB,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAA6B;IAAAM;EAAA,IAAAF,EAAsB;EACxD;IAAAG;EAAA,IAA2BL,OAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,cAAA;IAEjBC,EAAA,GAAAA,CAAA;MACRD,cAAA,CAAeD,WAAA;IAAA,CACjB;IAAGG,EAAA,IAACH,WAAA,EAAaC,cAAA,CAAe;IAAAF,CAAA,MAAAC,WAAA;IAAAD,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EAFhCJ,SAAA,CAAUO,EAEV,EAAGC,EAA6B;EAAA,OAEzB;AAAA","ignoreList":[]}
|