@ynput/ayon-frontend-shared 0.2.20 → 0.2.21
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/DetailsPanel.cjs.js +4 -3
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +4 -3
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +2 -2
- package/dist/ProjectTreeTable.es.js +2 -2
- package/dist/Views.cjs.js +41 -0
- package/dist/Views.cjs.js.map +1 -0
- package/dist/Views.es.js +41 -0
- package/dist/Views.es.js.map +1 -0
- package/dist/_virtual/index.cjs5.js +5 -3
- package/dist/_virtual/index.cjs5.js.map +1 -1
- package/dist/_virtual/index.cjs6.js +3 -5
- package/dist/_virtual/index.cjs6.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +2 -5
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/api.cjs.js +6 -1
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +8 -3
- package/dist/components.cjs.js +0 -17
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +1 -18
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +4 -3
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +4 -3
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.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/uuid/dist/esm-browser/native.cjs.js +3 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +3 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
- package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +41 -58
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +41 -57
- package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +1 -5
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -1
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +1 -5
- package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js +30 -2
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js +30 -2
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +29 -5
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +29 -5
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +169 -9
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +170 -10
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +4 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +1 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +4 -3
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -3
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +4 -3
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -3
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +4 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +4 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +4 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +4 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +10 -11
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +10 -11
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +69 -21
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +69 -21
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +0 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +0 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +3 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +18 -10
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -10
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -0
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +4 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +49 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +49 -0
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.cjs.js +24 -12
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.es.js +24 -12
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/Views.cjs.js +6 -10
- package/dist/shared/src/containers/Views/Views.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/Views.es.js +7 -11
- package/dist/shared/src/containers/Views/Views.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/Views.styled.cjs.js +4 -3
- package/dist/shared/src/containers/Views/Views.styled.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/Views.styled.es.js +4 -3
- package/dist/shared/src/containers/Views/Views.styled.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.cjs.js +11 -2
- package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.es.js +11 -2
- package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js +4 -0
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js +5 -0
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -0
- package/dist/shared/src/{components/Views/context/ViewsContext.cjs.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js} +67 -58
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -0
- package/dist/shared/src/{components/Views/context/ViewsContext.es.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js} +66 -57
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.cjs.js +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.es.js +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
- package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +105 -0
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +105 -0
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +211 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +211 -0
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +52 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +52 -0
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +69 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +69 -0
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +44 -0
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +44 -0
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.cjs.js +58 -32
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.es.js +59 -33
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +33 -0
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +33 -0
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -0
- package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.cjs.js → containers/Views/hooks/useSelectedView.cjs.js} +33 -114
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +108 -0
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js +19 -0
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js +19 -0
- package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +143 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +143 -0
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +67 -0
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +67 -0
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +13 -0
- package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +13 -0
- package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -0
- package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js +1 -1
- package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js.map +1 -1
- package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js +1 -1
- package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +125 -0
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -0
- package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.es.js → containers/Views/utils/viewUpdateHelper.es.js} +48 -112
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js +9 -3
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +9 -3
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js +116 -0
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -0
- package/dist/shared/src/util/columnConfigConverter.es.js +116 -0
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -0
- package/dist/types/Views.d.ts +2 -0
- package/dist/types/api/generated/powerPack1.1.1Views.d.ts +25 -0
- package/dist/types/api/generated/views.d.ts +130 -22
- package/dist/types/api/queries/views/getViews.d.ts +161 -22
- package/dist/types/api/queries/views/updateViews.d.ts +500 -13
- package/dist/types/components/index.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +15 -5
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsProvider.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -4
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +3 -5
- package/dist/types/containers/ProjectTreeTable/hooks/useProjectTableModules.d.ts +2 -5
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +5 -3
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +5 -6
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +24 -0
- package/dist/types/{components → containers}/Views/ViewItem/ViewItem.d.ts +3 -1
- package/dist/types/{components → containers}/Views/ViewItem/ViewItem.styled.d.ts +1 -1
- package/dist/types/containers/Views/Views.d.ts +2 -0
- package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +24 -0
- package/dist/types/containers/Views/ViewsDialogContainer/ViewsDialogContainer.d.ts +6 -0
- package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.d.ts +1 -2
- package/dist/types/{components → containers}/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +1 -1
- package/dist/types/containers/Views/context/ViewsContext.d.ts +46 -0
- package/dist/types/containers/Views/hooks/index.d.ts +5 -0
- package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +9 -0
- package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +12 -0
- package/dist/types/containers/Views/hooks/pages/useTaskProgressViewSettings.d.ts +10 -0
- package/dist/types/containers/Views/hooks/pages/viewUpdateHelper.d.ts +0 -0
- package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +22 -0
- package/dist/types/containers/Views/hooks/useOverviewViewSettings.d.ts +0 -0
- package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +12 -0
- package/dist/types/containers/Views/hooks/useSelectedView.d.ts +12 -0
- package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +6 -0
- package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +13 -0
- package/dist/types/containers/Views/hooks/useViewsShortcuts.d.ts +13 -0
- package/dist/types/containers/Views/index.d.ts +19 -0
- package/dist/types/containers/Views/utils/generateWorkingView.d.ts +3 -0
- package/dist/types/{components → containers}/Views/utils/getCustomViewsFallback.d.ts +3 -2
- package/dist/types/{components → containers}/Views/utils/portalUtils.d.ts +1 -1
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +17 -0
- package/dist/types/containers/index.d.ts +1 -0
- package/dist/types/context/PowerpackContext.d.ts +4 -1
- package/dist/types/util/columnConfigConverter.d.ts +15 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +3 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +3 -0
- package/dist/util.es.js.map +1 -1
- package/package.json +6 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +0 -164
- package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +0 -164
- package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +0 -71
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +0 -71
- package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +0 -36
- package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +0 -36
- package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +0 -1
- package/dist/shared/src/components/Views/Views.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/Views.es.js.map +0 -1
- package/dist/shared/src/components/Views/Views.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/Views.styled.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +0 -132
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +0 -132
- package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +0 -1
- package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +0 -1
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +0 -1
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +0 -13
- package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +0 -13
- package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +0 -1
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +0 -1
- package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js +0 -24
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js +0 -24
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js.map +0 -1
- package/dist/types/components/Views/ViewForm/ViewForm.d.ts +0 -14
- package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +0 -9
- package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +0 -15
- package/dist/types/components/Views/Views.d.ts +0 -8
- package/dist/types/components/Views/context/ViewsContext.d.ts +0 -31
- package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +0 -14
- package/dist/types/components/Views/index.d.ts +0 -11
- package/dist/types/components/Views/utils/generatePersonalView.d.ts +0 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnSorting.d.ts +0 -12
- /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js +0 -0
- /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js +0 -0
- /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.cjs.js +0 -0
- /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.es.js +0 -0
- /package/dist/types/{components → containers}/Views/Views.styled.d.ts +0 -0
- /package/dist/types/{components → containers}/Views/ViewsButton/ViewsButton.d.ts +0 -0
- /package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.d.ts +0 -0
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import { forwardRef, useState, useCallback } from "react";
|
|
3
1
|
import "../../../api/base/client.es.js";
|
|
4
2
|
import "../../../api/generated/graphql.es.js";
|
|
5
3
|
import "../../../api/generated/access.es.js";
|
|
@@ -71,119 +69,57 @@ import "../../../api/queries/grouping/getGrouping.es.js";
|
|
|
71
69
|
import "../../../api/queries/versions/updateVersions.es.js";
|
|
72
70
|
import "../../../api/queries/products/createProduct.es.js";
|
|
73
71
|
import "../../../api/queries/cloud/cloud.es.js";
|
|
74
|
-
import
|
|
72
|
+
import "../../../api/queries/views/getViews.es.js";
|
|
75
73
|
import { useCreateViewMutation } from "../../../api/queries/views/updateViews.es.js";
|
|
76
|
-
import {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
import { generateWorkingView } from "./generateWorkingView.es.js";
|
|
75
|
+
import { toast } from "react-toastify";
|
|
76
|
+
import { useCallback } from "react";
|
|
77
|
+
import { useViewsContext } from "../context/ViewsContext.es.js";
|
|
78
|
+
const useViewUpdateHelper = () => {
|
|
79
|
+
const [createView] = useCreateViewMutation();
|
|
80
|
+
const {
|
|
81
|
+
viewSettings,
|
|
81
82
|
viewType,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
{ viewId, viewType, project },
|
|
91
|
-
{ skip: !viewId }
|
|
92
|
-
);
|
|
93
|
-
const handleSubmit = useCallback(
|
|
94
|
-
async (formData) => {
|
|
95
|
-
try {
|
|
96
|
-
setError(void 0);
|
|
97
|
-
if (isEditing && viewId) {
|
|
98
|
-
console.log("Update view - would update with data:", formData);
|
|
99
|
-
const viewData2 = {
|
|
100
|
-
id: viewId,
|
|
101
|
-
label: formData.label,
|
|
102
|
-
scope: formData.scope,
|
|
103
|
-
visibility: formData.visibility
|
|
104
|
-
};
|
|
105
|
-
onSuccess == null ? void 0 : onSuccess("update", viewData2);
|
|
106
|
-
} else {
|
|
107
|
-
let payload;
|
|
108
|
-
if (viewType === "overview") {
|
|
109
|
-
payload = {
|
|
110
|
-
label: formData.label,
|
|
111
|
-
scope: formData.scope,
|
|
112
|
-
visibility: formData.visibility,
|
|
113
|
-
settings: {},
|
|
114
|
-
viewType: "overview"
|
|
115
|
-
};
|
|
116
|
-
} else {
|
|
117
|
-
payload = {
|
|
118
|
-
label: formData.label,
|
|
119
|
-
scope: formData.scope,
|
|
120
|
-
visibility: formData.visibility,
|
|
121
|
-
settings: { expanded: false },
|
|
122
|
-
viewType: "taskProgress"
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
const result = await createView({
|
|
126
|
-
viewType,
|
|
127
|
-
project,
|
|
128
|
-
payload
|
|
129
|
-
}).unwrap();
|
|
130
|
-
const viewData2 = {
|
|
131
|
-
id: result.id,
|
|
132
|
-
label: formData.label,
|
|
133
|
-
scope: formData.scope,
|
|
134
|
-
visibility: formData.visibility
|
|
135
|
-
};
|
|
136
|
-
onSuccess == null ? void 0 : onSuccess("create", viewData2);
|
|
137
|
-
}
|
|
138
|
-
} catch (err) {
|
|
139
|
-
setError((err == null ? void 0 : err.message) || "Failed to save view");
|
|
140
|
-
console.error("Error saving view:", err);
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
[isEditing, viewId, viewType, project, createView, onSuccess]
|
|
144
|
-
);
|
|
145
|
-
const handleDelete = useCallback(async () => {
|
|
146
|
-
if (!viewId) return;
|
|
147
|
-
try {
|
|
148
|
-
setError(void 0);
|
|
149
|
-
console.log("Delete view - not implemented yet");
|
|
150
|
-
onSuccess == null ? void 0 : onSuccess("delete");
|
|
151
|
-
} catch (err) {
|
|
152
|
-
setError((err == null ? void 0 : err.message) || "Failed to delete view");
|
|
153
|
-
console.error("Error deleting view:", err);
|
|
154
|
-
}
|
|
155
|
-
}, [viewId, onSuccess]);
|
|
156
|
-
const handleDuplicate = useCallback(async () => {
|
|
157
|
-
if (!viewId) return;
|
|
83
|
+
projectName,
|
|
84
|
+
selectedView,
|
|
85
|
+
setSelectedView,
|
|
86
|
+
workingView,
|
|
87
|
+
onSettingsChanged
|
|
88
|
+
} = useViewsContext();
|
|
89
|
+
const updateViewSettings = useCallback(
|
|
90
|
+
async (updatedSettings, localStateSetter, newLocalValue, options = {}) => {
|
|
158
91
|
try {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
92
|
+
if (!viewType) throw "No view type provided for updating view settings";
|
|
93
|
+
if (!projectName) throw "No project name provided for updating view settings";
|
|
94
|
+
localStateSetter(newLocalValue);
|
|
95
|
+
const newSettings = { ...viewSettings, ...updatedSettings };
|
|
96
|
+
const newWorkingView = generateWorkingView(newSettings);
|
|
97
|
+
const newWorkingViewId = (workingView == null ? void 0 : workingView.id) || newWorkingView.id;
|
|
98
|
+
const promise = createView({
|
|
99
|
+
payload: newWorkingView,
|
|
100
|
+
viewType,
|
|
101
|
+
projectName
|
|
102
|
+
}).unwrap();
|
|
103
|
+
if (selectedView && !selectedView.working) {
|
|
104
|
+
onSettingsChanged(true);
|
|
105
|
+
}
|
|
106
|
+
setSelectedView(newWorkingViewId);
|
|
107
|
+
await promise;
|
|
108
|
+
localStateSetter(null);
|
|
109
|
+
if (options.successMessage) {
|
|
110
|
+
toast.success(options.successMessage);
|
|
111
|
+
}
|
|
112
|
+
} catch (error) {
|
|
113
|
+
localStateSetter(null);
|
|
114
|
+
const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`;
|
|
115
|
+
toast.error(errorMsg);
|
|
182
116
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
);
|
|
117
|
+
},
|
|
118
|
+
[createView, viewType, projectName, workingView, selectedView, onSettingsChanged, viewSettings]
|
|
119
|
+
);
|
|
120
|
+
return { updateViewSettings };
|
|
121
|
+
};
|
|
186
122
|
export {
|
|
187
|
-
|
|
123
|
+
useViewUpdateHelper
|
|
188
124
|
};
|
|
189
|
-
//# sourceMappingURL=
|
|
125
|
+
//# sourceMappingURL=viewUpdateHelper.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewUpdateHelper.es.js","sources":["../../../../../../src/containers/Views/utils/viewUpdateHelper.ts"],"sourcesContent":["/**\n * Shared helper for updating view settings with optimistic local state management.\n *\n * This helper provides common functionality used by view settings hooks:\n * - Optimistic local state updates for immediate UI response\n * - Background API calls to persist changes\n * - Error handling with state reversion\n * - Working view management\n */\n\nimport { useCreateViewMutation } from '@shared/api'\nimport { generateWorkingView } from './generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useCallback } from 'react'\nimport { useViewsContext } from '../context/ViewsContext'\n\ninterface UpdateOptions {\n successMessage?: string\n errorMessage?: string\n}\n\nexport const useViewUpdateHelper = () => {\n const [createView] = useCreateViewMutation()\n\n const {\n viewSettings,\n viewType,\n projectName,\n selectedView,\n setSelectedView,\n workingView,\n onSettingsChanged,\n } = useViewsContext()\n\n const updateViewSettings = useCallback(\n async (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions = {},\n ) => {\n try {\n if (!viewType) throw 'No view type provided for updating view settings'\n if (!projectName) throw 'No project name provided for updating view settings'\n\n // Immediately update local state for fast UI response\n localStateSetter(newLocalValue)\n\n // Create settings with updates\n const newSettings = { ...viewSettings, ...updatedSettings }\n\n // always update the working view no matter what\n const newWorkingView = generateWorkingView(newSettings)\n // only use the generated ID if there is no working view already\n const newWorkingViewId = workingView?.id || newWorkingView.id\n\n // Make API call in background\n const promise = createView({\n payload: newWorkingView,\n viewType: viewType,\n projectName: projectName,\n }).unwrap()\n\n // if not working: set that the settings have been changed to show the little blue save button\n if (selectedView && !selectedView.working) {\n onSettingsChanged(true)\n }\n // Always switch to the working view after updating anything\n setSelectedView(newWorkingViewId as string)\n\n await promise\n\n // Clear local state after successful API call - the server data will take over\n localStateSetter(null)\n\n if (options.successMessage) {\n toast.success(options.successMessage)\n }\n } catch (error) {\n // Revert local state on error\n localStateSetter(null)\n const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`\n toast.error(errorMsg)\n }\n },\n [createView, viewType, projectName, workingView, selectedView, onSettingsChanged, viewSettings],\n )\n\n return { updateViewSettings }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAM,sBAAsB,MAAM;AACjC,QAAA,CAAC,UAAU,IAAI,sBAAsB;AAErC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,gBAAgB;AAEpB,QAAM,qBAAqB;AAAA,IACzB,OACE,iBACA,kBACA,eACA,UAAyB,CAAA,MACtB;AACC,UAAA;AACE,YAAA,CAAC,SAAgB,OAAA;AACjB,YAAA,CAAC,YAAmB,OAAA;AAGxB,yBAAiB,aAAa;AAG9B,cAAM,cAAc,EAAE,GAAG,cAAc,GAAG,gBAAgB;AAGpD,cAAA,iBAAiB,oBAAoB,WAAW;AAEhD,cAAA,oBAAmB,2CAAa,OAAM,eAAe;AAG3D,cAAM,UAAU,WAAW;AAAA,UACzB,SAAS;AAAA,UACT;AAAA,UACA;AAAA,QACD,CAAA,EAAE,OAAO;AAGN,YAAA,gBAAgB,CAAC,aAAa,SAAS;AACzC,4BAAkB,IAAI;AAAA,QAAA;AAGxB,wBAAgB,gBAA0B;AAEpC,cAAA;AAGN,yBAAiB,IAAI;AAErB,YAAI,QAAQ,gBAAgB;AACpB,gBAAA,QAAQ,QAAQ,cAAc;AAAA,QAAA;AAAA,eAE/B,OAAO;AAEd,yBAAiB,IAAI;AACrB,cAAM,WAAW,QAAQ,gBAAgB,mCAAmC,KAAK;AACjF,cAAM,MAAM,QAAQ;AAAA,MAAA;AAAA,IAExB;AAAA,IACA,CAAC,YAAY,UAAU,aAAa,aAAa,cAAc,mBAAmB,YAAY;AAAA,EAChG;AAEA,SAAO,EAAE,mBAAmB;AAC9B;"}
|
|
@@ -129,7 +129,10 @@ const powerpackFeatures = {
|
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
const PowerpackContext = React.createContext(void 0);
|
|
132
|
-
const PowerpackProvider = ({
|
|
132
|
+
const PowerpackProvider = ({
|
|
133
|
+
children,
|
|
134
|
+
debug
|
|
135
|
+
}) => {
|
|
133
136
|
const [selectedPowerPack, setPowerpackDialog] = React.useState(null);
|
|
134
137
|
const resolvePowerPackDialog = (selected) => {
|
|
135
138
|
if (!selected) return null;
|
|
@@ -145,7 +148,10 @@ const PowerpackProvider = ({ children }) => {
|
|
|
145
148
|
});
|
|
146
149
|
React.useEffect(() => {
|
|
147
150
|
const checkLicense = async () => {
|
|
148
|
-
if (
|
|
151
|
+
if ((debug == null ? void 0 : debug.powerLicense) !== void 0) {
|
|
152
|
+
console.warn("Using debug power license:", debug.powerLicense);
|
|
153
|
+
setPowerLicense(debug.powerLicense);
|
|
154
|
+
} else if (isLoaded) {
|
|
149
155
|
try {
|
|
150
156
|
const hasPowerLicense = await checkPowerLicense();
|
|
151
157
|
setPowerLicense(hasPowerLicense);
|
|
@@ -156,7 +162,7 @@ const PowerpackProvider = ({ children }) => {
|
|
|
156
162
|
}
|
|
157
163
|
};
|
|
158
164
|
checkLicense();
|
|
159
|
-
}, [isLoaded, checkPowerLicense]);
|
|
165
|
+
}, [debug, isLoaded, checkPowerLicense]);
|
|
160
166
|
const value = React.useMemo(
|
|
161
167
|
() => ({
|
|
162
168
|
powerLicense,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerpackContext.cjs.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\n | 'sharedViews'\nexport type PowerpackDialogType = {\n label: string\n description: string\n bullet: string\n icon?: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialogType\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n sharedViews: {\n label: 'Shared Views',\n description: 'Save custom views and share them with team members for better collaboration.',\n bullet: 'Save and share custom views',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialogType | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({
|
|
1
|
+
{"version":3,"file":"PowerpackContext.cjs.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\n | 'sharedViews'\nexport type PowerpackDialogType = {\n label: string\n description: string\n bullet: string\n icon?: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialogType\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n sharedViews: {\n label: 'Shared Views',\n description: 'Save custom views and share them with team members for better collaboration.',\n bullet: 'Save and share custom views',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialogType | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({\n children,\n debug,\n}: {\n children: ReactNode\n debug?: { powerLicense?: boolean }\n}) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n setPowerLicense(debug.powerLicense)\n } else if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [debug, isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useLoadModule","useEffect","useMemo","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmBA,oBAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AACF,MAGM;AACJ,QAAM,CAAC,mBAAmB,kBAAkB,IAC1CC,MAAAA,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAIC,cAAAA,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC3B,WAAA,+BAAO,kBAAiB,QAAW;AAC7B,gBAAA,KAAK,8BAA8B,MAAM,YAAY;AAC7D,wBAAgB,MAAM,YAAY;AAAA,iBACzB,UAAU;AACf,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EACZ,GAAA,CAAC,OAAO,UAAU,iBAAiB,CAAC;AAEvC,QAAM,QAAQC,MAAA;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQC,2BAAAA,kBAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAUC,iBAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;;;;"}
|
|
@@ -127,7 +127,10 @@ const powerpackFeatures = {
|
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
129
|
const PowerpackContext = createContext(void 0);
|
|
130
|
-
const PowerpackProvider = ({
|
|
130
|
+
const PowerpackProvider = ({
|
|
131
|
+
children,
|
|
132
|
+
debug
|
|
133
|
+
}) => {
|
|
131
134
|
const [selectedPowerPack, setPowerpackDialog] = useState(null);
|
|
132
135
|
const resolvePowerPackDialog = (selected) => {
|
|
133
136
|
if (!selected) return null;
|
|
@@ -143,7 +146,10 @@ const PowerpackProvider = ({ children }) => {
|
|
|
143
146
|
});
|
|
144
147
|
useEffect(() => {
|
|
145
148
|
const checkLicense = async () => {
|
|
146
|
-
if (
|
|
149
|
+
if ((debug == null ? void 0 : debug.powerLicense) !== void 0) {
|
|
150
|
+
console.warn("Using debug power license:", debug.powerLicense);
|
|
151
|
+
setPowerLicense(debug.powerLicense);
|
|
152
|
+
} else if (isLoaded) {
|
|
147
153
|
try {
|
|
148
154
|
const hasPowerLicense = await checkPowerLicense();
|
|
149
155
|
setPowerLicense(hasPowerLicense);
|
|
@@ -154,7 +160,7 @@ const PowerpackProvider = ({ children }) => {
|
|
|
154
160
|
}
|
|
155
161
|
};
|
|
156
162
|
checkLicense();
|
|
157
|
-
}, [isLoaded, checkPowerLicense]);
|
|
163
|
+
}, [debug, isLoaded, checkPowerLicense]);
|
|
158
164
|
const value = useMemo(
|
|
159
165
|
() => ({
|
|
160
166
|
powerLicense,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerpackContext.es.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\n | 'sharedViews'\nexport type PowerpackDialogType = {\n label: string\n description: string\n bullet: string\n icon?: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialogType\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n sharedViews: {\n label: 'Shared Views',\n description: 'Save custom views and share them with team members for better collaboration.',\n bullet: 'Save and share custom views',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialogType | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({
|
|
1
|
+
{"version":3,"file":"PowerpackContext.es.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\n | 'sharedViews'\nexport type PowerpackDialogType = {\n label: string\n description: string\n bullet: string\n icon?: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialogType\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n sharedViews: {\n label: 'Shared Views',\n description: 'Save custom views and share them with team members for better collaboration.',\n bullet: 'Save and share custom views',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialogType | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({\n children,\n debug,\n}: {\n children: ReactNode\n debug?: { powerLicense?: boolean }\n}) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n setPowerLicense(debug.powerLicense)\n } else if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [debug, isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmB,cAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AACF,MAGM;AACJ,QAAM,CAAC,mBAAmB,kBAAkB,IAC1C,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAI,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAED,YAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC3B,WAAA,+BAAO,kBAAiB,QAAW;AAC7B,gBAAA,KAAK,8BAA8B,MAAM,YAAY;AAC7D,wBAAgB,MAAM,YAAY;AAAA,iBACzB,UAAU;AACf,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EACZ,GAAA,CAAC,OAAO,UAAU,iBAAiB,CAAC;AAEvC,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQA,kCAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAU,WAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;"}
|
|
@@ -72,7 +72,7 @@ const useLoadModule = ({
|
|
|
72
72
|
isLoading,
|
|
73
73
|
outdated: isOutdated ? {
|
|
74
74
|
current: ((_a = modules.find((m) => m.addonName === addon)) == null ? void 0 : _a.addonVersion) || "unknown",
|
|
75
|
-
required: minVersion || "unknown"
|
|
75
|
+
required: (minVersion == null ? void 0 : minVersion.replace("-dev", "")) || "unknown"
|
|
76
76
|
} : void 0
|
|
77
77
|
}
|
|
78
78
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoadModule.cjs.js","sources":["../../../../src/hooks/useLoadModule.ts"],"sourcesContent":["import { useRemoteModules } from '@shared/context/RemoteModulesContext'\nimport { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\n\ninterface Props<T> {\n addon: string\n remote: string\n module: string\n fallback: T\n debug?: boolean\n minVersion?: string // minimum version required for this module\n skip?: boolean // skip loading if module is provided externally\n}\n\nexport const useLoadModule = <T>({\n addon,\n remote,\n module,\n fallback,\n minVersion,\n skip = false,\n}: Props<T>): [\n T,\n { isLoaded: boolean; isLoading: boolean; outdated?: { current: string; required: string } },\n] => {\n const { remotesInitialized, modules } = useRemoteModules()\n const [isLoading, setIsLoading] = useState(true)\n const [isLoaded, setIsLoaded] = useState<string | boolean>(false)\n const [isOutdated, setIsOutdated] = useState(false)\n const loadedRemote = useRef<T>(fallback)\n\n useEffect(() => {\n // skip loading if module is provided externally\n if (skip) {\n setIsLoading(false)\n setIsLoaded(true)\n return\n }\n\n // wait for remotes to be initialized\n if (!remotesInitialized || !addon || !remote || !module) return\n\n // check if remote and module exist\n const initializedRemote = modules.find((m) => m.addonName === addon)\n\n if (!initializedRemote) {\n console.log('remote not found', { addon, remote, module })\n setIsLoading(false)\n return\n }\n\n // check remote meets minimum version requirement\n if (\n minVersion &&\n !semver.gte(initializedRemote.addonVersion, minVersion) &&\n minVersion + '-dev' !== initializedRemote.addonVersion\n ) {\n console.log('remote version does not meet minimum requirement', {\n addon,\n remote,\n module,\n current: initializedRemote.addonVersion,\n required: minVersion,\n })\n\n setIsOutdated(true)\n setIsLoading(false)\n\n // use fallback if version requirement not met\n return\n }\n\n setIsOutdated(false)\n\n const initializedModule = initializedRemote.modules[remote]\n\n if (!initializedModule) {\n setIsLoading(false)\n return console.log('module not found', { addon, remote, module })\n }\n\n // check if module is already loaded\n if (isLoaded === module) {\n setIsLoading(false)\n return\n }\n loadRemote<{ default: T }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n .then((remote) => {\n console.log('loaded remote', module)\n setIsLoaded(module)\n setIsLoading(false)\n if (remote) loadedRemote.current = remote.default\n })\n .catch((e) => {\n setIsLoading(false)\n console.error('error loading remote', remote, module, e)\n })\n }, [isLoaded, remotesInitialized, modules, addon, remote, module, minVersion, skip])\n\n return [\n loadedRemote.current,\n {\n isLoaded: isLoaded === module,\n isLoading,\n outdated: isOutdated\n ? {\n current: modules.find((m) => m.addonName === addon)?.addonVersion || 'unknown',\n required: minVersion || 'unknown',\n }\n : undefined,\n },\n ]\n}\n"],"names":["module","useRemoteModules","useState","useRef","useEffect","loadRemote","remote"],"mappings":";;;;;;AAeO,MAAM,gBAAgB,CAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,QAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,MAGK;;AACH,QAAM,EAAE,oBAAoB,QAAQ,IAAIC,sCAAiB;AACzD,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,IAAI;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAA2B,KAAK;AAChE,QAAM,CAAC,YAAY,aAAa,IAAIA,MAAAA,SAAS,KAAK;AAC5C,QAAA,eAAeC,aAAU,QAAQ;AAEvCC,QAAAA,UAAU,MAAM;AAEd,QAAI,MAAM;AACR,mBAAa,KAAK;AAClB,kBAAY,IAAI;AAChB;AAAA,IAAA;AAIF,QAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,UAAU,CAACJ,QAAQ;AAGzD,UAAM,oBAAoB,QAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK;AAEnE,QAAI,CAAC,mBAAmB;AACtB,cAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAAA,SAAQ;AACzD,mBAAa,KAAK;AAClB;AAAA,IAAA;AAKA,QAAA,cACA,CAAC,OAAO,IAAI,kBAAkB,cAAc,UAAU,KACtD,aAAa,WAAW,kBAAkB,cAC1C;AACA,cAAQ,IAAI,oDAAoD;AAAA,QAC9D;AAAA,QACA;AAAA,QACA,QAAAA;AAAA,QACA,SAAS,kBAAkB;AAAA,QAC3B,UAAU;AAAA,MAAA,CACX;AAED,oBAAc,IAAI;AAClB,mBAAa,KAAK;AAGlB;AAAA,IAAA;AAGF,kBAAc,KAAK;AAEb,UAAA,oBAAoB,kBAAkB,QAAQ,MAAM;AAE1D,QAAI,CAAC,mBAAmB;AACtB,mBAAa,KAAK;AAClB,aAAO,QAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAAA,SAAQ;AAAA,IAAA;AAIlE,QAAI,aAAaA,SAAQ;AACvB,mBAAa,KAAK;AAClB;AAAA,IAAA;AAEFK,YAAAA,eAAAA,WAA2B,GAAG,MAAM,IAAIL,OAAM,IAAI;AAAA,MAChD,MAAM;AAAA,IAAA,CACP,EACE,KAAK,CAACM,YAAW;AACR,cAAA,IAAI,iBAAiBN,OAAM;AACnC,kBAAYA,OAAM;AAClB,mBAAa,KAAK;AACdM,UAAAA,QAAqB,cAAA,UAAUA,QAAO;AAAA,IAAA,CAC3C,EACA,MAAM,CAAC,MAAM;AACZ,mBAAa,KAAK;AAClB,cAAQ,MAAM,wBAAwB,QAAQN,SAAQ,CAAC;AAAA,IAAA,CACxD;AAAA,EAAA,GACF,CAAC,UAAU,oBAAoB,SAAS,OAAO,QAAQA,SAAQ,YAAY,IAAI,CAAC;AAE5E,SAAA;AAAA,IACL,aAAa;AAAA,IACb;AAAA,MACE,UAAU,aAAaA;AAAA,MACvB;AAAA,MACA,UAAU,aACN;AAAA,QACE,WAAS,aAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,MAAzC,mBAA4C,iBAAgB;AAAA,QACrE,
|
|
1
|
+
{"version":3,"file":"useLoadModule.cjs.js","sources":["../../../../src/hooks/useLoadModule.ts"],"sourcesContent":["import { useRemoteModules } from '@shared/context/RemoteModulesContext'\nimport { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\n\ninterface Props<T> {\n addon: string\n remote: string\n module: string\n fallback: T\n debug?: boolean\n minVersion?: string // minimum version required for this module\n skip?: boolean // skip loading if module is provided externally\n}\n\nexport const useLoadModule = <T>({\n addon,\n remote,\n module,\n fallback,\n minVersion,\n skip = false,\n}: Props<T>): [\n T,\n { isLoaded: boolean; isLoading: boolean; outdated?: { current: string; required: string } },\n] => {\n const { remotesInitialized, modules } = useRemoteModules()\n const [isLoading, setIsLoading] = useState(true)\n const [isLoaded, setIsLoaded] = useState<string | boolean>(false)\n const [isOutdated, setIsOutdated] = useState(false)\n const loadedRemote = useRef<T>(fallback)\n\n useEffect(() => {\n // skip loading if module is provided externally\n if (skip) {\n setIsLoading(false)\n setIsLoaded(true)\n return\n }\n\n // wait for remotes to be initialized\n if (!remotesInitialized || !addon || !remote || !module) return\n\n // check if remote and module exist\n const initializedRemote = modules.find((m) => m.addonName === addon)\n\n if (!initializedRemote) {\n console.log('remote not found', { addon, remote, module })\n setIsLoading(false)\n return\n }\n\n // check remote meets minimum version requirement\n if (\n minVersion &&\n !semver.gte(initializedRemote.addonVersion, minVersion) &&\n minVersion + '-dev' !== initializedRemote.addonVersion\n ) {\n console.log('remote version does not meet minimum requirement', {\n addon,\n remote,\n module,\n current: initializedRemote.addonVersion,\n required: minVersion,\n })\n\n setIsOutdated(true)\n setIsLoading(false)\n\n // use fallback if version requirement not met\n return\n }\n\n setIsOutdated(false)\n\n const initializedModule = initializedRemote.modules[remote]\n\n if (!initializedModule) {\n setIsLoading(false)\n return console.log('module not found', { addon, remote, module })\n }\n\n // check if module is already loaded\n if (isLoaded === module) {\n setIsLoading(false)\n return\n }\n loadRemote<{ default: T }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n .then((remote) => {\n console.log('loaded remote', module)\n setIsLoaded(module)\n setIsLoading(false)\n if (remote) loadedRemote.current = remote.default\n })\n .catch((e) => {\n setIsLoading(false)\n console.error('error loading remote', remote, module, e)\n })\n }, [isLoaded, remotesInitialized, modules, addon, remote, module, minVersion, skip])\n\n return [\n loadedRemote.current,\n {\n isLoaded: isLoaded === module,\n isLoading,\n outdated: isOutdated\n ? {\n current: modules.find((m) => m.addonName === addon)?.addonVersion || 'unknown',\n required: minVersion?.replace('-dev', '') || 'unknown',\n }\n : undefined,\n },\n ]\n}\n"],"names":["module","useRemoteModules","useState","useRef","useEffect","loadRemote","remote"],"mappings":";;;;;;AAeO,MAAM,gBAAgB,CAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,QAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,MAGK;;AACH,QAAM,EAAE,oBAAoB,QAAQ,IAAIC,sCAAiB;AACzD,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,IAAI;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAA2B,KAAK;AAChE,QAAM,CAAC,YAAY,aAAa,IAAIA,MAAAA,SAAS,KAAK;AAC5C,QAAA,eAAeC,aAAU,QAAQ;AAEvCC,QAAAA,UAAU,MAAM;AAEd,QAAI,MAAM;AACR,mBAAa,KAAK;AAClB,kBAAY,IAAI;AAChB;AAAA,IAAA;AAIF,QAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,UAAU,CAACJ,QAAQ;AAGzD,UAAM,oBAAoB,QAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK;AAEnE,QAAI,CAAC,mBAAmB;AACtB,cAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAAA,SAAQ;AACzD,mBAAa,KAAK;AAClB;AAAA,IAAA;AAKA,QAAA,cACA,CAAC,OAAO,IAAI,kBAAkB,cAAc,UAAU,KACtD,aAAa,WAAW,kBAAkB,cAC1C;AACA,cAAQ,IAAI,oDAAoD;AAAA,QAC9D;AAAA,QACA;AAAA,QACA,QAAAA;AAAA,QACA,SAAS,kBAAkB;AAAA,QAC3B,UAAU;AAAA,MAAA,CACX;AAED,oBAAc,IAAI;AAClB,mBAAa,KAAK;AAGlB;AAAA,IAAA;AAGF,kBAAc,KAAK;AAEb,UAAA,oBAAoB,kBAAkB,QAAQ,MAAM;AAE1D,QAAI,CAAC,mBAAmB;AACtB,mBAAa,KAAK;AAClB,aAAO,QAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAAA,SAAQ;AAAA,IAAA;AAIlE,QAAI,aAAaA,SAAQ;AACvB,mBAAa,KAAK;AAClB;AAAA,IAAA;AAEFK,YAAAA,eAAAA,WAA2B,GAAG,MAAM,IAAIL,OAAM,IAAI;AAAA,MAChD,MAAM;AAAA,IAAA,CACP,EACE,KAAK,CAACM,YAAW;AACR,cAAA,IAAI,iBAAiBN,OAAM;AACnC,kBAAYA,OAAM;AAClB,mBAAa,KAAK;AACdM,UAAAA,QAAqB,cAAA,UAAUA,QAAO;AAAA,IAAA,CAC3C,EACA,MAAM,CAAC,MAAM;AACZ,mBAAa,KAAK;AAClB,cAAQ,MAAM,wBAAwB,QAAQN,SAAQ,CAAC;AAAA,IAAA,CACxD;AAAA,EAAA,GACF,CAAC,UAAU,oBAAoB,SAAS,OAAO,QAAQA,SAAQ,YAAY,IAAI,CAAC;AAE5E,SAAA;AAAA,IACL,aAAa;AAAA,IACb;AAAA,MACE,UAAU,aAAaA;AAAA,MACvB;AAAA,MACA,UAAU,aACN;AAAA,QACE,WAAS,aAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,MAAzC,mBAA4C,iBAAgB;AAAA,QACrE,WAAU,yCAAY,QAAQ,QAAQ,QAAO;AAAA,MAAA,IAE/C;AAAA,IAAA;AAAA,EAER;AACF;;"}
|
|
@@ -70,7 +70,7 @@ const useLoadModule = ({
|
|
|
70
70
|
isLoading,
|
|
71
71
|
outdated: isOutdated ? {
|
|
72
72
|
current: ((_a = modules.find((m) => m.addonName === addon)) == null ? void 0 : _a.addonVersion) || "unknown",
|
|
73
|
-
required: minVersion || "unknown"
|
|
73
|
+
required: (minVersion == null ? void 0 : minVersion.replace("-dev", "")) || "unknown"
|
|
74
74
|
} : void 0
|
|
75
75
|
}
|
|
76
76
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoadModule.es.js","sources":["../../../../src/hooks/useLoadModule.ts"],"sourcesContent":["import { useRemoteModules } from '@shared/context/RemoteModulesContext'\nimport { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\n\ninterface Props<T> {\n addon: string\n remote: string\n module: string\n fallback: T\n debug?: boolean\n minVersion?: string // minimum version required for this module\n skip?: boolean // skip loading if module is provided externally\n}\n\nexport const useLoadModule = <T>({\n addon,\n remote,\n module,\n fallback,\n minVersion,\n skip = false,\n}: Props<T>): [\n T,\n { isLoaded: boolean; isLoading: boolean; outdated?: { current: string; required: string } },\n] => {\n const { remotesInitialized, modules } = useRemoteModules()\n const [isLoading, setIsLoading] = useState(true)\n const [isLoaded, setIsLoaded] = useState<string | boolean>(false)\n const [isOutdated, setIsOutdated] = useState(false)\n const loadedRemote = useRef<T>(fallback)\n\n useEffect(() => {\n // skip loading if module is provided externally\n if (skip) {\n setIsLoading(false)\n setIsLoaded(true)\n return\n }\n\n // wait for remotes to be initialized\n if (!remotesInitialized || !addon || !remote || !module) return\n\n // check if remote and module exist\n const initializedRemote = modules.find((m) => m.addonName === addon)\n\n if (!initializedRemote) {\n console.log('remote not found', { addon, remote, module })\n setIsLoading(false)\n return\n }\n\n // check remote meets minimum version requirement\n if (\n minVersion &&\n !semver.gte(initializedRemote.addonVersion, minVersion) &&\n minVersion + '-dev' !== initializedRemote.addonVersion\n ) {\n console.log('remote version does not meet minimum requirement', {\n addon,\n remote,\n module,\n current: initializedRemote.addonVersion,\n required: minVersion,\n })\n\n setIsOutdated(true)\n setIsLoading(false)\n\n // use fallback if version requirement not met\n return\n }\n\n setIsOutdated(false)\n\n const initializedModule = initializedRemote.modules[remote]\n\n if (!initializedModule) {\n setIsLoading(false)\n return console.log('module not found', { addon, remote, module })\n }\n\n // check if module is already loaded\n if (isLoaded === module) {\n setIsLoading(false)\n return\n }\n loadRemote<{ default: T }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n .then((remote) => {\n console.log('loaded remote', module)\n setIsLoaded(module)\n setIsLoading(false)\n if (remote) loadedRemote.current = remote.default\n })\n .catch((e) => {\n setIsLoading(false)\n console.error('error loading remote', remote, module, e)\n })\n }, [isLoaded, remotesInitialized, modules, addon, remote, module, minVersion, skip])\n\n return [\n loadedRemote.current,\n {\n isLoaded: isLoaded === module,\n isLoading,\n outdated: isOutdated\n ? {\n current: modules.find((m) => m.addonName === addon)?.addonVersion || 'unknown',\n required: minVersion || 'unknown',\n }\n : undefined,\n },\n ]\n}\n"],"names":["loadRemote","remote"],"mappings":";;;;AAeO,MAAM,gBAAgB,CAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,MAGK;;AACH,QAAM,EAAE,oBAAoB,QAAQ,IAAI,iBAAiB;AACzD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,IAAI;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAI,SAA2B,KAAK;AAChE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAC5C,QAAA,eAAe,OAAU,QAAQ;AAEvC,YAAU,MAAM;AAEd,QAAI,MAAM;AACR,mBAAa,KAAK;AAClB,kBAAY,IAAI;AAChB;AAAA,IAAA;AAIF,QAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,UAAU,CAAC,OAAQ;AAGzD,UAAM,oBAAoB,QAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK;AAEnE,QAAI,CAAC,mBAAmB;AACtB,cAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAQ;AACzD,mBAAa,KAAK;AAClB;AAAA,IAAA;AAKA,QAAA,cACA,CAAC,OAAO,IAAI,kBAAkB,cAAc,UAAU,KACtD,aAAa,WAAW,kBAAkB,cAC1C;AACA,cAAQ,IAAI,oDAAoD;AAAA,QAC9D;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,kBAAkB;AAAA,QAC3B,UAAU;AAAA,MAAA,CACX;AAED,oBAAc,IAAI;AAClB,mBAAa,KAAK;AAGlB;AAAA,IAAA;AAGF,kBAAc,KAAK;AAEb,UAAA,oBAAoB,kBAAkB,QAAQ,MAAM;AAE1D,QAAI,CAAC,mBAAmB;AACtB,mBAAa,KAAK;AAClB,aAAO,QAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAQ;AAAA,IAAA;AAIlE,QAAI,aAAa,QAAQ;AACvB,mBAAa,KAAK;AAClB;AAAA,IAAA;AAEFA,mBAAAA,WAA2B,GAAG,MAAM,IAAI,MAAM,IAAI;AAAA,MAChD,MAAM;AAAA,IAAA,CACP,EACE,KAAK,CAACC,YAAW;AACR,cAAA,IAAI,iBAAiB,MAAM;AACnC,kBAAY,MAAM;AAClB,mBAAa,KAAK;AACdA,UAAAA,QAAqB,cAAA,UAAUA,QAAO;AAAA,IAAA,CAC3C,EACA,MAAM,CAAC,MAAM;AACZ,mBAAa,KAAK;AAClB,cAAQ,MAAM,wBAAwB,QAAQ,QAAQ,CAAC;AAAA,IAAA,CACxD;AAAA,EAAA,GACF,CAAC,UAAU,oBAAoB,SAAS,OAAO,QAAQ,QAAQ,YAAY,IAAI,CAAC;AAE5E,SAAA;AAAA,IACL,aAAa;AAAA,IACb;AAAA,MACE,UAAU,aAAa;AAAA,MACvB;AAAA,MACA,UAAU,aACN;AAAA,QACE,WAAS,aAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,MAAzC,mBAA4C,iBAAgB;AAAA,QACrE,
|
|
1
|
+
{"version":3,"file":"useLoadModule.es.js","sources":["../../../../src/hooks/useLoadModule.ts"],"sourcesContent":["import { useRemoteModules } from '@shared/context/RemoteModulesContext'\nimport { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\n\ninterface Props<T> {\n addon: string\n remote: string\n module: string\n fallback: T\n debug?: boolean\n minVersion?: string // minimum version required for this module\n skip?: boolean // skip loading if module is provided externally\n}\n\nexport const useLoadModule = <T>({\n addon,\n remote,\n module,\n fallback,\n minVersion,\n skip = false,\n}: Props<T>): [\n T,\n { isLoaded: boolean; isLoading: boolean; outdated?: { current: string; required: string } },\n] => {\n const { remotesInitialized, modules } = useRemoteModules()\n const [isLoading, setIsLoading] = useState(true)\n const [isLoaded, setIsLoaded] = useState<string | boolean>(false)\n const [isOutdated, setIsOutdated] = useState(false)\n const loadedRemote = useRef<T>(fallback)\n\n useEffect(() => {\n // skip loading if module is provided externally\n if (skip) {\n setIsLoading(false)\n setIsLoaded(true)\n return\n }\n\n // wait for remotes to be initialized\n if (!remotesInitialized || !addon || !remote || !module) return\n\n // check if remote and module exist\n const initializedRemote = modules.find((m) => m.addonName === addon)\n\n if (!initializedRemote) {\n console.log('remote not found', { addon, remote, module })\n setIsLoading(false)\n return\n }\n\n // check remote meets minimum version requirement\n if (\n minVersion &&\n !semver.gte(initializedRemote.addonVersion, minVersion) &&\n minVersion + '-dev' !== initializedRemote.addonVersion\n ) {\n console.log('remote version does not meet minimum requirement', {\n addon,\n remote,\n module,\n current: initializedRemote.addonVersion,\n required: minVersion,\n })\n\n setIsOutdated(true)\n setIsLoading(false)\n\n // use fallback if version requirement not met\n return\n }\n\n setIsOutdated(false)\n\n const initializedModule = initializedRemote.modules[remote]\n\n if (!initializedModule) {\n setIsLoading(false)\n return console.log('module not found', { addon, remote, module })\n }\n\n // check if module is already loaded\n if (isLoaded === module) {\n setIsLoading(false)\n return\n }\n loadRemote<{ default: T }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n .then((remote) => {\n console.log('loaded remote', module)\n setIsLoaded(module)\n setIsLoading(false)\n if (remote) loadedRemote.current = remote.default\n })\n .catch((e) => {\n setIsLoading(false)\n console.error('error loading remote', remote, module, e)\n })\n }, [isLoaded, remotesInitialized, modules, addon, remote, module, minVersion, skip])\n\n return [\n loadedRemote.current,\n {\n isLoaded: isLoaded === module,\n isLoading,\n outdated: isOutdated\n ? {\n current: modules.find((m) => m.addonName === addon)?.addonVersion || 'unknown',\n required: minVersion?.replace('-dev', '') || 'unknown',\n }\n : undefined,\n },\n ]\n}\n"],"names":["loadRemote","remote"],"mappings":";;;;AAeO,MAAM,gBAAgB,CAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,MAGK;;AACH,QAAM,EAAE,oBAAoB,QAAQ,IAAI,iBAAiB;AACzD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,IAAI;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAI,SAA2B,KAAK;AAChE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAC5C,QAAA,eAAe,OAAU,QAAQ;AAEvC,YAAU,MAAM;AAEd,QAAI,MAAM;AACR,mBAAa,KAAK;AAClB,kBAAY,IAAI;AAChB;AAAA,IAAA;AAIF,QAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,UAAU,CAAC,OAAQ;AAGzD,UAAM,oBAAoB,QAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK;AAEnE,QAAI,CAAC,mBAAmB;AACtB,cAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAQ;AACzD,mBAAa,KAAK;AAClB;AAAA,IAAA;AAKA,QAAA,cACA,CAAC,OAAO,IAAI,kBAAkB,cAAc,UAAU,KACtD,aAAa,WAAW,kBAAkB,cAC1C;AACA,cAAQ,IAAI,oDAAoD;AAAA,QAC9D;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,kBAAkB;AAAA,QAC3B,UAAU;AAAA,MAAA,CACX;AAED,oBAAc,IAAI;AAClB,mBAAa,KAAK;AAGlB;AAAA,IAAA;AAGF,kBAAc,KAAK;AAEb,UAAA,oBAAoB,kBAAkB,QAAQ,MAAM;AAE1D,QAAI,CAAC,mBAAmB;AACtB,mBAAa,KAAK;AAClB,aAAO,QAAQ,IAAI,oBAAoB,EAAE,OAAO,QAAQ,QAAQ;AAAA,IAAA;AAIlE,QAAI,aAAa,QAAQ;AACvB,mBAAa,KAAK;AAClB;AAAA,IAAA;AAEFA,mBAAAA,WAA2B,GAAG,MAAM,IAAI,MAAM,IAAI;AAAA,MAChD,MAAM;AAAA,IAAA,CACP,EACE,KAAK,CAACC,YAAW;AACR,cAAA,IAAI,iBAAiB,MAAM;AACnC,kBAAY,MAAM;AAClB,mBAAa,KAAK;AACdA,UAAAA,QAAqB,cAAA,UAAUA,QAAO;AAAA,IAAA,CAC3C,EACA,MAAM,CAAC,MAAM;AACZ,mBAAa,KAAK;AAClB,cAAQ,MAAM,wBAAwB,QAAQ,QAAQ,CAAC;AAAA,IAAA,CACxD;AAAA,EAAA,GACF,CAAC,UAAU,oBAAoB,SAAS,OAAO,QAAQ,QAAQ,YAAY,IAAI,CAAC;AAE5E,SAAA;AAAA,IACL,aAAa;AAAA,IACb;AAAA,MACE,UAAU,aAAa;AAAA,MACvB;AAAA,MACA,UAAU,aACN;AAAA,QACE,WAAS,aAAQ,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,MAAzC,mBAA4C,iBAAgB;AAAA,QACrE,WAAU,yCAAY,QAAQ,QAAQ,QAAO;AAAA,MAAA,IAE/C;AAAA,IAAA;AAAA,EAER;AACF;"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function convertColumnConfigToTanstackStates(settings) {
|
|
4
|
+
const { columns = [], groupBy: groupByField, showEmptyGroups, sortBy, sortDesc } = settings || {};
|
|
5
|
+
const columnVisibility = {};
|
|
6
|
+
const columnPinning = { left: [], right: [] };
|
|
7
|
+
const columnOrder = [];
|
|
8
|
+
const columnSizing = {};
|
|
9
|
+
columns.forEach((column) => {
|
|
10
|
+
var _a;
|
|
11
|
+
const { name, visible, pinned, width } = column;
|
|
12
|
+
columnVisibility[name] = visible !== false;
|
|
13
|
+
columnOrder.push(name);
|
|
14
|
+
if (pinned) {
|
|
15
|
+
(_a = columnPinning.left) == null ? void 0 : _a.push(name);
|
|
16
|
+
}
|
|
17
|
+
if (width !== void 0) {
|
|
18
|
+
columnSizing[name] = width;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const sorting = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : [];
|
|
22
|
+
const groupBy = groupByField ? { id: groupByField, desc: false } : void 0;
|
|
23
|
+
const groupByConfig = {
|
|
24
|
+
showEmpty: showEmptyGroups || false
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
columnVisibility,
|
|
28
|
+
columnPinning,
|
|
29
|
+
columnOrder,
|
|
30
|
+
columnSizing,
|
|
31
|
+
sorting,
|
|
32
|
+
groupBy,
|
|
33
|
+
groupByConfig
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function determineColumnOrder(columnOrder, allColumnIds, columnsWithState) {
|
|
37
|
+
const orderedColumns = [...columnOrder];
|
|
38
|
+
const remainingColumns = allColumnIds.filter(
|
|
39
|
+
(columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId)
|
|
40
|
+
);
|
|
41
|
+
return [...orderedColumns, ...remainingColumns];
|
|
42
|
+
}
|
|
43
|
+
function collectColumnsWithState(columnVisibility, columnSizing, columnPinning, allColumnIds) {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const columnsWithState = /* @__PURE__ */ new Set();
|
|
46
|
+
Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col));
|
|
47
|
+
Object.keys(columnSizing).forEach((col) => columnsWithState.add(col));
|
|
48
|
+
(_a = columnPinning.left) == null ? void 0 : _a.forEach((col) => columnsWithState.add(col));
|
|
49
|
+
(_b = columnPinning.right) == null ? void 0 : _b.forEach((col) => columnsWithState.add(col));
|
|
50
|
+
allColumnIds == null ? void 0 : allColumnIds.forEach((col) => columnsWithState.add(col));
|
|
51
|
+
return columnsWithState;
|
|
52
|
+
}
|
|
53
|
+
function createColumnItem(columnName, columnVisibility, columnPinning, columnSizing) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
const column = {
|
|
56
|
+
name: columnName
|
|
57
|
+
};
|
|
58
|
+
if (columnVisibility.hasOwnProperty(columnName)) {
|
|
59
|
+
column.visible = columnVisibility[columnName];
|
|
60
|
+
}
|
|
61
|
+
const isPinnedLeft = (_a = columnPinning.left) == null ? void 0 : _a.includes(columnName);
|
|
62
|
+
const isPinnedRight = (_b = columnPinning.right) == null ? void 0 : _b.includes(columnName);
|
|
63
|
+
if (isPinnedLeft || isPinnedRight) {
|
|
64
|
+
column.pinned = true;
|
|
65
|
+
}
|
|
66
|
+
if (columnSizing[columnName] !== void 0) {
|
|
67
|
+
column.width = columnSizing[columnName];
|
|
68
|
+
}
|
|
69
|
+
return column;
|
|
70
|
+
}
|
|
71
|
+
function convertTanstackStatesToColumnConfig(states, allColumnIds) {
|
|
72
|
+
const {
|
|
73
|
+
columnVisibility,
|
|
74
|
+
columnPinning,
|
|
75
|
+
columnOrder,
|
|
76
|
+
columnSizing,
|
|
77
|
+
sorting,
|
|
78
|
+
groupBy,
|
|
79
|
+
groupByConfig
|
|
80
|
+
} = states;
|
|
81
|
+
const columnsWithState = collectColumnsWithState(
|
|
82
|
+
columnVisibility,
|
|
83
|
+
columnSizing,
|
|
84
|
+
columnPinning,
|
|
85
|
+
allColumnIds || []
|
|
86
|
+
);
|
|
87
|
+
const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState);
|
|
88
|
+
const columns = finalColumnOrder.map(
|
|
89
|
+
(columnName) => createColumnItem(columnName, columnVisibility, columnPinning, columnSizing)
|
|
90
|
+
);
|
|
91
|
+
const result = {
|
|
92
|
+
columns
|
|
93
|
+
};
|
|
94
|
+
if (groupBy) {
|
|
95
|
+
result.groupBy = groupBy.id;
|
|
96
|
+
} else {
|
|
97
|
+
result.groupBy = void 0;
|
|
98
|
+
}
|
|
99
|
+
if ((groupByConfig == null ? void 0 : groupByConfig.showEmpty) !== void 0) {
|
|
100
|
+
result.showEmptyGroups = groupByConfig.showEmpty;
|
|
101
|
+
}
|
|
102
|
+
if (sorting) {
|
|
103
|
+
if (sorting.length > 0) {
|
|
104
|
+
const firstSort = sorting[0];
|
|
105
|
+
result.sortBy = firstSort.id;
|
|
106
|
+
result.sortDesc = firstSort.desc;
|
|
107
|
+
} else {
|
|
108
|
+
result.sortBy = void 0;
|
|
109
|
+
result.sortDesc = void 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
exports.convertColumnConfigToTanstackStates = convertColumnConfigToTanstackStates;
|
|
115
|
+
exports.convertTanstackStatesToColumnConfig = convertTanstackStatesToColumnConfig;
|
|
116
|
+
//# sourceMappingURL=columnConfigConverter.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const { columns = [], groupBy: groupByField, showEmptyGroups, sortBy, sortDesc } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: if visible is undefined, default to true\n columnVisibility[name] = visible !== false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n const groupBy: TableGroupBy | undefined = groupByField\n ? { id: groupByField, desc: false }\n : undefined\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n result.groupBy = groupBy.id\n } else {\n result.groupBy = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n return result\n}\n"],"names":[],"mappings":";;AAcO,SAAS,oCAAoC,UAA2C;AACvF,QAAA,EAAE,UAAU,CAAI,GAAA,SAAS,cAAc,iBAAiB,QAAQ,aAAa,YAAY,CAAC;AAGhG,QAAM,mBAAoC,CAAC;AAC3C,QAAM,gBAAoC,EAAE,MAAM,CAAA,GAAI,OAAO,CAAA,EAAG;AAChE,QAAM,cAAgC,CAAC;AACvC,QAAM,eAAkC,CAAC;AAGjC,UAAA,QAAQ,CAAC,WAAW;;AAC1B,UAAM,EAAE,MAAM,SAAS,QAAQ,MAAU,IAAA;AAGxB,qBAAA,IAAI,IAAI,YAAY;AAGrC,gBAAY,KAAK,IAAI;AAGrB,QAAI,QAAQ;AACI,0BAAA,SAAA,mBAAM,KAAK;AAAA,IAAI;AAI/B,QAAI,UAAU,QAAW;AACvB,mBAAa,IAAI,IAAI;AAAA,IAAA;AAAA,EACvB,CACD;AAGK,QAAA,UAAwB,SAAS,CAAC,EAAE,IAAI,QAAQ,MAAM,YAAY,MAAO,CAAA,IAAI,CAAC;AAGpF,QAAM,UAAoC,eACtC,EAAE,IAAI,cAAc,MAAM,UAC1B;AAEJ,QAAM,gBAA+B;AAAA,IACnC,WAAW,mBAAmB;AAAA,EAChC;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAOA,SAAS,qBACP,aACA,cACA,kBACU;AAEJ,QAAA,iBAAiB,CAAC,GAAG,WAAW;AAGtC,QAAM,mBAAmB,aAAa;AAAA,IACpC,CAAC,aAAa,CAAC,YAAY,SAAS,QAAQ,KAAK,iBAAiB,IAAI,QAAQ;AAAA,EAChF;AAEA,SAAO,CAAC,GAAG,gBAAgB,GAAG,gBAAgB;AAChD;AAKA,SAAS,wBACP,kBACA,cACA,eACA,cACa;;AACP,QAAA,uCAAuB,IAAY;AAGlC,SAAA,KAAK,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,iBAAiB,IAAI,GAAG,CAAC;AAGjE,SAAA,KAAK,YAAY,EAAE,QAAQ,CAAC,QAAQ,iBAAiB,IAAI,GAAG,CAAC;AAGpE,sBAAc,SAAd,mBAAoB,QAAQ,CAAC,QAAQ,iBAAiB,IAAI,GAAG;AAC7D,sBAAc,UAAd,mBAAqB,QAAQ,CAAC,QAAQ,iBAAiB,IAAI,GAAG;AAG9D,+CAAc,QAAQ,CAAC,QAAQ,iBAAiB,IAAI,GAAG;AAEhD,SAAA;AACT;AAKA,SAAS,iBACP,YACA,kBACA,eACA,cACiB;;AACjB,QAAM,SAA0B;AAAA,IAC9B,MAAM;AAAA,EACR;AAGI,MAAA,iBAAiB,eAAe,UAAU,GAAG;AACxC,WAAA,UAAU,iBAAiB,UAAU;AAAA,EAAA;AAI9C,QAAM,gBAAe,mBAAc,SAAd,mBAAoB,SAAS;AAClD,QAAM,iBAAgB,mBAAc,UAAd,mBAAqB,SAAS;AAEpD,MAAI,gBAAgB,eAAe;AACjC,WAAO,SAAS;AAAA,EAAA;AAId,MAAA,aAAa,UAAU,MAAM,QAAW;AACnC,WAAA,QAAQ,aAAa,UAAU;AAAA,EAAA;AAGjC,SAAA;AACT;AAUgB,SAAA,oCACd,QACA,cACkB;AACZ,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAGJ,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,CAAA;AAAA,EAClB;AAGA,QAAM,mBAAmB,qBAAqB,aAAa,gBAAgB,CAAA,GAAI,gBAAgB;AAG/F,QAAM,UAA6B,iBAAiB;AAAA,IAAI,CAAC,eACvD,iBAAiB,YAAY,kBAAkB,eAAe,YAAY;AAAA,EAC5E;AAGA,QAAM,SAA2B;AAAA,IAC/B;AAAA,EACF;AAGA,MAAI,SAAS;AACX,WAAO,UAAU,QAAQ;AAAA,EAAA,OACpB;AACL,WAAO,UAAU;AAAA,EAAA;AAGf,OAAA,+CAAe,eAAc,QAAW;AAC1C,WAAO,kBAAkB,cAAc;AAAA,EAAA;AAIzC,MAAI,SAAS;AACP,QAAA,QAAQ,SAAS,GAAG;AAEhB,YAAA,YAAY,QAAQ,CAAC;AAC3B,aAAO,SAAS,UAAU;AAC1B,aAAO,WAAW,UAAU;AAAA,IAAA,OACvB;AAEL,aAAO,SAAS;AAChB,aAAO,WAAW;AAAA,IAAA;AAAA,EACpB;AAGK,SAAA;AACT;;;"}
|