@ynput/ayon-frontend-shared 0.2.45 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +72 -65
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +104 -102
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +113 -4
- package/dist/Slicer.es.js.map +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +1 -1
- package/dist/_virtual/index.cjs11.js +1 -1
- package/dist/_virtual/index.cjs12.js +1 -1
- package/dist/_virtual/index.es10.js +3 -3
- package/dist/_virtual/index.es11.js +5 -5
- package/dist/_virtual/index.es12.js +5 -5
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +141 -139
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +61 -54
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js +5 -5
- package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js.map +1 -1
- package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js +313 -305
- package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +57 -50
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +45 -38
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +47 -40
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +49 -42
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +44 -37
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +48 -41
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +2 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +279 -0
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -0
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +48 -41
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +64 -57
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +54 -47
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +53 -46
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +52 -45
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +2 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +56 -49
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +53 -46
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +54 -47
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +70 -63
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +49 -42
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +68 -61
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +93 -86
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +47 -40
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +46 -43
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +49 -46
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +49 -46
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +49 -46
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +50 -42
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +55 -48
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +70 -63
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +47 -40
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +468 -448
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +96 -89
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +47 -40
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +57 -50
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +54 -47
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.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 +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +63 -68
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +49 -41
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +51 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +48 -41
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +55 -48
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +54 -47
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +51 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +51 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +51 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +54 -47
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +46 -39
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +46 -39
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +48 -41
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +62 -55
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js +11 -6
- package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +16 -13
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +342 -116
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +47 -40
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +69 -62
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +51 -44
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -33
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +118 -111
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +49 -46
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/components/Slicer.es.js +82 -0
- package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +27 -0
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +71 -0
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +10 -0
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +294 -0
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +215 -0
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +25 -0
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +28 -0
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +304 -0
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +2 -0
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +99 -0
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -0
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -0
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +95 -88
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +32 -31
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +125 -121
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +47 -49
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonContext.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +51 -44
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.es.js +7 -7
- package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js +69 -46
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.cjs.js +1 -1
- package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.es.js +4 -4
- package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +1 -1
- package/dist/types/api/queries/entityLists/getLists.d.ts +183 -183
- package/dist/types/api/queries/links/getLinks.d.ts +1 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +1 -1
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +2 -2
- package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +28 -0
- package/dist/types/components/RemotePage/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +31 -30
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -4
- package/dist/types/containers/ProjectTreeTable/utils/restrictedEntity.d.ts +3 -3
- package/dist/types/containers/Slicer/components/Slicer.d.ts +9 -0
- package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +7 -0
- package/dist/types/containers/Slicer/components/SlicerSearch.d.ts +6 -0
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +48 -0
- package/dist/types/containers/Slicer/hooks/index.d.ts +5 -0
- package/dist/types/containers/Slicer/{useFiltersWithHierarchy.d.ts → hooks/useFiltersWithHierarchy.d.ts} +1 -1
- package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +51 -0
- package/dist/types/containers/Slicer/hooks/useSlicerAttributesData.d.ts +7 -0
- package/dist/types/containers/Slicer/hooks/useTableDataBySlice.d.ts +8 -0
- package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +10 -0
- package/dist/types/containers/Slicer/index.d.ts +4 -2
- package/dist/types/containers/Slicer/types.d.ts +35 -0
- package/dist/types/containers/Slicer/{createFilterFromSlicer.d.ts → util/createFilterFromSlicer.d.ts} +2 -2
- package/dist/types/containers/Slicer/util/index.d.ts +1 -0
- package/dist/types/containers/Views/ViewsMenuContainer/BaseViewsTags.d.ts +4 -1
- package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +7 -1
- package/dist/types/containers/Views/index.d.ts +1 -1
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +1 -1
- package/dist/types/context/AddonContext.d.ts +10 -2
- package/dist/types/context/AddonProjectContext.d.ts +7 -12
- package/dist/types/hooks/useGroupByRemoteModules.d.ts +2 -1
- package/package.json +1 -1
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js.map +0 -1
- package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js.map +0 -1
- package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +0 -1
- package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +0 -1
- /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.cjs.js → hooks/useFiltersWithHierarchy.cjs.js} +0 -0
- /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.es.js → hooks/useFiltersWithHierarchy.es.js} +0 -0
- /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.cjs.js → util/createFilterFromSlicer.cjs.js} +0 -0
- /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.es.js → util/createFilterFromSlicer.es.js} +0 -0
|
@@ -91,24 +91,35 @@ import "../api/queries/views/updateViews.es.js";
|
|
|
91
91
|
import "../api/queries/watchers/getWatchers.es.js";
|
|
92
92
|
import "../api/queries/uris/getUris.es.js";
|
|
93
93
|
import "../components/AddonLoadingScreen/AddonLoadingScreen.es.js";
|
|
94
|
+
import "../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
|
|
94
95
|
import "@ynput/ayon-react-components";
|
|
96
|
+
import "../components/AccessSearchInput/AccessSearchInput.styled.es.js";
|
|
97
|
+
import "../components/AccessUser/AccessUser.es.js";
|
|
95
98
|
import "clsx";
|
|
96
|
-
import "../components/
|
|
97
|
-
import "
|
|
98
|
-
import "../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
99
|
+
import "../components/AttributeEditor/components/MinMaxField.es.js";
|
|
100
|
+
import "react-dom";
|
|
99
101
|
import "@dnd-kit/core";
|
|
100
102
|
import "@dnd-kit/sortable";
|
|
101
|
-
import "../components/
|
|
103
|
+
import "../components/EnumEditor/EnumEditor.styled.es.js";
|
|
104
|
+
import "../components/Badge/Badge.es.js";
|
|
105
|
+
import "../components/Chips/Chips.es.js";
|
|
106
|
+
import "../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
|
|
107
|
+
import "../components/DetailsPanelDetails/DetailsPanelDetails.es.js";
|
|
108
|
+
import "../components/DetailsPanelDetails/DetailsSection.es.js";
|
|
109
|
+
import "../components/DetailsPanelDetails/FieldLabel.es.js";
|
|
110
|
+
import "../components/EarlyPreview/EarlyPreview.es.js";
|
|
111
|
+
import "../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
|
|
112
|
+
import "../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
102
113
|
import "../containers/ContextMenu/ContextMenuContext.es.js";
|
|
103
114
|
/* empty css */
|
|
104
|
-
import "../
|
|
105
|
-
import "
|
|
115
|
+
import "../containers/Feed/context/FeedContext.es.js";
|
|
116
|
+
import "../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
|
|
117
|
+
import "../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
|
|
106
118
|
import "./RemoteModulesContext.es.js";
|
|
107
119
|
import "./DetailsPanelContext.es.js";
|
|
108
120
|
import "./ThumbnailUploaderContext.es.js";
|
|
109
121
|
import "./SettingsPanelContext.es.js";
|
|
110
122
|
import "./pip/PiPProvider.es.js";
|
|
111
|
-
import "react-dom";
|
|
112
123
|
import "./pip/PiPWrapper.es.js";
|
|
113
124
|
import "./AddonProjectContext.es.js";
|
|
114
125
|
import "./AddonContext.es.js";
|
|
@@ -119,14 +130,6 @@ import "./GlobalContext.es.js";
|
|
|
119
130
|
import "./ProjectContext.es.js";
|
|
120
131
|
import "./ProjectFoldersContext.es.js";
|
|
121
132
|
import "./UriContext.es.js";
|
|
122
|
-
import "../components/ReviewableCard/ReviewableCard.es.js";
|
|
123
|
-
import "../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
124
|
-
import "../components/FileThumbnail/FileThumbnail.es.js";
|
|
125
|
-
import "../components/Thumbnail/Thumbnail.styled.es.js";
|
|
126
|
-
import "../components/Thumbnail/StackedThumbnails.es.js";
|
|
127
|
-
import "../containers/Feed/context/FeedContext.es.js";
|
|
128
|
-
import "../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
|
|
129
|
-
import "../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
|
|
130
133
|
import "../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js";
|
|
131
134
|
import "../containers/Feed/components/FileUploadPreview/Mimes/TextMime.es.js";
|
|
132
135
|
import "react-markdown";
|
|
@@ -192,6 +195,13 @@ import "../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
|
|
|
192
195
|
import "../containers/ProjectTreeTable/components/HeaderActionButton.es.js";
|
|
193
196
|
import "../containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js";
|
|
194
197
|
import "../containers/EntityPickerDialog/EntityPickerDialog.es.js";
|
|
198
|
+
import "../containers/SimpleTable/SimpleTable.styled.es.js";
|
|
199
|
+
import "@tanstack/match-sorter-utils";
|
|
200
|
+
import "../containers/SimpleTable/context/SimpleTableContext.es.js";
|
|
201
|
+
import "../containers/SimpleTable/SimpleTableRowTemplate.es.js";
|
|
202
|
+
import "../containers/Slicer/hooks/useTableDataBySlice.es.js";
|
|
203
|
+
import "../containers/Slicer/components/SlicerSearch.es.js";
|
|
204
|
+
import "../containers/Slicer/context/SlicerContext.es.js";
|
|
195
205
|
import "../containers/DetailsPanel/DetailsPanel.styled.es.js";
|
|
196
206
|
import "../containers/DetailsPanel/FeedFilters/FeedFilters.styled.es.js";
|
|
197
207
|
import "../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
|
|
@@ -207,46 +217,43 @@ import "../containers/Views/Views.styled.es.js";
|
|
|
207
217
|
import "../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
208
218
|
import "../containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
209
219
|
import "../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
|
|
210
|
-
import "
|
|
220
|
+
import "axios";
|
|
221
|
+
import "../components/ReviewablesList/ReviewablesList.styled.es.js";
|
|
222
|
+
import "../components/ReviewablesList/ReviewablesUpload.styled.es.js";
|
|
211
223
|
import "../components/EntityPath/EntityPath.styled.es.js";
|
|
212
224
|
import "../components/EntityPath/SegmentProvider.es.js";
|
|
213
|
-
import "../components/
|
|
214
|
-
import "../components/
|
|
215
|
-
import "../components/
|
|
216
|
-
import "../components/
|
|
217
|
-
import "../components/
|
|
218
|
-
import "../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
225
|
+
import "../components/FeaturedVersionOrder/FeaturedVersionOrder.es.js";
|
|
226
|
+
import "../components/Feedback/FeedbackContext.es.js";
|
|
227
|
+
import "../components/Feedback/SupportBubble.es.js";
|
|
228
|
+
import "../components/FileThumbnail/FileThumbnail.es.js";
|
|
229
|
+
import "../components/LegacyBadge/LegacyBadge.es.js";
|
|
219
230
|
import "../components/Powerpack/PowerpackButton.es.js";
|
|
220
231
|
import "../components/Powerpack/PricingLink.es.js";
|
|
221
232
|
import "../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
222
233
|
import "../components/Powerpack/CTAButton.es.js";
|
|
223
234
|
import "../components/Powerpack/RequiredAddonVersion.es.js";
|
|
235
|
+
import "../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
224
236
|
import "../components/SizeSlider/SizeSlider.es.js";
|
|
237
|
+
import { RefreshToast as G } from "../components/RefreshToast/RefreshToast.es.js";
|
|
238
|
+
import "../components/ReviewableCard/ReviewableCard.es.js";
|
|
239
|
+
import "../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
240
|
+
import "../components/SearchFilter/filterDates.es.js";
|
|
225
241
|
import "../components/SettingsPanel/SettingsPanel.es.js";
|
|
226
242
|
import "../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
227
|
-
import "../components/AttributeEditor/components/MinMaxField.es.js";
|
|
228
|
-
import "../components/EnumEditor/EnumEditor.styled.es.js";
|
|
229
|
-
import "../components/SearchFilter/filterDates.es.js";
|
|
230
|
-
import "../components/FeaturedVersionOrder/FeaturedVersionOrder.es.js";
|
|
231
|
-
import "../components/Badge/Badge.es.js";
|
|
232
|
-
import "../components/VersionUploader/components/UploadVersionDialog.es.js";
|
|
233
|
-
import "../components/VersionUploader/context/VersionUploadContext.es.js";
|
|
234
|
-
import "../components/Feedback/FeedbackContext.es.js";
|
|
235
|
-
import "../components/Feedback/SupportBubble.es.js";
|
|
236
|
-
import "../components/Chips/Chips.es.js";
|
|
237
|
-
import "../components/StyledLink/StyledLink.es.js";
|
|
238
243
|
import "../components/ShareOptionIcon/ShareOptionIcon.es.js";
|
|
239
|
-
import "../components/
|
|
240
|
-
import "../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
|
|
241
|
-
import "../components/AccessSearchInput/AccessSearchInput.styled.es.js";
|
|
242
|
-
import { RefreshToast as G } from "../components/RefreshToast/RefreshToast.es.js";
|
|
243
|
-
import "../components/TableGridSwitch/TableGridSwitch.es.js";
|
|
244
|
+
import "../components/SimpleFormDialog/SimpleFormDialog.es.js";
|
|
244
245
|
import "../components/SortingSetting/SortingSetting.styled.es.js";
|
|
245
|
-
import "../components/
|
|
246
|
-
import "../components/
|
|
246
|
+
import "../components/StyledLink/StyledLink.es.js";
|
|
247
|
+
import "../components/TableGridSwitch/TableGridSwitch.es.js";
|
|
248
|
+
import "../components/Thumbnail/Thumbnail.styled.es.js";
|
|
249
|
+
import "../components/Thumbnail/StackedThumbnails.es.js";
|
|
250
|
+
import "../components/ThumbnailSimple/ThumbnailSimple.es.js";
|
|
251
|
+
import "../components/VersionUploader/components/UploadVersionDialog.es.js";
|
|
252
|
+
import "../components/VersionUploader/context/VersionUploadContext.es.js";
|
|
253
|
+
import "../components/Watchers/Watchers.es.js";
|
|
247
254
|
import "../components/Menu/Menu.styled.es.js";
|
|
248
255
|
import "../components/Menu/MenuItem.es.js";
|
|
249
|
-
const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${L}//${window.location.host}/ws`,
|
|
256
|
+
const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${L}//${window.location.host}/ws`, Wp = ({
|
|
250
257
|
children: i,
|
|
251
258
|
userName: k,
|
|
252
259
|
projectName: f,
|
|
@@ -314,7 +321,7 @@ const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${
|
|
|
314
321
|
children: i
|
|
315
322
|
}
|
|
316
323
|
);
|
|
317
|
-
},
|
|
324
|
+
}, $p = () => {
|
|
318
325
|
const i = J(C);
|
|
319
326
|
if (i === void 0)
|
|
320
327
|
throw new Error("useSocketContext must be used within a SocketProvider");
|
|
@@ -322,7 +329,7 @@ const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${
|
|
|
322
329
|
};
|
|
323
330
|
export {
|
|
324
331
|
C as SocketContext,
|
|
325
|
-
|
|
326
|
-
|
|
332
|
+
Wp as SocketProvider,
|
|
333
|
+
$p as useSocketContext
|
|
327
334
|
};
|
|
328
335
|
//# sourceMappingURL=WebsocketContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,IAAgBC,EAAgD,MAAS,GAEhFC,IAAQ,OAAO,SAAS,SAAS,QAAQ,QAAQ,IAAI,GACrDC,IAAY,GAAGD,CAAK,KAAK,OAAO,SAAS,IAAI,OAgBtCE,KAAiB,CAAC;AAAA,EAC7B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,MAA2B;AAEzB,QAAM,CAACC,GAAyBC,CAA0B,IAAIC,EAAS,EAAK,GACtE,CAACC,GAAQC,CAAS,IAAIF,EAAS,CAAA,CAAE,GACjC,CAACG,CAAO,IAAIC,EAAA,GAEZC,IAAS;AAAA,IACb,iBAAiB,MACX,CAACV,KAGD,CADgB,aAAa,QAAQ,aAAa,IAC7B,MAIzBQ,EAAQ,EAAE,MAAM,GAAA,CAAO,EAAE,OAAA,GAElB;AAAA,EACT,GAGI,EAAE,aAAAG,GAAa,YAAAC,GAAY,cAAAC,MAAiBC,EAAajB,GAAWa,CAAM,GAE1EK,IAAY,MAAM;AACtB,IAAAJ;AAAA,MACE,KAAK,UAAU;AAAA,QACb,OAAO;AAAA,QACP,OAAO,aAAa,QAAQ,aAAa;AAAA,QACzC,WAAWL;AAAA,QACX,SAASL;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EAEL;AAEA,EAAAe,EAAU,MAAM;AACd,YAAQ,MAAM,kBAAkBV,CAAM,GACtCS,EAAA;AAAA,EACF,GAAG,CAACT,GAAQL,CAAW,CAAC;AAExB,QAAMgB,IAAuBC,EAAS,CAACC,MAAc;AACnD,IAAIC,EAAQd,GAAQa,CAAS,MAC7B,QAAQ,IAAI,2BAA2B,GACvCZ,EAAUY,CAAS;AAAA,EACrB,GAAG,GAAG;AAEN,EAAAE,EAAO,yBAAyB,CAACF,MAAwBF,EAAqBE,CAAS,CAAC;AAExF,QAAM,CAACG,GAAYC,CAAa,IAAIlB,EAAS,EAAK,GAC5C,CAACmB,GAAYC,CAAa,IAAIpB,EAAS,EAAK;AAGlD,EAAAW,EAAU,OACJM,MACGE,MACHE,EAAM,QAAQC,gBAAAA,EAAAA,IAACC,GAAA,CAAA,CAAa,GAAI;AAAA,IAC9B,WAAW;AAAA,IACX,aAAa;AAAA,EAAA,CACd,GACDH,EAAc,EAAI,KAGf,MAAM;AACX,IAAAF,EAAc,EAAK;AAAA,EACrB,IACC,CAACD,GAAYC,CAAa,CAAC;AAK9B,QAAMM,IAAkBC,EAAO,EAAE,WAAW,GAAG,UAAU,KAAK,IAAA,GAAO,GAE/DC,IAAYC;AAAA,IAChB,CAACC,MAAiB;AAGhB,UAAIJ,EAAgB,QAAQ,YAAY;AACtC,eAAAN,EAAc,EAAI,GACX,QAAQ;AAAA,UACb;AAAA,QAA2B;AAI/B,UAAIW;AACJ,UAAI;AACF,QAAAA,IAAO,KAAK,MAAMD,EAAQ,IAAI;AAAA,MAChC,SAASE,GAAO;AACd,gBAAQ,MAAM,sCAAsCA,GAAOF,EAAQ,IAAI;AACvE;AAAA,MACF;AAEA,YAAM,EAAE,OAAAG,GAAO,QAAAC,GAAQ,SAAAC,EAAA,IAAYJ,KAAQ,CAAA;AAK3C,UAJIE,MAAU,gBAEVA,MAAU,8BAA4BhC,EAA2B,EAAI,GAErEiC,MAAW,OAAO;AACpB;AAGF,YAAME,IAAM,KAAK,IAAA;AACjB,MAAIA,IAAMV,EAAgB,QAAQ,WAAW,MAC3CA,EAAgB,QAAQ,aAAa,IAErCA,EAAgB,QAAQ,YAAY,GAGtCA,EAAgB,QAAQ,WAAWU,GAE/BH,MAAU,WAAWF,GAAM,SAAS,QAAMR,EAAM,KAAKY,EAAQ,IAAI,GAErE,QAAQ,IAAI,YAAYJ,CAAI,GAC5Bb,EAAO,QAAQe,GAAOF,CAAI;AAAA,IAC5B;AAAA,IACA,CAAC9B,CAA0B;AAAA,EAAA;AAG7B,SAAAY,EAAU,MAAM;AACd,IAAIJ,MAAe4B,EAAAA,WAAW,SACxBrC,MACFC,EAA2B,EAAK,GAEhCF,EAASuC,EAAI,KAAK,eAAe,IAGnC5B,EAAA,EAAe,YAAYkB,GAC3BhB,EAAA,GAKAM,EAAO,QAAQ,oBAAoB;AAAA,MACjC,OAAO;AAAA,IAAA,CACR;AAAA,EAEL,GAAG,CAACT,GAAYC,CAAY,CAAC,GAG3Bc,gBAAAA,EAAAA;AAAAA,IAACjC,EAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL,cAAAmB;AAAA,QACA,YAAAD;AAAA,QACA,yBAAAT;AAAA,MAAA;AAAA,MAGD,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP,GAEa2C,KAAmB,MAAM;AACpC,QAAMC,IAAUC,EAAWlD,CAAa;AACxC,MAAIiD,MAAY;AACd,UAAM,IAAI,MAAM,uDAAuD;AAEzE,SAAOA;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupByRemoteModules.cjs.js","sources":["../../../../src/hooks/useGroupByRemoteModules.ts"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { GroupSettingsFallback } from '../containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport { EntityGroup, QueryFilter } from '@shared/api'\nimport { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { usePowerpack } from '@shared/context'\n\ntype GetGroupQueriesParams = {\n groups: EntityGroup[]\n taskGroups?: EntityGroup[] // deprecated, but keep for backward compatibility\n filters: QueryFilter | undefined\n groupBy: TableGroupBy\n groupPageCounts: Record<string, number>\n}\n\ntype GetGroupQueriesReturn = {\n value: any\n count: number\n filter: string\n}[]\n\nexport type ProjectTableModulesType = {\n GroupSettings: typeof GroupSettingsFallback\n getGroupQueries?: (params: GetGroupQueriesParams) => GetGroupQueriesReturn\n requiredVersion?: string\n isLoading: boolean\n}\n\nconst getGroupQueriesFallback = (params: GetGroupQueriesParams): GetGroupQueriesReturn => []\n\nexport const useGroupByRemoteModules = (): ProjectTableModulesType => {\n const { powerLicense } = usePowerpack()\n\n const minVersion = '1.1.1-dev'\n const [GroupSettings, { outdated, isLoading: isLoadingSettings }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'GroupSettings',\n fallback: GroupSettingsFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const [getGroupQueries, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'getGroupQueries',\n fallback: getGroupQueriesFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const isLoading = isLoadingSettings || isLoadingQueries\n\n return {\n GroupSettings,\n getGroupQueries,\n requiredVersion: outdated?.required,\n isLoading: isLoading,\n }\n}\n"],"names":["getGroupQueriesFallback","params","useGroupByRemoteModules","powerLicense","usePowerpack","minVersion","GroupSettings","outdated","isLoadingSettings","useLoadModule","GroupSettingsFallback","getGroupQueries","isLoadingQueries","isLoading"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGroupByRemoteModules.cjs.js","sources":["../../../../src/hooks/useGroupByRemoteModules.ts"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { GroupSettingsFallback } from '../containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport { EntityGroup, QueryFilter } from '@shared/api'\nimport { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { usePowerpack } from '@shared/context'\nimport { Filter } from '@ynput/ayon-react-components'\n\ntype GetGroupQueriesParams = {\n groups: EntityGroup[]\n taskGroups?: EntityGroup[] // deprecated, but keep for backward compatibility\n filters: QueryFilter | Filter[] | undefined\n groupBy: TableGroupBy\n groupPageCounts: Record<string, number>\n}\n\ntype GetGroupQueriesReturn = {\n value: any\n count: number\n filter: string\n}[]\n\nexport type ProjectTableModulesType = {\n GroupSettings: typeof GroupSettingsFallback\n getGroupQueries?: (params: GetGroupQueriesParams) => GetGroupQueriesReturn\n requiredVersion?: string\n isLoading: boolean\n}\n\nconst getGroupQueriesFallback = (params: GetGroupQueriesParams): GetGroupQueriesReturn => []\n\nexport const useGroupByRemoteModules = (): ProjectTableModulesType => {\n const { powerLicense } = usePowerpack()\n\n const minVersion = '1.1.1-dev'\n const [GroupSettings, { outdated, isLoading: isLoadingSettings }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'GroupSettings',\n fallback: GroupSettingsFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const [getGroupQueries, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'getGroupQueries',\n fallback: getGroupQueriesFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const isLoading = isLoadingSettings || isLoadingQueries\n\n return {\n GroupSettings,\n getGroupQueries,\n requiredVersion: outdated?.required,\n isLoading: isLoading,\n }\n}\n"],"names":["getGroupQueriesFallback","params","useGroupByRemoteModules","powerLicense","usePowerpack","minVersion","GroupSettings","outdated","isLoadingSettings","useLoadModule","GroupSettingsFallback","getGroupQueries","isLoadingQueries","isLoading"],"mappings":"uyKA4BMA,EAA2BC,GAAyD,CAAA,EAE7EC,EAA0B,IAA+B,CACpE,KAAM,CAAE,aAAAC,CAAA,EAAiBC,eAAA,EAEnBC,EAAa,YACb,CAACC,EAAe,CAAE,SAAAC,EAAU,UAAWC,CAAA,CAAmB,EAAIC,gBAAc,CAChF,MAAO,YACP,OAAQ,SACR,OAAQ,gBACR,SAAUC,EAAAA,sBACV,WAAAL,EACA,KAAM,CAACF,CAAA,CACR,EAEK,CAACQ,EAAiB,CAAE,UAAWC,CAAA,CAAkB,EAAIH,EAAAA,cAAc,CACvE,MAAO,YACP,OAAQ,SACR,OAAQ,kBACR,SAAUT,EACV,WAAAK,EACA,KAAM,CAACF,CAAA,CACR,EAEKU,EAAYL,GAAqBI,EAEvC,MAAO,CACL,cAAAN,EACA,gBAAAK,EACA,gBAAiBJ,GAAU,SAC3B,UAAAM,CAAA,CAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupByRemoteModules.es.js","sources":["../../../../src/hooks/useGroupByRemoteModules.ts"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { GroupSettingsFallback } from '../containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport { EntityGroup, QueryFilter } from '@shared/api'\nimport { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { usePowerpack } from '@shared/context'\n\ntype GetGroupQueriesParams = {\n groups: EntityGroup[]\n taskGroups?: EntityGroup[] // deprecated, but keep for backward compatibility\n filters: QueryFilter | undefined\n groupBy: TableGroupBy\n groupPageCounts: Record<string, number>\n}\n\ntype GetGroupQueriesReturn = {\n value: any\n count: number\n filter: string\n}[]\n\nexport type ProjectTableModulesType = {\n GroupSettings: typeof GroupSettingsFallback\n getGroupQueries?: (params: GetGroupQueriesParams) => GetGroupQueriesReturn\n requiredVersion?: string\n isLoading: boolean\n}\n\nconst getGroupQueriesFallback = (params: GetGroupQueriesParams): GetGroupQueriesReturn => []\n\nexport const useGroupByRemoteModules = (): ProjectTableModulesType => {\n const { powerLicense } = usePowerpack()\n\n const minVersion = '1.1.1-dev'\n const [GroupSettings, { outdated, isLoading: isLoadingSettings }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'GroupSettings',\n fallback: GroupSettingsFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const [getGroupQueries, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'getGroupQueries',\n fallback: getGroupQueriesFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const isLoading = isLoadingSettings || isLoadingQueries\n\n return {\n GroupSettings,\n getGroupQueries,\n requiredVersion: outdated?.required,\n isLoading: isLoading,\n }\n}\n"],"names":["getGroupQueriesFallback","params","useGroupByRemoteModules","powerLicense","usePowerpack","minVersion","GroupSettings","outdated","isLoadingSettings","useLoadModule","GroupSettingsFallback","getGroupQueries","isLoadingQueries","isLoading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useGroupByRemoteModules.es.js","sources":["../../../../src/hooks/useGroupByRemoteModules.ts"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { GroupSettingsFallback } from '../containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport { EntityGroup, QueryFilter } from '@shared/api'\nimport { TableGroupBy } from '../containers/ProjectTreeTable/context'\nimport { usePowerpack } from '@shared/context'\nimport { Filter } from '@ynput/ayon-react-components'\n\ntype GetGroupQueriesParams = {\n groups: EntityGroup[]\n taskGroups?: EntityGroup[] // deprecated, but keep for backward compatibility\n filters: QueryFilter | Filter[] | undefined\n groupBy: TableGroupBy\n groupPageCounts: Record<string, number>\n}\n\ntype GetGroupQueriesReturn = {\n value: any\n count: number\n filter: string\n}[]\n\nexport type ProjectTableModulesType = {\n GroupSettings: typeof GroupSettingsFallback\n getGroupQueries?: (params: GetGroupQueriesParams) => GetGroupQueriesReturn\n requiredVersion?: string\n isLoading: boolean\n}\n\nconst getGroupQueriesFallback = (params: GetGroupQueriesParams): GetGroupQueriesReturn => []\n\nexport const useGroupByRemoteModules = (): ProjectTableModulesType => {\n const { powerLicense } = usePowerpack()\n\n const minVersion = '1.1.1-dev'\n const [GroupSettings, { outdated, isLoading: isLoadingSettings }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'GroupSettings',\n fallback: GroupSettingsFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const [getGroupQueries, { isLoading: isLoadingQueries }] = useLoadModule({\n addon: 'powerpack',\n remote: 'slicer',\n module: 'getGroupQueries',\n fallback: getGroupQueriesFallback,\n minVersion: minVersion,\n skip: !powerLicense, // skip loading if powerpack license is not available\n })\n\n const isLoading = isLoadingSettings || isLoadingQueries\n\n return {\n GroupSettings,\n getGroupQueries,\n requiredVersion: outdated?.required,\n isLoading: isLoading,\n }\n}\n"],"names":["getGroupQueriesFallback","params","useGroupByRemoteModules","powerLicense","usePowerpack","minVersion","GroupSettings","outdated","isLoadingSettings","useLoadModule","GroupSettingsFallback","getGroupQueries","isLoadingQueries","isLoading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAMA,IAA0B,CAACC,MAAyD,CAAA,GAE7EC,KAA0B,MAA+B;AACpE,QAAM,EAAE,cAAAC,EAAA,IAAiBC,EAAA,GAEnBC,IAAa,aACb,CAACC,GAAe,EAAE,UAAAC,GAAU,WAAWC,EAAA,CAAmB,IAAIC,EAAc;AAAA,IAChF,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAUC;AAAA,IACV,YAAAL;AAAA,IACA,MAAM,CAACF;AAAA;AAAA,EAAA,CACR,GAEK,CAACQ,GAAiB,EAAE,WAAWC,EAAA,CAAkB,IAAIH,EAAc;AAAA,IACvE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAUT;AAAA,IACV,YAAAK;AAAA,IACA,MAAM,CAACF;AAAA;AAAA,EAAA,CACR,GAEKU,IAAYL,KAAqBI;AAEvC,SAAO;AAAA,IACL,eAAAN;AAAA,IACA,iBAAAK;AAAA,IACA,iBAAiBJ,GAAU;AAAA,IAC3B,WAAAM;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("../../../_virtual/runtime.cjs.js"),c=require("react"),b=require("../../../_virtual/semver.cjs.js"),q=(i,m,l)=>{const g=c.useRef(new Set),[y
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("../../../_virtual/runtime.cjs.js"),c=require("react"),b=require("../../../_virtual/semver.cjs.js"),q=(i,m,l)=>{const g=c.useRef(new Set),[L,y]=c.useState(()=>R(i)),[E,f]=c.useState(m.length>0&&!l);c.useEffect(()=>{l||(g.current=new Set,y(R(i)))},[JSON.stringify(i),l]);const M=async(t,r,s,o,n)=>{try{const e=await O.runtimeExports.loadRemote(`${t}/${r}`,{from:"runtime"});v(s,t,r,e?.default||o,n)}catch(e){throw console.error("Error loading remote module",t,r,e),e}};c.useEffect(()=>{if(l){f(!1);return}console.log("loading modules");const t=[];if(i.forEach((r,s)=>{const{addon:o,remote:n,module:e,fallback:a,minVersion:u}=r;if(!o||!n||!e)return;const d=`${o}/${n}/${e}`;if(g.current.has(d))return;if(L[s]?.[1]?.isLoaded){g.current.add(d);return}g.current.add(d);const h=m.find(w=>w.addonName===o);if(!h){console.log("Addon not found",{addon:o,remote:n,module:e});return}if(u&&!b.gte(h.addonVersion,u)){$(s,o,n,e,a,u,h.addonVersion);return}if(!h.modules[n]){console.log("Module not found",{addon:o,remote:n,module:e});return}t.push(M(n,e,o,a,u))}),!t.length){f(!1);return}f(!0),Promise.all(t).then(()=>{f(!1)}).catch(r=>{console.error("Error loading modules",r),f(!1)})},[l,m,JSON.stringify(i),L]);function R(t){return t.map(({addon:r="",remote:s="",module:o="",fallback:n,minVersion:e})=>[n,{isLoaded:!1,addon:r,remote:s,module:o,minVersion:e,outdated:void 0}])}function $(t,r,s,o,n,e,a){y(u=>{const d=[...u];return t>=0&&t<d.length&&(d[t]=[n,{isLoaded:!1,addon:r,remote:s,module:o,minVersion:e,outdated:{current:a,required:e}}]),d})}function v(t,r,s,o,n){y(e=>{const a=[...e],u=i.findIndex(d=>d.addon===t&&d.remote===r&&d.module===s);return u>=0&&u<a.length&&(a[u]=[o,{isLoaded:!0,addon:t,remote:r,module:s,minVersion:n,outdated:void 0}]),a})}return{modules:L,isLoading:E}};exports.useLoadModules=q;
|
|
2
2
|
//# sourceMappingURL=useLoadModules.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs)])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"oMA6BaA,EAAiB,CAC5BC,EACAC,EACAC,IAC+D,CAE/D,MAAMC,EAAmBC,EAAAA,OAAoB,IAAI,GAAK,EAGhD,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAoC,IAChEC,EAAkBR,CAAW,CAAA,EAEzB,CAACS,EAAWC,CAAY,EAAIH,EAAAA,SAASN,EAAQ,OAAS,GAAK,CAACC,CAAI,EAGtES,EAAAA,UAAU,IAAM,CACVT,IAEJC,EAAiB,YAAc,IAG/BG,EAAWE,EAAkBR,CAAW,CAAC,EAC3C,EAAG,CAAC,KAAK,UAAUA,CAAW,EAAGE,CAAI,CAAC,EAEtC,MAAMU,EAAa,MACjBC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,GAAI,CACF,MAAMC,EAAS,MAAMC,4BAAmC,GAAGN,CAAM,IAAIC,CAAM,GAAI,CAC7E,KAAM,SAAA,CACP,EACDM,EAAuBL,EAAOF,EAAQC,EAAQI,GAAQ,SAAWF,EAAUC,CAAU,CACvF,OAASI,EAAO,CACd,cAAQ,MAAM,8BAA+BR,EAAQC,EAAQO,CAAK,EAC5DA,CACR,CACF,EAGAV,EAAAA,UAAU,IAAM,CACd,GAAIT,EAAM,CACRQ,EAAa,EAAK,EAClB,MACF,CAEA,QAAQ,IAAI,iBAAiB,EAE7B,MAAMY,EAA4B,CAAA,EAoDlC,GAnDAtB,EAAY,QAAQ,CAACuB,EAAMC,IAAU,CACnC,KAAM,CAAE,MAAAT,EAAO,OAAAF,EAAQ,OAAAC,EAAQ,SAAAE,EAAU,WAAAC,GAAeM,EAExD,GAAI,CAACR,GAAS,CAACF,GAAU,CAACC,EAAQ,OAGlC,MAAMW,EAAY,GAAGV,CAAK,IAAIF,CAAM,IAAIC,CAAM,GAG9C,GAAIX,EAAiB,QAAQ,IAAIsB,CAAS,EAAG,OAG7C,GAAIpB,EAAQmB,CAAK,IAAI,CAAC,GAAG,SAAU,CACjCrB,EAAiB,QAAQ,IAAIsB,CAAS,EACtC,MACF,CAGAtB,EAAiB,QAAQ,IAAIsB,CAAS,EAEtC,MAAMC,EAAYzB,EAAQ,KAAM0B,GAAMA,EAAE,YAAcZ,CAAK,EAG3D,GAAI,CAACW,EAAW,CACd,QAAQ,IAAI,kBAAmB,CAAE,MAAAX,EAAO,OAAAF,EAAQ,OAAAC,EAAQ,EACxD,MACF,CAGA,GAAIG,GAAc,CAACW,EAAO,IAAIF,EAAU,aAAcT,CAAU,EAAG,CACjEY,EACEL,EACAT,EACAF,EACAC,EACAE,EACAC,EACAS,EAAU,YAAA,EAEZ,MACF,CAGA,GAAI,CAACA,EAAU,QAAQb,CAAM,EAAG,CAC9B,QAAQ,IAAI,mBAAoB,CAAE,MAAAE,EAAO,OAAAF,EAAQ,OAAAC,EAAQ,EACzD,MACF,CAEAQ,EAAS,KAAKV,EAAWC,EAAQC,EAAQC,EAAOC,EAAUC,CAAU,CAAC,CACvE,CAAC,EAEG,CAACK,EAAS,OAAQ,CACpBZ,EAAa,EAAK,EAClB,MACF,CAGAA,EAAa,EAAI,EACjB,QAAQ,IAAIY,CAAQ,EACjB,KAAK,IAAM,CAEVZ,EAAa,EAAK,CACpB,CAAC,EACA,MAAOW,GAAU,CAChB,QAAQ,MAAM,wBAAyBA,CAAK,EAC5CX,EAAa,EAAK,CACpB,CAAC,CACL,EAAG,CAACR,EAAMD,EAAS,KAAK,UAAUD,CAAW,
|
|
1
|
+
{"version":3,"file":"useLoadModules.cjs.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import { r as N } from "../../../_virtual/runtime.es.js";
|
|
|
2
2
|
import { useRef as O, useState as y, useEffect as E } from "react";
|
|
3
3
|
import V from "../../../_virtual/semver.es.js";
|
|
4
4
|
const b = (i, m, f) => {
|
|
5
|
-
const c = O(/* @__PURE__ */ new Set()), [
|
|
5
|
+
const c = O(/* @__PURE__ */ new Set()), [h, L] = y(
|
|
6
6
|
() => R(i)
|
|
7
7
|
), [$, l] = y(m.length > 0 && !f);
|
|
8
8
|
E(() => {
|
|
9
|
-
f || (c.current = /* @__PURE__ */ new Set(),
|
|
9
|
+
f || (c.current = /* @__PURE__ */ new Set(), L(R(i)));
|
|
10
10
|
}, [JSON.stringify(i), f]);
|
|
11
11
|
const w = async (e, n, d, o, r) => {
|
|
12
12
|
try {
|
|
@@ -30,7 +30,7 @@ const b = (i, m, f) => {
|
|
|
30
30
|
if (!o || !r || !t) return;
|
|
31
31
|
const s = `${o}/${r}/${t}`;
|
|
32
32
|
if (c.current.has(s)) return;
|
|
33
|
-
if (
|
|
33
|
+
if (h[d]?.[1]?.isLoaded) {
|
|
34
34
|
c.current.add(s);
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
@@ -66,7 +66,7 @@ const b = (i, m, f) => {
|
|
|
66
66
|
}).catch((n) => {
|
|
67
67
|
console.error("Error loading modules", n), l(!1);
|
|
68
68
|
});
|
|
69
|
-
}, [f, m, JSON.stringify(i)]);
|
|
69
|
+
}, [f, m, JSON.stringify(i), h]);
|
|
70
70
|
function R(e) {
|
|
71
71
|
return e.map(
|
|
72
72
|
({ addon: n = "", remote: d = "", module: o = "", fallback: r, minVersion: t }) => [
|
|
@@ -83,7 +83,7 @@ const b = (i, m, f) => {
|
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
function M(e, n, d, o, r, t, u) {
|
|
86
|
-
|
|
86
|
+
L((a) => {
|
|
87
87
|
const s = [...a];
|
|
88
88
|
return e >= 0 && e < s.length && (s[e] = [
|
|
89
89
|
r,
|
|
@@ -102,7 +102,7 @@ const b = (i, m, f) => {
|
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
function v(e, n, d, o, r) {
|
|
105
|
-
|
|
105
|
+
L((t) => {
|
|
106
106
|
const u = [...t], a = i.findIndex(
|
|
107
107
|
(s) => s.addon === e && s.remote === n && s.module === d
|
|
108
108
|
);
|
|
@@ -119,7 +119,7 @@ const b = (i, m, f) => {
|
|
|
119
119
|
]), u;
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
|
-
return { modules:
|
|
122
|
+
return { modules: h, isLoading: $ };
|
|
123
123
|
};
|
|
124
124
|
export {
|
|
125
125
|
b as useLoadModules
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs)])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":";;;AA6BO,MAAMA,IAAiB,CAC5BC,GACAC,GACAC,MAC+D;AAE/D,QAAMC,IAAmBC,EAAoB,oBAAI,KAAK,GAGhD,CAACC,GAASC,CAAU,IAAIC;AAAA,IAAoC,MAChEC,EAAkBR,CAAW;AAAA,EAAA,GAEzB,CAACS,GAAWC,CAAY,IAAIH,EAASN,EAAQ,SAAS,KAAK,CAACC,CAAI;AAGtE,EAAAS,EAAU,MAAM;AACd,IAAIT,MAEJC,EAAiB,8BAAc,IAAA,GAG/BG,EAAWE,EAAkBR,CAAW,CAAC;AAAA,EAC3C,GAAG,CAAC,KAAK,UAAUA,CAAW,GAAGE,CAAI,CAAC;AAEtC,QAAMU,IAAa,OACjBC,GACAC,GACAC,GACAC,GACAC,MACG;AACH,QAAI;AACF,YAAMC,IAAS,MAAMC,aAAmC,GAAGN,CAAM,IAAIC,CAAM,IAAI;AAAA,QAC7E,MAAM;AAAA,MAAA,CACP;AACD,MAAAM,EAAuBL,GAAOF,GAAQC,GAAQI,GAAQ,WAAWF,GAAUC,CAAU;AAAA,IACvF,SAASI,GAAO;AACd,oBAAQ,MAAM,+BAA+BR,GAAQC,GAAQO,CAAK,GAC5DA;AAAA,IACR;AAAA,EACF;AAGA,EAAAV,EAAU,MAAM;AACd,QAAIT,GAAM;AACR,MAAAQ,EAAa,EAAK;AAClB;AAAA,IACF;AAEA,YAAQ,IAAI,iBAAiB;AAE7B,UAAMY,IAA4B,CAAA;AAoDlC,QAnDAtB,EAAY,QAAQ,CAACuB,GAAMC,MAAU;AACnC,YAAM,EAAE,OAAAT,GAAO,QAAAF,GAAQ,QAAAC,GAAQ,UAAAE,GAAU,YAAAC,MAAeM;AAExD,UAAI,CAACR,KAAS,CAACF,KAAU,CAACC,EAAQ;AAGlC,YAAMW,IAAY,GAAGV,CAAK,IAAIF,CAAM,IAAIC,CAAM;AAG9C,UAAIX,EAAiB,QAAQ,IAAIsB,CAAS,EAAG;AAG7C,UAAIpB,EAAQmB,CAAK,IAAI,CAAC,GAAG,UAAU;AACjC,QAAArB,EAAiB,QAAQ,IAAIsB,CAAS;AACtC;AAAA,MACF;AAGA,MAAAtB,EAAiB,QAAQ,IAAIsB,CAAS;AAEtC,YAAMC,IAAYzB,EAAQ,KAAK,CAAC0B,MAAMA,EAAE,cAAcZ,CAAK;AAG3D,UAAI,CAACW,GAAW;AACd,gBAAQ,IAAI,mBAAmB,EAAE,OAAAX,GAAO,QAAAF,GAAQ,QAAAC,GAAQ;AACxD;AAAA,MACF;AAGA,UAAIG,KAAc,CAACW,EAAO,IAAIF,EAAU,cAAcT,CAAU,GAAG;AACjE,QAAAY;AAAA,UACEL;AAAA,UACAT;AAAA,UACAF;AAAA,UACAC;AAAA,UACAE;AAAA,UACAC;AAAA,UACAS,EAAU;AAAA,QAAA;AAEZ;AAAA,MACF;AAGA,UAAI,CAACA,EAAU,QAAQb,CAAM,GAAG;AAC9B,gBAAQ,IAAI,oBAAoB,EAAE,OAAAE,GAAO,QAAAF,GAAQ,QAAAC,GAAQ;AACzD;AAAA,MACF;AAEA,MAAAQ,EAAS,KAAKV,EAAWC,GAAQC,GAAQC,GAAOC,GAAUC,CAAU,CAAC;AAAA,IACvE,CAAC,GAEG,CAACK,EAAS,QAAQ;AACpB,MAAAZ,EAAa,EAAK;AAClB;AAAA,IACF;AAGA,IAAAA,EAAa,EAAI,GACjB,QAAQ,IAAIY,CAAQ,EACjB,KAAK,MAAM;AAEV,MAAAZ,EAAa,EAAK;AAAA,IACpB,CAAC,EACA,MAAM,CAACW,MAAU;AAChB,cAAQ,MAAM,yBAAyBA,CAAK,GAC5CX,EAAa,EAAK;AAAA,IACpB,CAAC;AAAA,EACL,GAAG,CAACR,GAAMD,GAAS,KAAK,UAAUD,CAAW,
|
|
1
|
+
{"version":3,"file":"useLoadModules.es.js","sources":["../../../../src/hooks/useLoadModules.ts"],"sourcesContent":["import { loadRemote } from '@module-federation/enhanced/runtime'\nimport { useEffect, useRef, useState } from 'react'\nimport semver from 'semver'\nimport { FrontendModuleListItem } from '@shared/api'\n\nexport interface ModuleSpec<T> {\n addon: string\n remote: string\n module: string\n fallback?: T\n debug?: boolean\n minVersion?: string\n}\n\ntype ModuleResult<T> = [\n T,\n {\n isLoaded: boolean\n addon: string\n remote: string\n module: string\n minVersion?: string\n outdated?: {\n current: string\n required: string\n }\n },\n]\n\nexport const useLoadModules = <T extends any[]>(\n moduleSpecs: ModuleSpec<T[number]>[],\n modules: FrontendModuleListItem[],\n skip: boolean,\n): { modules: ModuleResult<T[number]>[]; isLoading: boolean } => {\n // Use a ref to track which modules have been processed\n const processedModules = useRef<Set<string>>(new Set())\n\n // Initialize results state\n const [results, setResults] = useState<ModuleResult<T[number]>[]>(() =>\n initializeResults(moduleSpecs),\n )\n const [isLoading, setIsLoading] = useState(modules.length > 0 && !skip)\n\n // Reset and reinitialize when moduleSpecs change\n useEffect(() => {\n if (skip) return\n // Reset the processed modules tracker\n processedModules.current = new Set()\n\n // Initialize results with proper structure\n setResults(initializeResults(moduleSpecs))\n }, [JSON.stringify(moduleSpecs), skip])\n\n const loadModule = async (\n remote: string,\n module: string,\n addon: string,\n fallback: T[number] | undefined,\n minVersion?: string,\n ) => {\n try {\n const result = await loadRemote<{ default: T[number] }>(`${remote}/${module}`, {\n from: 'runtime',\n })\n updateResultWithLoaded(addon, remote, module, result?.default || fallback, minVersion)\n } catch (error) {\n console.error('Error loading remote module', remote, module, error)\n throw error\n }\n }\n\n // Load modules when remotes are initialized\n useEffect(() => {\n if (skip) {\n setIsLoading(false)\n return\n }\n\n console.log('loading modules')\n\n const promises: Promise<void>[] = []\n moduleSpecs.forEach((spec, index) => {\n const { addon, remote, module, fallback, minVersion } = spec\n\n if (!addon || !remote || !module) return\n\n // Create a unique key for this module\n const moduleKey = `${addon}/${remote}/${module}`\n\n // Skip if already processed\n if (processedModules.current.has(moduleKey)) return\n\n // Check if this module is already loaded in our results\n if (results[index]?.[1]?.isLoaded) {\n processedModules.current.add(moduleKey)\n return\n }\n\n // Mark as processed\n processedModules.current.add(moduleKey)\n\n const addonInfo = modules.find((m) => m.addonName === addon)\n\n // Handle missing addon\n if (!addonInfo) {\n console.log('Addon not found', { addon, remote, module })\n return\n }\n\n // Check version requirements\n if (minVersion && !semver.gte(addonInfo.addonVersion, minVersion)) {\n updateResultWithOutdated(\n index,\n addon,\n remote,\n module,\n fallback,\n minVersion,\n addonInfo.addonVersion,\n )\n return\n }\n\n // Check if module exists\n if (!addonInfo.modules[remote]) {\n console.log('Module not found', { addon, remote, module })\n return\n }\n\n promises.push(loadModule(remote, module, addon, fallback, minVersion))\n })\n\n if (!promises.length) {\n setIsLoading(false)\n return\n }\n\n // Wait for all promises to resolve\n setIsLoading(true)\n Promise.all(promises)\n .then(() => {\n // all modules loaded\n setIsLoading(false)\n })\n .catch((error) => {\n console.error('Error loading modules', error)\n setIsLoading(false)\n })\n }, [skip, modules, JSON.stringify(moduleSpecs), results])\n\n // Helper function to initialize results\n function initializeResults(specs: ModuleSpec<T[number]>[]): ModuleResult<T[number]>[] {\n return specs.map(\n ({ addon = '', remote = '', module = '', fallback, minVersion }): ModuleResult<T[number]> => [\n fallback as T[number],\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ],\n )\n }\n\n // Helper to update a result with outdated status\n function updateResultWithOutdated(\n index: number,\n addon: string,\n remote: string,\n module: string,\n fallback: T[number] | undefined,\n requiredVersion: string,\n currentVersion: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n fallback,\n {\n isLoaded: false,\n addon,\n remote,\n module,\n minVersion: requiredVersion,\n outdated: {\n current: currentVersion,\n required: requiredVersion,\n },\n },\n ]\n }\n return updated\n })\n }\n\n // Helper to update a result when module is loaded\n function updateResultWithLoaded(\n addon: string,\n remote: string,\n module: string,\n loadedModule: T[number] | undefined,\n minVersion?: string,\n ) {\n setResults((prev) => {\n const updated = [...prev]\n // Find the corresponding module spec\n const index = moduleSpecs.findIndex(\n (spec) => spec.addon === addon && spec.remote === remote && spec.module === module,\n )\n\n if (index >= 0 && index < updated.length) {\n updated[index] = [\n loadedModule,\n {\n isLoaded: true,\n addon,\n remote,\n module,\n minVersion,\n outdated: undefined,\n },\n ]\n }\n return updated\n })\n }\n\n return { modules: results, isLoading }\n}\n"],"names":["useLoadModules","moduleSpecs","modules","skip","processedModules","useRef","results","setResults","useState","initializeResults","isLoading","setIsLoading","useEffect","loadModule","remote","module","addon","fallback","minVersion","result","loadRemote","updateResultWithLoaded","error","promises","spec","index","moduleKey","addonInfo","m","semver","updateResultWithOutdated","specs","requiredVersion","currentVersion","prev","updated","loadedModule"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function v(n){const{columns:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function v(n){const{columns:e=[],groupBy:i,showEmptyGroups:s,sortBy:o,sortDesc:t,rowHeight:d}=n||{},f={},a={left:[],right:[]},g=[],h={};e.forEach(r=>{const{name:l,visible:m,pinned:C,width:p}=r;f[l]=m!==!1,g.push(l),C&&a.left?.push(l),p!==void 0&&(h[l]=p)});const y=o?[{id:o,desc:t||!1}]:[];let u;if(typeof i=="string"&&i.length>0)u={id:i,desc:!1};else if(Array.isArray(i)){const r=i.find(l=>typeof l=="string"&&l.length>0);r?u={id:r,desc:!1}:u=void 0}else u=void 0;return{columnVisibility:f,columnPinning:a,columnOrder:g,columnSizing:h,sorting:y,groupBy:u,groupByConfig:{showEmpty:s||!1,entityType:""},rowHeight:d??34}}function w(n,e,i){const s=[...n],o=e.filter(t=>!n.includes(t)&&i.has(t));return[...s,...o]}function B(n,e,i,s){const o=new Set;return Object.keys(n).forEach(t=>o.add(t)),Object.keys(e).forEach(t=>o.add(t)),i.left?.forEach(t=>o.add(t)),i.right?.forEach(t=>o.add(t)),s?.forEach(t=>o.add(t)),o}function S(n,e,i,s){const o={name:n};e.hasOwnProperty(n)&&(o.visible=e[n]);const t=i.left?.includes(n),d=i.right?.includes(n);return(t||d)&&(o.pinned=!0),s[n]!==void 0&&(o.width=s[n]),o}function E(n,e){const{columnVisibility:i,columnPinning:s,columnOrder:o,columnSizing:t,sorting:d,groupBy:f,groupByConfig:a,rowHeight:g}=n,h=B(i,t,s,e||[]),c={columns:w(o,e||[],h).map(r=>S(r,i,s,t))};if(f){const r=Array.isArray(f.id)?f.id[0]:f.id;c.groupBy=r||void 0}else c.groupBy=void 0;if(a?.showEmpty!==void 0&&(c.showEmptyGroups=a.showEmpty),d)if(d.length>0){const r=d[0];c.sortBy=r.id,c.sortDesc=r.desc}else c.sortBy=void 0,c.sortDesc=void 0;return g!==void 0&&(c.rowHeight=g),c}exports.convertColumnConfigToTanstackStates=v;exports.convertTanstackStatesToColumnConfig=E;
|
|
2
2
|
//# sourceMappingURL=columnConfigConverter.cjs.js.map
|
|
@@ -1 +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, rowHeight } = 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 rowHeight: rowHeight ?? 34,\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 rowHeight,\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 // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","sorting","groupBy","groupByConfig","result","firstSort"],"mappings":"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"}
|
|
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 {\n columns = [],\n groupBy: groupByField,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = 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 let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\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 rowHeight,\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 const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\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 // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
|