@ynput/ayon-frontend-shared 0.3.0 → 0.3.1
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/_virtual/index.cjs10.js +1 -1
- package/dist/_virtual/index.cjs11.js +1 -1
- package/dist/_virtual/index.cjs12.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.es10.js +3 -3
- package/dist/_virtual/index.es11.js +5 -5
- package/dist/_virtual/index.es12.js +5 -5
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +95 -95
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +14 -11
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +42 -41
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -23
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +65 -64
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +16 -16
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +142 -146
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +24 -24
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +141 -132
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +35 -28
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +62 -49
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +1 -0
- package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +1 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +4 -1
- package/dist/types/context/AddonContext.d.ts +1 -0
- package/dist/types/context/ProjectFoldersContext.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),d=require("@ynput/ayon-react-components"),g=require("../utils/clientFilterToQueryFilter.cjs.js");require("short-uuid");require("react-toastify");require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("clsx");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../context/ColumnSettingsContext.cjs.js");const y=({queryFilters:q,sliceFilter:t})=>a.useMemo(()=>{let e=q;if(t?.values?.length){const i=g.clientFilterToQueryFilter([t]);i.conditions?.length&&(e={conditions:[...e?.conditions||[],...i.conditions],operator:"and"})}let l=q,o="";if(e?.conditions?.length){const i=[],n=e.conditions.filter(c=>{const u=c;if(u.key===d.SEARCH_FILTER_ID){const r=u.value;return r!=null&&String(r).trim()!==""&&i.push(String(r)),!1}if(u.key==="name"||u.key?.endsWith("_name")){const r=u.value;if(r!=null){const s=String(r).replace(/%/g,"").trim();s&&i.push(s)}return!1}return!0});o=i.join(" "),e=n.length?{...e,conditions:n}:{...e,conditions:[]}}return{filterString:e?.conditions?.length?JSON.stringify(e):"",filter:e,search:o,combinedFilters:e,displayFilters:l}},[q,t]);exports.useQueryFilters=y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),f=require("@ynput/ayon-react-components"),y=require("../utils/clientFilterToQueryFilter.cjs.js");require("short-uuid");require("react-toastify");require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("clsx");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../context/ColumnSettingsContext.cjs.js");const h=({queryFilters:t,sliceFilter:n,config:{searchKey:s}={}})=>g.useMemo(()=>{let e=t;if(n?.values?.length){const i=y.clientFilterToQueryFilter([n]);i.conditions?.length&&(e={conditions:[...e?.conditions||[],...i.conditions],operator:"and"})}let a=t,l="";if(e?.conditions?.length){const i=[],o=e.conditions.filter(d=>{const u=d;if(u.key===f.SEARCH_FILTER_ID){const r=u.value;return r!=null&&String(r).trim()!==""&&i.push(String(r)),!1}if(s&&u.key===s||u.key?.endsWith("_searchKey")){const r=u.value;if(r!=null)if(Array.isArray(r))r.forEach(q=>{const c=String(q).replace(/%/g,"").trim();c&&i.push(c)});else{const q=String(r).replace(/%/g,"").trim();q&&i.push(q)}return!1}return!0});l=i.join(" "),e=o.length?{...e,conditions:o}:{...e,conditions:[]}}return{filterString:e?.conditions?.length?JSON.stringify(e):"",filter:e,search:l,combinedFilters:e,displayFilters:a}},[t,n]);exports.useQueryFilters=h;
|
|
2
2
|
//# sourceMappingURL=useQueryFilters.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryFilters.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search and name filter conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n const queryCondition = condition as QueryCondition\n\n // Extract global text search filter\n if (queryCondition.key === SEARCH_FILTER_ID) {\n const val = queryCondition.value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n\n // Extract name filter (can be scoped like 'task_name' or 'folder_name' or just 'name')\n if (queryCondition.key ===
|
|
1
|
+
{"version":3,"file":"useQueryFilters.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n config?: {\n searchKey?: string\n }\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n config: { searchKey } = {},\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search and name filter conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n const queryCondition = condition as QueryCondition\n\n // Extract global text search filter\n if (queryCondition.key === SEARCH_FILTER_ID) {\n const val = queryCondition.value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n\n // Extract name filter (can be scoped like 'task_name' or 'folder_name' or just 'name')\n if (\n (searchKey && queryCondition.key === searchKey) ||\n queryCondition.key?.endsWith('_' + 'searchKey')\n ) {\n const val = queryCondition.value\n // Name filters use 'like' operator with wildcards, extract the actual search term\n if (val !== undefined && val !== null) {\n if (Array.isArray(val)) {\n val.forEach((v) => {\n const searchTerm = String(v).replace(/%/g, '').trim()\n if (searchTerm) {\n searchValues.push(searchTerm)\n }\n })\n } else {\n const searchTerm = String(val).replace(/%/g, '').trim()\n if (searchTerm) {\n searchValues.push(searchTerm)\n }\n }\n }\n return false // remove name condition\n }\n\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","searchKey","useMemo","combinedQueryFilter","sliceQueryFilter","clientFilterToQueryFilter","displayQueryFilter","fuzzySearchFilter","searchValues","remainingConditions","condition","queryCondition","SEARCH_FILTER_ID","val","v","searchTerm"],"mappings":"+ucAsBO,MAAMA,EAAkB,CAAC,CAC9B,aAAAC,EACA,YAAAC,EACA,OAAQ,CAAE,UAAAC,GAAc,CAAA,CAC1B,IACSC,EAAAA,QAAQ,IAAM,CACnB,IAAIC,EAAsBJ,EAG1B,GAAIC,GAAa,QAAQ,OAAQ,CAC/B,MAAMI,EAAmBC,EAAAA,0BAA0B,CAACL,CAAW,CAAC,EAG5DI,EAAiB,YAAY,SAE/BD,EAAsB,CACpB,WAAY,CAAC,GAFYA,GAAqB,YAAc,CAAA,EAExB,GAAGC,EAAiB,UAAU,EAClE,SAAU,KAAA,EAGhB,CAIA,IAAIE,EAAqBP,EAGrBQ,EAAoB,GAExB,GAAIJ,GAAqB,YAAY,OAAQ,CAC3C,MAAMK,EAAyB,CAAA,EAEzBC,EAAsBN,EAAoB,WAAW,OAAQO,GAAc,CAC/E,MAAMC,EAAiBD,EAGvB,GAAIC,EAAe,MAAQC,mBAAkB,CAC3C,MAAMC,EAAMF,EAAe,MAC3B,OAAyBE,GAAQ,MAAQ,OAAOA,CAAG,EAAE,KAAA,IAAW,IAC9DL,EAAa,KAAK,OAAOK,CAAG,CAAC,EAExB,EACT,CAGA,GACGZ,GAAaU,EAAe,MAAQV,GACrCU,EAAe,KAAK,SAAS,YAAiB,EAC9C,CACA,MAAME,EAAMF,EAAe,MAE3B,GAAyBE,GAAQ,KAC/B,GAAI,MAAM,QAAQA,CAAG,EACnBA,EAAI,QAASC,GAAM,CACjB,MAAMC,EAAa,OAAOD,CAAC,EAAE,QAAQ,KAAM,EAAE,EAAE,KAAA,EAC3CC,GACFP,EAAa,KAAKO,CAAU,CAEhC,CAAC,MACI,CACL,MAAMA,EAAa,OAAOF,CAAG,EAAE,QAAQ,KAAM,EAAE,EAAE,KAAA,EAC7CE,GACFP,EAAa,KAAKO,CAAU,CAEhC,CAEF,MAAO,EACT,CAEA,MAAO,EACT,CAAC,EAGDR,EAAoBC,EAAa,KAAK,GAAG,EAGzCL,EAAsBM,EAAoB,OACtC,CAAE,GAAGN,EAAqB,WAAYM,CAAA,EACtC,CAAE,GAAGN,EAAqB,WAAY,CAAA,CAAC,CAC7C,CAMA,MAAO,CACL,aALwBA,GAAqB,YAAY,OACvD,KAAK,UAAUA,CAAmB,EAClC,GAIF,OAAQA,EACR,OAAQI,EACR,gBAAiBJ,EACjB,eAAgBG,CAAA,CAEpB,EAAG,CAACP,EAAcC,CAAW,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useMemo as
|
|
1
|
+
import { useMemo as f } from "react";
|
|
2
2
|
import { SEARCH_FILTER_ID as d } from "@ynput/ayon-react-components";
|
|
3
|
-
import { clientFilterToQueryFilter as
|
|
3
|
+
import { clientFilterToQueryFilter as g } from "../utils/clientFilterToQueryFilter.es.js";
|
|
4
4
|
import "short-uuid";
|
|
5
5
|
import "react-toastify";
|
|
6
6
|
import "lodash";
|
|
@@ -253,47 +253,54 @@ import "../widgets/ErrorWidget.es.js";
|
|
|
253
253
|
import "../ProjectTreeTable.styled.es.js";
|
|
254
254
|
import "../widgets/LoadMoreWidget.es.js";
|
|
255
255
|
import "../context/ColumnSettingsContext.es.js";
|
|
256
|
-
const
|
|
257
|
-
queryFilters:
|
|
258
|
-
sliceFilter:
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
256
|
+
const om = ({
|
|
257
|
+
queryFilters: p,
|
|
258
|
+
sliceFilter: n,
|
|
259
|
+
config: { searchKey: s } = {}
|
|
260
|
+
}) => f(() => {
|
|
261
|
+
let i = p;
|
|
262
|
+
if (n?.values?.length) {
|
|
263
|
+
const r = g([n]);
|
|
264
|
+
r.conditions?.length && (i = {
|
|
265
|
+
conditions: [...i?.conditions || [], ...r.conditions],
|
|
265
266
|
operator: "and"
|
|
266
267
|
});
|
|
267
268
|
}
|
|
268
|
-
let
|
|
269
|
+
let u = p, l = "";
|
|
269
270
|
if (i?.conditions?.length) {
|
|
270
|
-
const
|
|
271
|
-
const
|
|
272
|
-
if (
|
|
273
|
-
const t =
|
|
274
|
-
return t != null && String(t).trim() !== "" &&
|
|
271
|
+
const r = [], e = i.conditions.filter((a) => {
|
|
272
|
+
const o = a;
|
|
273
|
+
if (o.key === d) {
|
|
274
|
+
const t = o.value;
|
|
275
|
+
return t != null && String(t).trim() !== "" && r.push(String(t)), !1;
|
|
275
276
|
}
|
|
276
|
-
if (
|
|
277
|
-
const t =
|
|
278
|
-
if (t != null)
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
277
|
+
if (s && o.key === s || o.key?.endsWith("_searchKey")) {
|
|
278
|
+
const t = o.value;
|
|
279
|
+
if (t != null)
|
|
280
|
+
if (Array.isArray(t))
|
|
281
|
+
t.forEach((m) => {
|
|
282
|
+
const c = String(m).replace(/%/g, "").trim();
|
|
283
|
+
c && r.push(c);
|
|
284
|
+
});
|
|
285
|
+
else {
|
|
286
|
+
const m = String(t).replace(/%/g, "").trim();
|
|
287
|
+
m && r.push(m);
|
|
288
|
+
}
|
|
282
289
|
return !1;
|
|
283
290
|
}
|
|
284
291
|
return !0;
|
|
285
292
|
});
|
|
286
|
-
|
|
293
|
+
l = r.join(" "), i = e.length ? { ...i, conditions: e } : { ...i, conditions: [] };
|
|
287
294
|
}
|
|
288
295
|
return {
|
|
289
296
|
filterString: i?.conditions?.length ? JSON.stringify(i) : "",
|
|
290
297
|
filter: i,
|
|
291
|
-
search:
|
|
298
|
+
search: l,
|
|
292
299
|
combinedFilters: i,
|
|
293
|
-
displayFilters:
|
|
300
|
+
displayFilters: u
|
|
294
301
|
};
|
|
295
|
-
}, [
|
|
302
|
+
}, [p, n]);
|
|
296
303
|
export {
|
|
297
|
-
|
|
304
|
+
om as useQueryFilters
|
|
298
305
|
};
|
|
299
306
|
//# sourceMappingURL=useQueryFilters.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryFilters.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search and name filter conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n const queryCondition = condition as QueryCondition\n\n // Extract global text search filter\n if (queryCondition.key === SEARCH_FILTER_ID) {\n const val = queryCondition.value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n\n // Extract name filter (can be scoped like 'task_name' or 'folder_name' or just 'name')\n if (queryCondition.key ===
|
|
1
|
+
{"version":3,"file":"useQueryFilters.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n config?: {\n searchKey?: string\n }\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n config: { searchKey } = {},\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search and name filter conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n const queryCondition = condition as QueryCondition\n\n // Extract global text search filter\n if (queryCondition.key === SEARCH_FILTER_ID) {\n const val = queryCondition.value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n\n // Extract name filter (can be scoped like 'task_name' or 'folder_name' or just 'name')\n if (\n (searchKey && queryCondition.key === searchKey) ||\n queryCondition.key?.endsWith('_' + 'searchKey')\n ) {\n const val = queryCondition.value\n // Name filters use 'like' operator with wildcards, extract the actual search term\n if (val !== undefined && val !== null) {\n if (Array.isArray(val)) {\n val.forEach((v) => {\n const searchTerm = String(v).replace(/%/g, '').trim()\n if (searchTerm) {\n searchValues.push(searchTerm)\n }\n })\n } else {\n const searchTerm = String(val).replace(/%/g, '').trim()\n if (searchTerm) {\n searchValues.push(searchTerm)\n }\n }\n }\n return false // remove name condition\n }\n\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","searchKey","useMemo","combinedQueryFilter","sliceQueryFilter","clientFilterToQueryFilter","displayQueryFilter","fuzzySearchFilter","searchValues","remainingConditions","condition","queryCondition","SEARCH_FILTER_ID","val","v","searchTerm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBO,MAAMA,KAAkB,CAAC;AAAA,EAC9B,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAQ,EAAE,WAAAC,MAAc,CAAA;AAC1B,MACSC,EAAQ,MAAM;AACnB,MAAIC,IAAsBJ;AAG1B,MAAIC,GAAa,QAAQ,QAAQ;AAC/B,UAAMI,IAAmBC,EAA0B,CAACL,CAAW,CAAC;AAGhE,IAAII,EAAiB,YAAY,WAE/BD,IAAsB;AAAA,MACpB,YAAY,CAAC,GAFYA,GAAqB,cAAc,CAAA,GAExB,GAAGC,EAAiB,UAAU;AAAA,MAClE,UAAU;AAAA,IAAA;AAAA,EAGhB;AAIA,MAAIE,IAAqBP,GAGrBQ,IAAoB;AAExB,MAAIJ,GAAqB,YAAY,QAAQ;AAC3C,UAAMK,IAAyB,CAAA,GAEzBC,IAAsBN,EAAoB,WAAW,OAAO,CAACO,MAAc;AAC/E,YAAMC,IAAiBD;AAGvB,UAAIC,EAAe,QAAQC,GAAkB;AAC3C,cAAMC,IAAMF,EAAe;AAC3B,eAAyBE,KAAQ,QAAQ,OAAOA,CAAG,EAAE,KAAA,MAAW,MAC9DL,EAAa,KAAK,OAAOK,CAAG,CAAC,GAExB;AAAA,MACT;AAGA,UACGZ,KAAaU,EAAe,QAAQV,KACrCU,EAAe,KAAK,SAAS,YAAiB,GAC9C;AACA,cAAME,IAAMF,EAAe;AAE3B,YAAyBE,KAAQ;AAC/B,cAAI,MAAM,QAAQA,CAAG;AACnB,YAAAA,EAAI,QAAQ,CAACC,MAAM;AACjB,oBAAMC,IAAa,OAAOD,CAAC,EAAE,QAAQ,MAAM,EAAE,EAAE,KAAA;AAC/C,cAAIC,KACFP,EAAa,KAAKO,CAAU;AAAA,YAEhC,CAAC;AAAA,eACI;AACL,kBAAMA,IAAa,OAAOF,CAAG,EAAE,QAAQ,MAAM,EAAE,EAAE,KAAA;AACjD,YAAIE,KACFP,EAAa,KAAKO,CAAU;AAAA,UAEhC;AAEF,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,CAAC;AAGD,IAAAR,IAAoBC,EAAa,KAAK,GAAG,GAGzCL,IAAsBM,EAAoB,SACtC,EAAE,GAAGN,GAAqB,YAAYM,EAAA,IACtC,EAAE,GAAGN,GAAqB,YAAY,CAAA,EAAC;AAAA,EAC7C;AAMA,SAAO;AAAA,IACL,cALwBA,GAAqB,YAAY,SACvD,KAAK,UAAUA,CAAmB,IAClC;AAAA,IAIF,QAAQA;AAAA,IACR,QAAQI;AAAA,IACR,iBAAiBJ;AAAA,IACjB,gBAAgBG;AAAA,EAAA;AAEpB,GAAG,CAACP,GAAcC,CAAW,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn
|
|
1
|
+
{"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","overviewSettings","serverFilters","serverHierarchy","serverColumns","useMemo","convertColumnConfigToTanstackStates","useEffect","filters","showHierarchy","columns","onUpdateFilters","useCallback","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","derivedAll","v","i","a","hasGroupBy"],"mappings":"gRA2CaA,EAA0B,CAAC,CAAE,aAAAC,EAAc,mBAAAC,KAAwC,CAE9F,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAA6B,IAAI,EACnE,CAACC,EAAgBC,CAAiB,EAAIF,EAAAA,SAAyB,IAAI,EACnE,CAACG,EAAcC,CAAe,EAAIJ,EAAAA,SAA+B,IAAI,EAGrEK,EAAmBT,EACnBU,EAAiBD,GAAkB,QAAkB,CAAA,EACrDE,EAAkBF,GAAkB,eAAiB,GAErDG,EAAgBC,EAAAA,QACpB,IAAMC,EAAAA,oCAAoCL,CAAgB,EAC1D,CAAC,KAAK,UAAUT,CAAY,CAAC,CAAA,EAI/Be,EAAAA,UAAU,IAAM,CACdZ,EAAgB,IAAI,EACpBG,EAAkB,IAAI,EACtBE,EAAgB,IAAI,CACtB,EAAG,CAAC,KAAK,UAAUR,CAAY,CAAC,CAAC,EAGjC,MAAMgB,EAAUd,IAAiB,KAAOA,EAAeQ,EACjDO,EAAgBZ,IAAmB,KAAOA,EAAiBM,EAC3DO,EAAUX,GAAgBK,EAG1BO,EAAkBC,EAAAA,YACtB,MAAOC,GAA4B,CACjC,MAAMpB,EAAmB,CAAE,OAAQoB,CAAA,EAAqBlB,EAAiBkB,EAAY,CACnF,aAAc,kCAAA,CACf,CACH,EACA,CAACpB,CAAkB,CAAA,EAIfqB,EAAoBF,EAAAA,YACxB,MAAOG,GAA8B,CAEnC,GAAIA,GAAqBL,GAA2B,QAAS,CAC3D,MAAMM,EAAgC,CAAE,GAAGN,EAAS,QAAS,MAAA,EAE7DV,EAAgBgB,CAAc,EAC9B,MAAMC,EAAWC,EAAAA,oCAAoCF,CAAc,EACnE,MAAMvB,EACJ,CAAE,GAAGwB,EAAU,cAAe,EAAA,EAC9BnB,EACAiB,EACA,CAAE,aAAc,oCAAA,CAAqC,EAEvD,MACF,CAEA,MAAMtB,EACJ,CAAE,cAAesB,CAAA,EACjBjB,EACAiB,EACA,CAAE,aAAc,oCAAA,CAAqC,CAEzD,EACA,CAACtB,EAAoBiB,CAAO,CAAA,EAIxBS,EAAkBP,EAAAA,YACtB,MAAOQ,EAA8BC,IAA4B,CAE/D,MAAMC,EACJD,GACA,CACE,GAAID,EAAc,aAAe,CAAA,EACjC,GAAG,OAAO,KAAKA,EAAc,kBAAoB,CAAA,CAAE,EACnD,GAAKA,EAAc,eAAe,MAAqB,CAAA,EACvD,GAAKA,EAAc,eAAe,OAAsB,CAAA,CAAC,EAExD,OAAO,OAAO,EACd,OAAO,CAACG,EAAGC,EAAGC,IAAMA,EAAE,QAAQF,CAAC,IAAMC,CAAC,EAErCP,EAAWC,EAAAA,oCAAoCE,EAAeE,CAAU,EACxEI,EAAa,CAAC,CAACN,EAAc,QAG/BM,GAEF5B,EAAkB,EAAK,EAGzB,MAAML,EACJiC,EAAa,CAAE,GAAGT,EAAU,cAAe,IAAUA,EACrDjB,EACAoB,EACA,CAAE,aAAc,0BAAA,CAA2B,CAE/C,EACA,CAAC3B,CAAkB,CAAA,EAGrB,MAAO,CACL,QAAAe,EACA,gBAAAG,EACA,cAAAF,EACA,kBAAAK,EACA,QAAAJ,EACA,gBAAAS,CAAA,CAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn
|
|
1
|
+
{"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when viewSettings change\n useEffect(() => {\n setLocalFilters(null)\n setLocalHierarchy(null)\n setLocalColumns(null)\n }, [JSON.stringify(viewSettings)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","overviewSettings","serverFilters","serverHierarchy","serverColumns","useMemo","convertColumnConfigToTanstackStates","useEffect","filters","showHierarchy","columns","onUpdateFilters","useCallback","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","derivedAll","v","i","a","hasGroupBy"],"mappings":";;;;;;AA2CO,MAAMA,IAA0B,CAAC,EAAE,cAAAC,GAAc,oBAAAC,QAAwC;AAE9F,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAA6B,IAAI,GACnE,CAACC,GAAgBC,CAAiB,IAAIF,EAAyB,IAAI,GACnE,CAACG,GAAcC,CAAe,IAAIJ,EAA+B,IAAI,GAGrEK,IAAmBT,GACnBU,IAAiBD,GAAkB,UAAkB,CAAA,GACrDE,IAAkBF,GAAkB,iBAAiB,IAErDG,IAAgBC;AAAA,IACpB,MAAMC,EAAoCL,CAAgB;AAAA,IAC1D,CAAC,KAAK,UAAUT,CAAY,CAAC;AAAA,EAAA;AAI/B,EAAAe,EAAU,MAAM;AACd,IAAAZ,EAAgB,IAAI,GACpBG,EAAkB,IAAI,GACtBE,EAAgB,IAAI;AAAA,EACtB,GAAG,CAAC,KAAK,UAAUR,CAAY,CAAC,CAAC;AAGjC,QAAMgB,IAAUd,MAAiB,OAAOA,IAAeQ,GACjDO,IAAgBZ,MAAmB,OAAOA,IAAiBM,GAC3DO,IAAUX,KAAgBK,GAG1BO,IAAkBC;AAAA,IACtB,OAAOC,MAA4B;AACjC,YAAMpB,EAAmB,EAAE,QAAQoB,EAAA,GAAqBlB,GAAiBkB,GAAY;AAAA,QACnF,cAAc;AAAA,MAAA,CACf;AAAA,IACH;AAAA,IACA,CAACpB,CAAkB;AAAA,EAAA,GAIfqB,IAAoBF;AAAA,IACxB,OAAOG,MAA8B;AAEnC,UAAIA,KAAqBL,GAA2B,SAAS;AAC3D,cAAMM,IAAgC,EAAE,GAAGN,GAAS,SAAS,OAAA;AAE7D,QAAAV,EAAgBgB,CAAc;AAC9B,cAAMC,IAAWC,EAAoCF,CAAc;AACnE,cAAMvB;AAAA,UACJ,EAAE,GAAGwB,GAAU,eAAe,GAAA;AAAA,UAC9BnB;AAAA,UACAiB;AAAA,UACA,EAAE,cAAc,qCAAA;AAAA,QAAqC;AAEvD;AAAA,MACF;AAEA,YAAMtB;AAAA,QACJ,EAAE,eAAesB,EAAA;AAAA,QACjBjB;AAAA,QACAiB;AAAA,QACA,EAAE,cAAc,qCAAA;AAAA,MAAqC;AAAA,IAEzD;AAAA,IACA,CAACtB,GAAoBiB,CAAO;AAAA,EAAA,GAIxBS,IAAkBP;AAAA,IACtB,OAAOQ,GAA8BC,MAA4B;AAE/D,YAAMC,IACJD,KACA;AAAA,QACE,GAAID,EAAc,eAAe,CAAA;AAAA,QACjC,GAAG,OAAO,KAAKA,EAAc,oBAAoB,CAAA,CAAE;AAAA,QACnD,GAAKA,EAAc,eAAe,QAAqB,CAAA;AAAA,QACvD,GAAKA,EAAc,eAAe,SAAsB,CAAA;AAAA,MAAC,EAExD,OAAO,OAAO,EACd,OAAO,CAACG,GAAGC,GAAGC,MAAMA,EAAE,QAAQF,CAAC,MAAMC,CAAC,GAErCP,IAAWC,EAAoCE,GAAeE,CAAU,GACxEI,IAAa,CAAC,CAACN,EAAc;AAGnC,MAAIM,KAEF5B,EAAkB,EAAK,GAGzB,MAAML;AAAA,QACJiC,IAAa,EAAE,GAAGT,GAAU,eAAe,OAAUA;AAAA,QACrDjB;AAAA,QACAoB;AAAA,QACA,EAAE,cAAc,2BAAA;AAAA,MAA2B;AAAA,IAE/C;AAAA,IACA,CAAC3B,CAAkB;AAAA,EAAA;AAGrB,SAAO;AAAA,IACL,SAAAe;AAAA,IACA,iBAAAG;AAAA,IACA,eAAAF;AAAA,IACA,mBAAAK;AAAA,IACA,SAAAJ;AAAA,IACA,iBAAAS;AAAA,EAAA;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddonContext.cjs.js","sources":["../../../../src/context/AddonContext.tsx"],"sourcesContent":["import { createContext, FC, useContext } from 'react'\nimport { RouterTypes } from '@shared/components'\n\nexport type RemoteAddonComponent = FC<RemoteAddonProps>\nexport type RemoteAddon = {\n id: string\n component: RemoteAddonComponent\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n projectList?: { multiSelect?: boolean; enabled: boolean }\n}\n\nexport interface RemoteAddonProps {\n router: RouterTypes\n toast: any\n}\n\n// types for props passed to the provider\nexport interface AddonContextProps extends RemoteAddonProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonContextType extends RemoteAddonProps {}\n\nconst AddonContext = createContext<AddonContextType | undefined>(undefined)\n\nexport const AddonProvider = ({ children, ...props }: AddonContextProps) => {\n return <AddonContext.Provider value={{ ...props }}>{children}</AddonContext.Provider>\n}\n\nexport const useAddonContext = () => {\n const context = useContext(AddonContext)\n if (!context) {\n throw new Error('useAddonContext must be used within a AddonContext')\n }\n return context\n}\n"],"names":["AddonContext","createContext","AddonProvider","children","props","jsx","useAddonContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddonContext.cjs.js","sources":["../../../../src/context/AddonContext.tsx"],"sourcesContent":["import { createContext, FC, useContext } from 'react'\nimport { RouterTypes } from '@shared/components'\n\nexport type RemoteAddonComponent = FC<RemoteAddonProps>\nexport type RemoteAddon = {\n id: string\n component: RemoteAddonComponent\n path: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n projectList?: { multiSelect?: boolean; enabled: boolean }\n}\n\nexport interface RemoteAddonProps {\n router: RouterTypes\n toast: any\n}\n\n// types for props passed to the provider\nexport interface AddonContextProps extends RemoteAddonProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonContextType extends RemoteAddonProps {}\n\nconst AddonContext = createContext<AddonContextType | undefined>(undefined)\n\nexport const AddonProvider = ({ children, ...props }: AddonContextProps) => {\n return <AddonContext.Provider value={{ ...props }}>{children}</AddonContext.Provider>\n}\n\nexport const useAddonContext = () => {\n const context = useContext(AddonContext)\n if (!context) {\n throw new Error('useAddonContext must be used within a AddonContext')\n }\n return context\n}\n"],"names":["AddonContext","createContext","AddonProvider","children","props","jsx","useAddonContext","context","useContext"],"mappings":"2JA2BMA,EAAeC,EAAAA,cAA4C,MAAS,EAE7DC,EAAgB,CAAC,CAAE,SAAAC,EAAU,GAAGC,KACpCC,EAAAA,kBAAAA,IAACL,EAAa,SAAb,CAAsB,MAAO,CAAE,GAAGI,GAAU,SAAAD,EAAS,EAGlDG,EAAkB,IAAM,CACnC,MAAMC,EAAUC,EAAAA,WAAWR,CAAY,EACvC,GAAI,CAACO,EACH,MAAM,IAAI,MAAM,oDAAoD,EAEtE,OAAOA,CACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddonContext.es.js","sources":["../../../../src/context/AddonContext.tsx"],"sourcesContent":["import { createContext, FC, useContext } from 'react'\nimport { RouterTypes } from '@shared/components'\n\nexport type RemoteAddonComponent = FC<RemoteAddonProps>\nexport type RemoteAddon = {\n id: string\n component: RemoteAddonComponent\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n projectList?: { multiSelect?: boolean; enabled: boolean }\n}\n\nexport interface RemoteAddonProps {\n router: RouterTypes\n toast: any\n}\n\n// types for props passed to the provider\nexport interface AddonContextProps extends RemoteAddonProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonContextType extends RemoteAddonProps {}\n\nconst AddonContext = createContext<AddonContextType | undefined>(undefined)\n\nexport const AddonProvider = ({ children, ...props }: AddonContextProps) => {\n return <AddonContext.Provider value={{ ...props }}>{children}</AddonContext.Provider>\n}\n\nexport const useAddonContext = () => {\n const context = useContext(AddonContext)\n if (!context) {\n throw new Error('useAddonContext must be used within a AddonContext')\n }\n return context\n}\n"],"names":["AddonContext","createContext","AddonProvider","children","props","jsx","useAddonContext","context","useContext"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AddonContext.es.js","sources":["../../../../src/context/AddonContext.tsx"],"sourcesContent":["import { createContext, FC, useContext } from 'react'\nimport { RouterTypes } from '@shared/components'\n\nexport type RemoteAddonComponent = FC<RemoteAddonProps>\nexport type RemoteAddon = {\n id: string\n component: RemoteAddonComponent\n path: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n projectList?: { multiSelect?: boolean; enabled: boolean }\n}\n\nexport interface RemoteAddonProps {\n router: RouterTypes\n toast: any\n}\n\n// types for props passed to the provider\nexport interface AddonContextProps extends RemoteAddonProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonContextType extends RemoteAddonProps {}\n\nconst AddonContext = createContext<AddonContextType | undefined>(undefined)\n\nexport const AddonProvider = ({ children, ...props }: AddonContextProps) => {\n return <AddonContext.Provider value={{ ...props }}>{children}</AddonContext.Provider>\n}\n\nexport const useAddonContext = () => {\n const context = useContext(AddonContext)\n if (!context) {\n throw new Error('useAddonContext must be used within a AddonContext')\n }\n return context\n}\n"],"names":["AddonContext","createContext","AddonProvider","children","props","jsx","useAddonContext","context","useContext"],"mappings":";;AA2BA,MAAMA,IAAeC,EAA4C,MAAS,GAE7DC,IAAgB,CAAC,EAAE,UAAAC,GAAU,GAAGC,QACpCC,gBAAAA,EAAAA,IAACL,EAAa,UAAb,EAAsB,OAAO,EAAE,GAAGI,KAAU,UAAAD,GAAS,GAGlDG,IAAkB,MAAM;AACnC,QAAMC,IAAUC,EAAWR,CAAY;AACvC,MAAI,CAACO;AACH,UAAM,IAAI,MAAM,oDAAoD;AAEtE,SAAOA;AACT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("../../../_virtual/jsx-runtime.cjs.js"),u=require("react");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");const v=require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("./RemoteModulesContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("./DetailsPanelContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("react-dom");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./PowerpackContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./WebsocketContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./UriContext.cjs.js");require("react-redux");require("custom-protocol-check");const M=require("../hooks/useQueryArgumentChangeLoading.cjs.js");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");const p=u.createContext(void 0),w=({projectName:t,children:C})=>{const{data:{folders:q=[]}={},isLoading:m,isFetching:d,isSuccess:a,isUninitialized:l,error:g,refetch:h}=v.useGetFolderListQuery({projectName:t,attrib:!0}),F=M.useQueryArgumentChangeLoading({projectName:t},d||m),n=u.useMemo(()=>{const e=new Map;for(const i of q)e.set(i.id,i);return e},[q]),f=u.useMemo(()=>e=>n.get(e),[n]),x=u.useMemo(()=>e=>{const i=[],o=new Set;let r=e;for(;r&&!o.has(r);){o.add(r);const s=n.get(r);if(!s?.parentId)break;i.push(s.parentId),r=s.parentId}return i},[n]),P=u.useMemo(()=>(e,i=!1)=>{const o=i?[...e]:[],r=[...e];for(;r.length>0;){const s=r.shift();for(const c of q)c.parentId===s&&(o.push(c.id),r.push(c.id))}return o},[q]),j=u.useMemo(()=>({folders:q,getFolderById:f,getParentFolderIds:x,getChildFolderIds:P,isLoading:F,isFetching:d,isSuccess:a,isUninitialized:l,error:g,refetch:h}),[q,f,x,P,F,d,a,l,g,h]);return I.jsxRuntimeExports.jsx(p.Provider,{value:j,children:C})},y=()=>{const t=u.useContext(p);if(t===void 0)throw new Error("useProjectFoldersContext must be used within a ProjectFoldersContextProvider");return t};exports.ProjectFoldersContextProvider=w;exports.useProjectFoldersContext=y;
|
|
2
2
|
//# sourceMappingURL=ProjectFoldersContext.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectFoldersContext.cjs.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProjectFoldersContext.cjs.js","sources":["../../../../src/context/ProjectFoldersContext.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from 'react'\nimport { useGetFolderListQuery } from '@shared/api'\n\nimport type { FolderListItem } from '@shared/api'\nimport { useQueryArgumentChangeLoading } from '@shared/hooks'\n\nexport interface ProjectFoldersContextValue {\n folders: FolderListItem[]\n getFolderById: (id: string) => FolderListItem | undefined\n getParentFolderIds: (folderId: string) => string[]\n getChildFolderIds: (folderIds: string[], includeSelf?: boolean) => string[]\n isLoading: boolean\n isFetching: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n refetch: () => void\n}\n\nconst ProjectFoldersContext = createContext<ProjectFoldersContextValue | undefined>(undefined)\n\n//\n// ProjectFoldersProvider\n//\n\ninterface ProjectFoldersProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectFoldersContextProvider: React.FC<ProjectFoldersProviderProps> = ({\n projectName,\n children,\n}: ProjectFoldersProviderProps) => {\n // FOLDERS LIST\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n } = useGetFolderListQuery({ projectName, attrib: true })\n\n // only show loading when args change or on first load\n const isLoadingFolders = useQueryArgumentChangeLoading({ projectName }, isFetching || isLoading)\n\n // Create folder map for efficient O(1) lookups\n const folderMap = useMemo(() => {\n const map = new Map<string, FolderListItem>()\n for (const folder of folders) {\n map.set(folder.id, folder)\n }\n return map\n }, [folders])\n\n // Function to get folder by ID\n const getFolderById = useMemo(() => (id: string) => folderMap.get(id), [folderMap])\n\n // Function to get all parent folder IDs by crawling up the hierarchy\n const getParentFolderIds = useMemo(\n () =>\n (folderId: string): string[] => {\n const parentIds: string[] = []\n const visited = new Set<string>()\n let currentId: string | undefined = folderId\n\n while (currentId && !visited.has(currentId)) {\n visited.add(currentId)\n const currentFolder = folderMap.get(currentId)\n if (!currentFolder?.parentId) break\n parentIds.push(currentFolder.parentId)\n currentId = currentFolder.parentId\n }\n\n return parentIds\n },\n [folderMap],\n )\n\n // function to get all child folder IDs recursively for a given folder IDs\n const getChildFolderIds = useMemo(\n () =>\n (folderIds: string[], includeSelf = false): string[] => {\n const childIds: string[] = includeSelf ? [...folderIds] : []\n const queue: string[] = [...folderIds]\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n for (const folder of folders) {\n if (folder.parentId === currentId) {\n childIds.push(folder.id)\n queue.push(folder.id)\n }\n }\n }\n\n return childIds\n },\n [folders],\n )\n\n const value = useMemo(\n () => ({\n folders: folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoading: isLoadingFolders, // first time and when args change\n isFetching, // any background fetching\n isSuccess,\n isUninitialized,\n error,\n refetch,\n }),\n [\n folders,\n getFolderById,\n getParentFolderIds,\n getChildFolderIds,\n isLoadingFolders,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch,\n ],\n )\n\n return <ProjectFoldersContext.Provider value={value}>{children}</ProjectFoldersContext.Provider>\n}\n\nexport const useProjectFoldersContext = () => {\n const context = useContext(ProjectFoldersContext)\n if (context === undefined) {\n throw new Error('useProjectFoldersContext must be used within a ProjectFoldersContextProvider')\n }\n return context\n}\n"],"names":["ProjectFoldersContext","createContext","ProjectFoldersContextProvider","projectName","children","folders","isLoading","isFetching","isSuccess","isUninitialized","error","refetch","useGetFolderListQuery","isLoadingFolders","useQueryArgumentChangeLoading","folderMap","useMemo","map","folder","getFolderById","id","getParentFolderIds","folderId","parentIds","visited","currentId","currentFolder","getChildFolderIds","folderIds","includeSelf","childIds","queue","value","jsx","useProjectFoldersContext","context","useContext"],"mappings":"srKAmBA,MAAMA,EAAwBC,EAAAA,cAAsD,MAAS,EAWhFC,EAAuE,CAAC,CACnF,YAAAC,EACA,SAAAC,CACF,IAAmC,CAEjC,KAAM,CACJ,KAAM,CAAE,QAAAC,EAAU,CAAA,CAAC,EAAM,CAAA,EACzB,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,EACEC,EAAAA,sBAAsB,CAAE,YAAAT,EAAa,OAAQ,GAAM,EAGjDU,EAAmBC,EAAAA,8BAA8B,CAAE,YAAAX,CAAA,EAAeI,GAAcD,CAAS,EAGzFS,EAAYC,EAAAA,QAAQ,IAAM,CAC9B,MAAMC,MAAU,IAChB,UAAWC,KAAUb,EACnBY,EAAI,IAAIC,EAAO,GAAIA,CAAM,EAE3B,OAAOD,CACT,EAAG,CAACZ,CAAO,CAAC,EAGNc,EAAgBH,UAAQ,IAAOI,GAAeL,EAAU,IAAIK,CAAE,EAAG,CAACL,CAAS,CAAC,EAG5EM,EAAqBL,EAAAA,QACzB,IACGM,GAA+B,CAC9B,MAAMC,EAAsB,CAAA,EACtBC,MAAc,IACpB,IAAIC,EAAgCH,EAEpC,KAAOG,GAAa,CAACD,EAAQ,IAAIC,CAAS,GAAG,CAC3CD,EAAQ,IAAIC,CAAS,EACrB,MAAMC,EAAgBX,EAAU,IAAIU,CAAS,EAC7C,GAAI,CAACC,GAAe,SAAU,MAC9BH,EAAU,KAAKG,EAAc,QAAQ,EACrCD,EAAYC,EAAc,QAC5B,CAEA,OAAOH,CACT,EACF,CAACR,CAAS,CAAA,EAINY,EAAoBX,EAAAA,QACxB,IACE,CAACY,EAAqBC,EAAc,KAAoB,CACtD,MAAMC,EAAqBD,EAAc,CAAC,GAAGD,CAAS,EAAI,CAAA,EACpDG,EAAkB,CAAC,GAAGH,CAAS,EAErC,KAAOG,EAAM,OAAS,GAAG,CACvB,MAAMN,EAAYM,EAAM,MAAA,EACxB,UAAWb,KAAUb,EACfa,EAAO,WAAaO,IACtBK,EAAS,KAAKZ,EAAO,EAAE,EACvBa,EAAM,KAAKb,EAAO,EAAE,EAG1B,CAEA,OAAOY,CACT,EACF,CAACzB,CAAO,CAAA,EAGJ2B,EAAQhB,EAAAA,QACZ,KAAO,CACL,QAAAX,EACA,cAAAc,EACA,mBAAAE,EACA,kBAAAM,EACA,UAAWd,EACX,WAAAN,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAAAC,CAAA,GAEF,CACEN,EACAc,EACAE,EACAM,EACAd,EACAN,EACAC,EACAC,EACAC,EACAC,CAAA,CACF,EAGF,OAAOsB,EAAAA,kBAAAA,IAACjC,EAAsB,SAAtB,CAA+B,MAAAgC,EAAe,SAAA5B,CAAA,CAAS,CACjE,EAEa8B,EAA2B,IAAM,CAC5C,MAAMC,EAAUC,EAAAA,WAAWpC,CAAqB,EAChD,GAAImC,IAAY,OACd,MAAM,IAAI,MAAM,8EAA8E,EAEhG,OAAOA,CACT"}
|