@anzusystems/common-admin 2.0.0-rc.5 → 2.0.0-rc.7
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/README.md +4 -0
- package/dist/AnzuSystemsCommonAdmin.d.ts +42 -32
- package/dist/AnzuSystemsCommonAdmin.js.map +1 -1
- package/dist/common-admin.css +1 -1
- package/dist/common-admin.js +282 -282
- package/dist/domains/anzuUser/api/anzuUserApi.d.ts +9 -12
- package/dist/domains/anzuUser/api/anzuUserApi.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserDatatable.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue.d.ts +38 -44
- package/dist/domains/anzuUser/components/AAnzuUserDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserFilter.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserFilter.vue.d.ts +12 -13
- package/dist/domains/anzuUser/components/AAnzuUserFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserForm.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserForm.vue.d.ts +18 -20
- package/dist/domains/anzuUser/components/AAnzuUserForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.js.map +1 -1
- package/dist/domains/anzuUser/components/AAnzuUserRoleAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserBulkActionDialog.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserBulkActionDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue.d.ts +2 -3
- package/dist/domains/anzuUser/components/AUserCopyPermissionsDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserCreateInSystemButton.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue.d.ts +9 -15
- package/dist/domains/anzuUser/components/AUserCreateInSystemButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserEnabledSwitch.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue.d.ts +8 -7
- package/dist/domains/anzuUser/components/AUserEnabledSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserManageButton.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserManageButton.vue.d.ts +0 -1
- package/dist/domains/anzuUser/components/AUserManageButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserMetadataForm.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserMetadataForm.vue.d.ts +8 -9
- package/dist/domains/anzuUser/components/AUserMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserMetadataRepairDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserOtherSystemsTable.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue.d.ts +1 -2
- package/dist/domains/anzuUser/components/AUserOtherSystemsTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemOverview.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemOverview.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemPanel.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemPanel.vue.d.ts +2 -2
- package/dist/domains/anzuUser/components/AUserSystemPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemStatusChip.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserSystemStatusChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserTabsShell.js.map +1 -1
- package/dist/domains/anzuUser/components/AUserTabsShell.vue.d.ts +17 -22
- package/dist/domains/anzuUser/components/AUserTabsShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/anzuUser/composables/anzuUserActions.d.ts +5 -9
- package/dist/domains/anzuUser/composables/anzuUserActions.js.map +1 -1
- package/dist/domains/anzuUser/composables/anzuUserValidations.d.ts +4 -6
- package/dist/domains/anzuUser/composables/anzuUserValidations.js.map +1 -1
- package/dist/domains/anzuUser/composables/cachedAnzuUsers.d.ts +3 -3
- package/dist/domains/anzuUser/composables/cachedAnzuUsers.js.map +1 -1
- package/dist/domains/anzuUser/composables/userCrossSystemSearch.d.ts +2 -4
- package/dist/domains/anzuUser/composables/userCrossSystemSearch.js.map +1 -1
- package/dist/domains/anzuUser/composables/userCrossSystemWrites.d.ts +5 -11
- package/dist/domains/anzuUser/composables/userCrossSystemWrites.js.map +1 -1
- package/dist/domains/anzuUser/composables/userSystemDescriptor.d.ts +33 -57
- package/dist/domains/anzuUser/composables/userSystemDescriptor.js.map +1 -1
- package/dist/domains/anzuUser/composables/userSystemProbe.d.ts +7 -27
- package/dist/domains/anzuUser/composables/userSystemProbe.js.map +1 -1
- package/dist/domains/anzuUser/filter/anzuUserFilter.d.ts +6 -16
- package/dist/domains/anzuUser/filter/anzuUserFilter.js.map +1 -1
- package/dist/domains/anzuUser/store/anzuUserStore.d.ts +1 -5
- package/dist/domains/anzuUser/store/anzuUserStore.js.map +1 -1
- package/dist/domains/anzuUser/store/userCrossSystemStore.d.ts +3 -14
- package/dist/domains/anzuUser/store/userCrossSystemStore.js.map +1 -1
- package/dist/domains/anzuUser/utils/userMetadataDiff.d.ts +7 -19
- package/dist/domains/anzuUser/utils/userMetadataDiff.js.map +1 -1
- package/dist/domains/anzuUser/utils/userSystemState.d.ts +12 -30
- package/dist/domains/anzuUser/utils/userSystemState.js.map +1 -1
- package/dist/domains/anzuUser/utils/userTabs.d.ts +1 -3
- package/dist/domains/anzuUser/utils/userTabs.js.map +1 -1
- package/dist/domains/api/composables/defineApiClient.d.ts +4 -8
- package/dist/domains/api/composables/defineApiClient.js.map +1 -1
- package/dist/domains/api/composables/request.d.ts +18 -48
- package/dist/domains/api/composables/request.js.map +1 -1
- package/dist/domains/api/composables/useApiFetchByIds.d.ts +7 -21
- package/dist/domains/api/composables/useApiFetchByIds.js.map +1 -1
- package/dist/domains/api/composables/useApiFetchItems.d.ts +18 -57
- package/dist/domains/api/composables/useApiFetchItems.js.map +1 -1
- package/dist/domains/api/composables/useApiFetchList.d.ts +7 -23
- package/dist/domains/api/composables/useApiFetchList.js.map +1 -1
- package/dist/domains/api/composables/useApiFetchListBatch.d.ts +5 -22
- package/dist/domains/api/composables/useApiFetchListBatch.js.map +1 -1
- package/dist/domains/api/composables/useApiQueryBuilder.js.map +1 -1
- package/dist/domains/api/composables/useApiRequest.d.ts +16 -39
- package/dist/domains/api/composables/useApiRequest.js.map +1 -1
- package/dist/domains/api/utils/apiErrors.d.ts +28 -55
- package/dist/domains/api/utils/apiErrors.js.map +1 -1
- package/dist/domains/api/utils/listBody.d.ts +22 -43
- package/dist/domains/api/utils/listBody.js.map +1 -1
- package/dist/domains/auth/components/Acl.js.map +1 -1
- package/dist/domains/auth/components/Acl.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/auth/composables/aclAllowed.d.ts +2 -3
- package/dist/domains/auth/composables/aclAllowed.js.map +1 -1
- package/dist/domains/auth/composables/defineAuth.js.map +1 -1
- package/dist/domains/auth/composables/refreshSession.d.ts +10 -13
- package/dist/domains/auth/composables/refreshSession.js.map +1 -1
- package/dist/domains/cached/components/ACachedChip.js.map +1 -1
- package/dist/domains/cached/components/ACachedChip.vue.d.ts +13 -11
- package/dist/domains/cached/components/ACachedChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/cached/components/ACachedUserChip.js +1 -1
- package/dist/domains/cached/components/ACachedUserChip.js.map +1 -1
- package/dist/domains/cached/components/ACachedUserChip.vue.d.ts +3 -3
- package/dist/domains/cached/components/ACachedUserChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/cached/composables/createUserAndTimeTrackingFields.d.ts +9 -9
- package/dist/domains/cached/composables/createUserAndTimeTrackingFields.js.map +1 -1
- package/dist/domains/cached/composables/defineCached.d.ts +13 -11
- package/dist/domains/cached/composables/defineCached.js.map +1 -1
- package/dist/domains/cached/composables/useCachedItem.d.ts +7 -8
- package/dist/domains/cached/composables/useCachedItem.js.map +1 -1
- package/dist/domains/collab/components/ACollabLockedByUser.js.map +1 -1
- package/dist/domains/collab/components/ACollabLockedByUser.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/collab/composables/collabAnyDataChange.js.map +1 -1
- package/dist/domains/collab/composables/collabField.d.ts +5 -3
- package/dist/domains/collab/composables/collabField.js.map +1 -1
- package/dist/domains/collab/composables/collabInit.js +58 -54
- package/dist/domains/collab/composables/collabInit.js.map +1 -1
- package/dist/domains/collab/composables/collabRecovery.d.ts +49 -0
- package/dist/domains/collab/composables/collabRecovery.js +99 -0
- package/dist/domains/collab/composables/collabRecovery.js.map +1 -0
- package/dist/domains/collab/composables/collabRoom.js +106 -106
- package/dist/domains/collab/composables/collabRoom.js.map +1 -1
- package/dist/domains/collab/composables/collabState.d.ts +11 -4
- package/dist/domains/collab/composables/collabState.js +34 -25
- package/dist/domains/collab/composables/collabState.js.map +1 -1
- package/dist/domains/collab/composables/commonAdminCollabOptions.d.ts +4 -2
- package/dist/domains/collab/types/Collab.d.ts +31 -5
- package/dist/domains/collab/types/Collab.js +23 -11
- package/dist/domains/collab/types/Collab.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataForm.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataForm.vue.d.ts +7 -5
- package/dist/domains/customDataForm/components/ACustomDataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataFormElement.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataFormElement.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.js.map +1 -1
- package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue.d.ts +5 -3
- package/dist/domains/customDataForm/components/ACustomDataFormHiddenPart.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/customDataForm/composables/useCustomDataForm.js.map +1 -1
- package/dist/domains/customDataForm/types/CustomDataForm.d.ts +4 -1
- package/dist/domains/dam/api/damAssetApi.d.ts +7 -7
- package/dist/domains/dam/api/damAssetApi.js.map +1 -1
- package/dist/domains/dam/api/damAssetLicenceApi.d.ts +1 -1
- package/dist/domains/dam/api/damAssetLicenceApi.js.map +1 -1
- package/dist/domains/dam/api/damConstants.js.map +1 -1
- package/dist/domains/dam/api/damEndPoints.js.map +1 -1
- package/dist/domains/dam/api/damImageApi.js.map +1 -1
- package/dist/domains/dam/api/uploadApi.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue.d.ts +7 -5
- package/dist/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailDialog.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue.d.ts +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue.d.ts +5 -3
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue.d.ts +1 -1
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImage.vue.d.ts +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue.d.ts +2 -2
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetInfobox.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetInfobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.d.ts +5 -6
- package/dist/domains/dam/assetDetail/composables/assetDetailExtSystem.js.map +1 -1
- package/dist/domains/dam/assetDetail/composables/assetDetailView.d.ts +10 -10
- package/dist/domains/dam/assetDetail/composables/assetDetailView.js.map +1 -1
- package/dist/domains/dam/assetDetail/store/assetDetailStore.js.map +1 -1
- package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.d.ts +4 -3
- package/dist/domains/dam/assetDetail/utils/assetMetadataMayStillChange.js.map +1 -1
- package/dist/domains/dam/assetSelect/api/damPodcastApi.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetListInner.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetListInner.vue.d.ts +789 -787
- package/dist/domains/dam/assetSelect/components/AAssetListInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetSelect.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetSelect.vue.d.ts +395 -393
- package/dist/domains/dam/assetSelect/components/AAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue.d.ts +14 -12
- package/dist/domains/dam/assetSelect/components/AAssetSelectMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetDistributionServiceNameFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectListBar.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue.d.ts +9 -7
- package/dist/domains/dam/assetSelect/components/AssetSelectListBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/composables/assetSelectListActions.js.map +1 -1
- package/dist/domains/dam/assetSelect/store/assetSelectStore.js.map +1 -1
- package/dist/domains/dam/author/api/authorApi.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorCreateButton.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorCreateButton.vue.d.ts +1 -1
- package/dist/domains/dam/author/components/AuthorCreateButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue.d.ts +9 -6
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteCachedAuthorChipConflicts.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.js.map +1 -1
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue.d.ts +2 -2
- package/dist/domains/dam/author/components/AuthorRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.js.map +1 -1
- package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue.d.ts +1 -1
- package/dist/domains/dam/author/components/DamAuthorFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/author/composables/cachedAuthors.d.ts +5 -4
- package/dist/domains/dam/author/composables/cachedAuthors.js.map +1 -1
- package/dist/domains/dam/author/composables/cachedUsers.d.ts +5 -4
- package/dist/domains/dam/author/composables/cachedUsers.js.map +1 -1
- package/dist/domains/dam/author/composables/damAuthorConfig.d.ts +2 -2
- package/dist/domains/dam/author/composables/damAuthorConfig.js.map +1 -1
- package/dist/domains/dam/components/DamAdminAssetLink.js.map +1 -1
- package/dist/domains/dam/components/DamAdminAssetLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/composables/commonAdminCoreDamOptions.d.ts +10 -8
- package/dist/domains/dam/composables/commonAdminCoreDamOptions.js.map +1 -1
- package/dist/domains/dam/composables/damConfigName.d.ts +8 -9
- package/dist/domains/dam/composables/damConfigName.js.map +1 -1
- package/dist/domains/dam/composables/damNotifications.d.ts +9 -9
- package/dist/domains/dam/composables/damNotifications.js.map +1 -1
- package/dist/domains/dam/composables/damNotificationsConnection.d.ts +4 -4
- package/dist/domains/dam/composables/damNotificationsConnection.js.map +1 -1
- package/dist/domains/dam/composables/damNotificationsEventBus.d.ts +2 -2
- package/dist/domains/dam/composables/damNotificationsEventBus.js.map +1 -1
- package/dist/domains/dam/composables/extSystemIdForCached.d.ts +5 -4
- package/dist/domains/dam/composables/extSystemIdForCached.js.map +1 -1
- package/dist/domains/dam/config/api/damAssetCustomFormApi.js.map +1 -1
- package/dist/domains/dam/config/api/damConfigApi.js.map +1 -1
- package/dist/domains/dam/config/composables/damConfigState.d.ts +5 -5
- package/dist/domains/dam/config/composables/damConfigState.js.map +1 -1
- package/dist/domains/dam/config/store/damConfigStore.d.ts +5 -4
- package/dist/domains/dam/config/store/damConfigStore.js.map +1 -1
- package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.d.ts +3 -1
- package/dist/domains/dam/config/utils/damFilterUserAllowedUploadConfigs.js.map +1 -1
- package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
- package/dist/domains/dam/cropper/components/ACropper.vue.d.ts +8 -16
- package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.js.map +1 -1
- package/dist/domains/dam/cropper/components/DamAssetImageRoiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/cropper/store/imageRoiStore.d.ts +9 -12
- package/dist/domains/dam/cropper/store/imageRoiStore.js.map +1 -1
- package/dist/domains/dam/cropper/utils/cropperGeometry.d.ts +24 -38
- package/dist/domains/dam/cropper/utils/cropperGeometry.js.map +1 -1
- package/dist/domains/dam/cropper/utils/cropperJsService.d.ts +3 -7
- package/dist/domains/dam/cropper/utils/cropperJsService.js +10 -3
- package/dist/domains/dam/cropper/utils/cropperJsService.js.map +1 -1
- package/dist/domains/dam/cropper/utils/cropperTypes.d.ts +3 -6
- package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.d.ts +5 -5
- package/dist/domains/dam/cropper/utils/damAssetImageRoiSelectLoader.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageMediaWidget.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageMediaWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImagePublicInput.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImagePublicInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageWidget.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageWidget.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageWidgetMultiple.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/AImageWidgetSimple.vue.d.ts +43 -41
- package/dist/domains/dam/imageWidget/components/AMediaWidgetSimple.vue.d.ts +31 -29
- package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue.d.ts +29 -27
- package/dist/domains/dam/imageWidget/components/ImageDetailDialogMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageMassOperations.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue.d.ts +1 -1
- package/dist/domains/dam/imageWidget/components/ImageMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue.d.ts +68 -66
- package/dist/domains/dam/imageWidget/components/ImageMediaWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetInner.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue.d.ts +402 -400
- package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue.d.ts +384 -382
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleLimitDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/imageWidget/components/MediaWidgetSimpleDialog.vue.d.ts +7 -5
- package/dist/domains/dam/imageWidget/composables/commonAdminImageOptions.js.map +1 -1
- package/dist/domains/dam/imageWidget/composables/imageApiCms.js.map +1 -1
- package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.d.ts +11 -13
- package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.js.map +1 -1
- package/dist/domains/dam/imageWidget/composables/useImageMassOperations.js.map +1 -1
- package/dist/domains/dam/imageWidget/store/imageMediaWidgetStore.js.map +1 -1
- package/dist/domains/dam/imageWidget/store/imageStore.js.map +1 -1
- package/dist/domains/dam/imageWidget/utils/damImage.d.ts +5 -6
- package/dist/domains/dam/imageWidget/utils/damImage.js.map +1 -1
- package/dist/domains/dam/imageWidget/utils/fieldLockTurns.d.ts +1 -2
- package/dist/domains/dam/imageWidget/utils/fieldLockTurns.js.map +1 -1
- package/dist/domains/dam/imageWidget/utils/imageSaves.d.ts +10 -14
- package/dist/domains/dam/imageWidget/utils/imageSaves.js.map +1 -1
- package/dist/domains/dam/imageWidget/utils/metadataToImageMap.js.map +1 -1
- package/dist/domains/dam/imageWidget/utils/waitLimit.d.ts +4 -6
- package/dist/domains/dam/imageWidget/utils/waitLimit.js.map +1 -1
- package/dist/domains/dam/keyword/api/keywordApi.js.map +1 -1
- package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.js.map +1 -1
- package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue.d.ts +1 -1
- package/dist/domains/dam/keyword/components/DamKeywordFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.js.map +1 -1
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue.d.ts +8 -5
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteCachedKeywordChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js +1 -1
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.js.map +1 -1
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue.d.ts +2 -2
- package/dist/domains/dam/keyword/components/KeywordRemoteAutocompleteWithCached.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/keyword/composables/cachedKeywords.d.ts +5 -4
- package/dist/domains/dam/keyword/composables/cachedKeywords.js.map +1 -1
- package/dist/domains/dam/keyword/composables/damKeywordConfig.d.ts +2 -2
- package/dist/domains/dam/keyword/composables/damKeywordConfig.js.map +1 -1
- package/dist/domains/dam/types/Asset.d.ts +1 -1
- package/dist/domains/dam/types/Asset.js.map +1 -1
- package/dist/domains/dam/types/UploadQueue.d.ts +5 -4
- package/dist/domains/dam/types/UploadQueue.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/AssetCustomMetadataFormMassOperations.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue.d.ts +2 -2
- package/dist/domains/dam/uploadQueue/components/AssetQueueSelectedSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingle.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue.d.ts +6 -4
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue.d.ts +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueDialogSingleSidebarMetadataContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue.d.ts +6 -6
- package/dist/domains/dam/uploadQueue/components/UploadQueueEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue.d.ts +13 -13
- package/dist/domains/dam/uploadQueue/components/UploadQueueItemEditable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.d.ts +13 -13
- package/dist/domains/dam/uploadQueue/components/uploadQueueBindings.js.map +1 -1
- package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.d.ts +2 -2
- package/dist/domains/dam/uploadQueue/composables/damUploadChunkSize.js.map +1 -1
- package/dist/domains/dam/uploadQueue/composables/uploadMeter.d.ts +12 -12
- package/dist/domains/dam/uploadQueue/composables/uploadMeter.js.map +1 -1
- package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.d.ts +5 -5
- package/dist/domains/dam/uploadQueue/composables/uploadQueueItemRefresh.js.map +1 -1
- package/dist/domains/dam/uploadQueue/composables/uploadService.d.ts +2 -3
- package/dist/domains/dam/uploadQueue/composables/uploadService.js.map +1 -1
- package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.d.ts +5 -4
- package/dist/domains/dam/uploadQueue/composables/useUploadQueueDialog.js.map +1 -1
- package/dist/domains/dam/uploadQueue/core/uploadQueueCore.d.ts +3 -2
- package/dist/domains/dam/uploadQueue/core/uploadQueueCore.js.map +1 -1
- package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.d.ts +8 -5
- package/dist/domains/dam/uploadQueue/core/uploadQueueCoreTypes.js.map +1 -1
- package/dist/domains/dam/uploadQueue/core/uploadQueueFill.d.ts +3 -3
- package/dist/domains/dam/uploadQueue/core/uploadQueueFill.js.map +1 -1
- package/dist/domains/dam/uploadQueue/presets/queuePresets.d.ts +8 -5
- package/dist/domains/dam/uploadQueue/presets/queuePresets.js.map +1 -1
- package/dist/domains/dam/uploadQueue/presets/uploadPresets.d.ts +15 -13
- package/dist/domains/dam/uploadQueue/presets/uploadPresets.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.d.ts +7 -7
- package/dist/domains/dam/uploadQueue/settlement/uploadPollSchedule.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadPoller.d.ts +4 -4
- package/dist/domains/dam/uploadQueue/settlement/uploadPoller.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadSettle.d.ts +28 -30
- package/dist/domains/dam/uploadQueue/settlement/uploadSettle.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.d.ts +2 -2
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlement.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.d.ts +2 -2
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlementRuntime.js.map +1 -1
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.d.ts +63 -73
- package/dist/domains/dam/uploadQueue/settlement/uploadSettlementTypes.js.map +1 -1
- package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.d.ts +8 -9
- package/dist/domains/dam/uploadQueue/store/uploadQueuesStore.js.map +1 -1
- package/dist/domains/dam/user/api/userApi.d.ts +2 -2
- package/dist/domains/dam/user/api/userApi.js.map +1 -1
- package/dist/domains/dam/user/components/DamDistributionServiceSelect.js.map +1 -1
- package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue.d.ts +1 -1
- package/dist/domains/dam/user/components/DamDistributionServiceSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.js.map +1 -1
- package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue.d.ts +1 -1
- package/dist/domains/dam/user/components/DamExternalProviderAssetSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.js.map +1 -1
- package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue.d.ts +1 -1
- package/dist/domains/dam/user/components/DamUserRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/user/composables/damUserSelectActions.d.ts +1 -1
- package/dist/domains/dam/user/composables/damUserSelectActions.js.map +1 -1
- package/dist/domains/dam/user/types/DamDistributionServiceType.d.ts +2 -2
- package/dist/domains/dam/user/types/DamDistributionServiceType.js.map +1 -1
- package/dist/domains/dam/user/types/DamExternalProviderAssetType.d.ts +1 -1
- package/dist/domains/dam/user/types/DamExternalProviderAssetType.js.map +1 -1
- package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.js.map +1 -1
- package/dist/domains/filters/bookmarks/components/FilterBookmarkDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/bookmarks/store/bookmarksStore.d.ts +3 -3
- package/dist/domains/filters/bookmarks/store/bookmarksStore.js.map +1 -1
- package/dist/domains/filters/components/AFilterDatetimePicker.js.map +1 -1
- package/dist/domains/filters/components/AFilterDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterInteger.js.map +1 -1
- package/dist/domains/filters/components/AFilterInteger.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterString.js.map +1 -1
- package/dist/domains/filters/components/AFilterString.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterTimeInterval.js +1 -1
- package/dist/domains/filters/components/AFilterTimeInterval.js.map +1 -1
- package/dist/domains/filters/components/AFilterTimeInterval.vue.d.ts +5 -3
- package/dist/domains/filters/components/AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.js.map +1 -1
- package/dist/domains/filters/components/AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterWrapper.js.map +1 -1
- package/dist/domains/filters/components/AFilterWrapper.vue.d.ts +17 -15
- package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js +63 -62
- package/dist/domains/filters/components/AFilterWrapper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/components/AFilterWrapperSidebar.vue.d.ts +5 -3
- package/dist/domains/filters/components/FiltersSelected.js.map +1 -1
- package/dist/domains/filters/components/FiltersSelected.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/composables/filterFactory.d.ts +16 -26
- package/dist/domains/filters/composables/filterFactory.js +38 -31
- package/dist/domains/filters/composables/filterFactory.js.map +1 -1
- package/dist/domains/filters/datatable/components/ADatatableOrdering.js.map +1 -1
- package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/domains/filters/datatable/components/ADatatableOrdering.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/datatable/components/ADatatablePagination.js.map +1 -1
- package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js +2 -4
- package/dist/domains/filters/datatable/components/ADatatablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/filters/utils/filterInjectionKeys.js.map +1 -1
- package/dist/domains/form/components/AFormDatetimePicker.js.map +1 -1
- package/dist/domains/form/components/AFormDatetimePicker.vue.d.ts +7 -5
- package/dist/domains/form/components/AFormDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/form/components/AFormFlagDatetimePicker.js.map +1 -1
- package/dist/domains/form/components/AFormFlagDatetimePicker.vue.d.ts +7 -5
- package/dist/domains/form/components/AFormFlagDatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/form/components/AFormSwitch.vue.d.ts +7 -5
- package/dist/domains/form/components/AFormTextField.js.map +1 -1
- package/dist/domains/form/components/AFormTextField.vue.d.ts +9 -7
- package/dist/domains/form/components/AFormTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/form/components/AFormTextarea.vue.d.ts +13 -11
- package/dist/domains/form/components/AFormValueObjectOptionsSelect.vue.d.ts +7 -5
- package/dist/domains/form/components/ASystemEntityScope.vue.d.ts +5 -3
- package/dist/domains/job/api/jobApi.js.map +1 -1
- package/dist/domains/job/components/AJobDetailCommon.vue.d.ts +5 -3
- package/dist/domains/listEditor/components/AListEditor.js.map +1 -1
- package/dist/domains/listEditor/components/AListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/listEditor/components/ANestedSortableListEditor.js.map +1 -1
- package/dist/domains/listEditor/components/ANestedSortableListEditor.vue.d.ts +2 -3
- package/dist/domains/listEditor/components/ANestedSortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/listEditor/components/ASortableListEditor.js.map +1 -1
- package/dist/domains/listEditor/components/ASortableListEditor.vue.d.ts +2 -3
- package/dist/domains/listEditor/components/ASortableListEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/listEditor/composables/useListEditorController.d.ts +4 -5
- package/dist/domains/listEditor/composables/useListEditorController.js.map +1 -1
- package/dist/domains/listEditor/composables/useNestedListEditor.d.ts +3 -4
- package/dist/domains/listEditor/composables/useNestedListEditor.js.map +1 -1
- package/dist/domains/listEditor/composables/useNestedListEditorController.d.ts +5 -4
- package/dist/domains/listEditor/composables/useNestedListEditorController.js.map +1 -1
- package/dist/domains/listEditor/composables/useReorderMode.js.map +1 -1
- package/dist/domains/listEditor/types/listEditorTypes.d.ts +2 -2
- package/dist/domains/listEditor/utils/listEditorLoader.d.ts +5 -5
- package/dist/domains/listEditor/utils/listEditorLoader.js.map +1 -1
- package/dist/domains/listEditor/utils/resolveCompactText.js.map +1 -1
- package/dist/domains/log/api/logApi.d.ts +2 -3
- package/dist/domains/log/api/logApi.js.map +1 -1
- package/dist/domains/log/components/ALogDatatable.js.map +1 -1
- package/dist/domains/log/components/ALogDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/log/components/ALogDetailView.js.map +1 -1
- package/dist/domains/log/components/ALogDetailView.vue.d.ts +1 -1
- package/dist/domains/log/components/ALogDetailView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/log/components/ALogFilter.js.map +1 -1
- package/dist/domains/log/components/ALogFilter.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/log/components/ALogListView.js.map +1 -1
- package/dist/domains/log/components/ALogListView.vue.d.ts +1 -1
- package/dist/domains/log/components/ALogListView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/log/composables/logActions.d.ts +4 -5
- package/dist/domains/log/composables/logActions.js.map +1 -1
- package/dist/domains/log/composables/logType.d.ts +6 -7
- package/dist/domains/log/composables/logType.js.map +1 -1
- package/dist/domains/log/filter/logFilter.d.ts +8 -11
- package/dist/domains/log/filter/logFilter.js.map +1 -1
- package/dist/domains/permission/components/APermissionEditor.js.map +1 -1
- package/dist/domains/permission/components/APermissionEditor.vue.d.ts +4 -4
- package/dist/domains/permission/components/APermissionEditor.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/permission/composables/permissionActions.d.ts +3 -6
- package/dist/domains/permission/composables/permissionActions.js.map +1 -1
- package/dist/domains/permission/config/api/permissionConfigApi.d.ts +2 -2
- package/dist/domains/permission/config/api/permissionConfigApi.js.map +1 -1
- package/dist/domains/permission/config/composables/permissionConfigActions.d.ts +3 -7
- package/dist/domains/permission/config/composables/permissionConfigActions.js.map +1 -1
- package/dist/domains/permission/config/store/permissionConfigStore.d.ts +2 -4
- package/dist/domains/permission/config/store/permissionConfigStore.js.map +1 -1
- package/dist/domains/permission/group/api/permissionGroupApi.d.ts +8 -10
- package/dist/domains/permission/group/api/permissionGroupApi.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupDatatable.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupDatatable.vue.d.ts +12 -10
- package/dist/domains/permission/group/components/APermissionGroupDatatable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupDetail.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupDetail.vue.d.ts +21 -22
- package/dist/domains/permission/group/components/APermissionGroupDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupManage.js.map +1 -1
- package/dist/domains/permission/group/components/APermissionGroupManage.vue.d.ts +21 -22
- package/dist/domains/permission/group/components/APermissionGroupManage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/permission/group/composables/cachedPermissionGroups.js.map +1 -1
- package/dist/domains/permission/group/composables/permissionGroupActions.d.ts +6 -8
- package/dist/domains/permission/group/composables/permissionGroupActions.js.map +1 -1
- package/dist/domains/permission/group/composables/permissionGroupValidations.d.ts +2 -3
- package/dist/domains/permission/group/composables/permissionGroupValidations.js.map +1 -1
- package/dist/domains/permission/group/filter/permissionGroupFilter.d.ts +2 -3
- package/dist/domains/permission/group/filter/permissionGroupFilter.js.map +1 -1
- package/dist/domains/permission/group/store/permissionGroupStore.d.ts +3 -6
- package/dist/domains/permission/group/store/permissionGroupStore.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFilterRemoteAutocompleteWithMinimal.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/remoteAutocomplete/components/AFormRemoteAutocompleteWithCached.vue.d.ts +5 -3
- package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.d.ts +11 -13
- package/dist/domains/remoteAutocomplete/composables/createRemoteAutocomplete.js.map +1 -1
- package/dist/domains/subjectSelect/components/AFilterWrapperSubjectSelect.vue.d.ts +13 -11
- package/dist/domains/subjectSelect/components/ASubjectSelect.js.map +1 -1
- package/dist/domains/subjectSelect/components/ASubjectSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/subjectSelect/composables/useSubjectSelect.js +53 -51
- package/dist/domains/subjectSelect/composables/useSubjectSelect.js.map +1 -1
- package/dist/domains/system/appShell/components/AActionbar.vue.d.ts +7 -5
- package/dist/domains/system/appShell/components/ALayoutSwitch.js.map +1 -1
- package/dist/domains/system/appShell/components/ALayoutSwitch.vue.d.ts +7 -5
- package/dist/domains/system/appShell/components/ALayoutSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/system/appShell/composables/teleportSlot.d.ts +0 -1
- package/dist/domains/system/appShell/composables/teleportSlot.js.map +1 -1
- package/dist/domains/system/components/AAlerts.js.map +1 -1
- package/dist/domains/system/components/AAlerts.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/system/composables/alerts.js.map +1 -1
- package/dist/domains/system/composables/breadcrumbs.d.ts +3 -3
- package/dist/domains/system/composables/breadcrumbs.js.map +1 -1
- package/dist/domains/system/composables/languageSettings.js.map +1 -1
- package/dist/domains/system/composables/loginStatus.js.map +1 -1
- package/dist/domains/system/composables/navigationError.d.ts +6 -8
- package/dist/domains/system/composables/navigationError.js.map +1 -1
- package/dist/domains/system/composables/pageNavigation.d.ts +9 -10
- package/dist/domains/system/composables/pageNavigation.js.map +1 -1
- package/dist/domains/system/composables/recordActions.d.ts +14 -22
- package/dist/domains/system/composables/recordActions.js.map +1 -1
- package/dist/domains/system/composables/recordPage.d.ts +23 -38
- package/dist/domains/system/composables/recordPage.js.map +1 -1
- package/dist/domains/system/composables/routeHistory.d.ts +4 -5
- package/dist/domains/system/composables/routeHistory.js.map +1 -1
- package/dist/domains/system/composables/sentry.js.map +1 -1
- package/dist/domains/system/composables/useDebugFeatures.d.ts +3 -6
- package/dist/domains/system/composables/useDebugFeatures.js.map +1 -1
- package/dist/domains/system/store/datatablePageStore.d.ts +8 -1
- package/dist/domains/system/store/datatablePageStore.js +10 -3
- package/dist/domains/system/store/datatablePageStore.js.map +1 -1
- package/dist/domains/system/systemBar/components/ASystemBar.js.map +1 -1
- package/dist/domains/system/systemBar/components/ASystemBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/system/systemBar/utils/appReload.d.ts +5 -5
- package/dist/domains/system/systemBar/utils/appReload.js.map +1 -1
- package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.js.map +1 -1
- package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue.d.ts +2 -3
- package/dist/domains/ui/buttons/action/components/AActionCloseButtonHistory.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/buttons/action/components/AActionDeleteButton.js.map +1 -1
- package/dist/domains/ui/buttons/action/components/AActionDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/buttons/components/ABtnSplit.vue.d.ts +9 -7
- package/dist/domains/ui/components/AAvatarColorPicker.js.map +1 -1
- package/dist/domains/ui/components/AAvatarColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/components/ACard.js.map +1 -1
- package/dist/domains/ui/components/ACard.vue.d.ts +7 -3
- package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js +6 -2
- package/dist/domains/ui/components/ACard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/components/ACardLoader.js.map +1 -1
- package/dist/domains/ui/components/ACardLoader.vue.d.ts +1 -0
- package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js +13 -7
- package/dist/domains/ui/components/ACardLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/components/AChipNoLink.vue.d.ts +5 -3
- package/dist/domains/ui/components/ACopyText.vue.d.ts +9 -7
- package/dist/domains/ui/components/ACreateDialog.js.map +1 -1
- package/dist/domains/ui/components/ACreateDialog.vue.d.ts +11 -9
- package/dist/domains/ui/components/ACreateDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/components/ADialogToolbar.vue.d.ts +5 -3
- package/dist/domains/ui/components/ARow.vue.d.ts +5 -3
- package/dist/domains/ui/components/ATimeTrackingFields.js.map +1 -1
- package/dist/domains/ui/components/ATimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/components/AUserAndTimeTrackingFields.js.map +1 -1
- package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue.d.ts +3 -5
- package/dist/domains/ui/components/AUserAndTimeTrackingFields.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/datetime/components/ADatetimePicker.js +1 -1
- package/dist/domains/ui/datetime/components/ADatetimePicker.js.map +1 -1
- package/dist/domains/ui/datetime/components/ADatetimePicker.vue.d.ts +5 -3
- package/dist/domains/ui/datetime/components/ADatetimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/file/components/AFileDropzone.js.map +1 -1
- package/dist/domains/ui/file/components/AFileDropzone.vue.d.ts +1 -1
- package/dist/domains/ui/file/components/AFileDropzone.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/file/components/AFileInput.js.map +1 -1
- package/dist/domains/ui/file/components/AFileInput.vue.d.ts +9 -7
- package/dist/domains/ui/file/components/AFileInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/file/components/AFileInputDialog.js.map +1 -1
- package/dist/domains/ui/file/components/AFileInputDialog.vue.d.ts +9 -7
- package/dist/domains/ui/file/components/AFileInputDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/file/composables/dropzone.js.map +1 -1
- package/dist/domains/ui/file/composables/formatAndSizeCheck.js.map +1 -1
- package/dist/domains/ui/view/components/AGenericView.vue.d.ts +7 -5
- package/dist/domains/ui/view/components/ALoginView.js +1 -1
- package/dist/domains/ui/view/components/ALoginView.js.map +1 -1
- package/dist/domains/ui/view/components/ALoginView.vue.d.ts +5 -3
- package/dist/domains/ui/view/components/ALoginView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/view/components/ALogoutView.js.map +1 -1
- package/dist/domains/ui/view/components/ALogoutView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/ui/view/components/ANotFoundView.js.map +1 -1
- package/dist/domains/ui/view/components/ANotFoundView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.d.ts +6 -7
- package/dist/domains/unsavedGuard/composables/useUnsavedChangesGuard.js.map +1 -1
- package/dist/lib.d.ts +2 -2
- package/dist/plugins/commonVuetifyConfig.d.ts +3 -3
- package/dist/plugins/commonVuetifyConfig.js.map +1 -1
- package/dist/plugins/i18n.d.ts +4 -5
- package/dist/plugins/i18n.js.map +1 -1
- package/dist/plugins/pluginOptions.d.ts +4 -2
- package/dist/plugins/pluginOptions.js.map +1 -1
- package/dist/plugins/webfontloader.js.map +1 -1
- package/dist/shared/error/AnzuApiCancelledError.d.ts +5 -8
- package/dist/shared/error/AnzuApiCancelledError.js.map +1 -1
- package/dist/shared/error/AnzuError.d.ts +3 -5
- package/dist/shared/error/AnzuError.js.map +1 -1
- package/dist/shared/error/AuthUnavailableError.d.ts +3 -3
- package/dist/shared/error/AuthUnavailableError.js.map +1 -1
- package/dist/shared/error/isInCauseChain.d.ts +2 -2
- package/dist/shared/error/isInCauseChain.js.map +1 -1
- package/dist/shared/types/UserAndTimeTracking.d.ts +5 -5
- package/dist/shared/types/Validation.d.ts +4 -5
- package/dist/shared/types/common.d.ts +1 -3
- package/dist/shared/types/globalComponents.d.ts +5 -6
- package/dist/shared/utils/common.js.map +1 -1
- package/dist/shared/utils/datetime.d.ts +0 -1
- package/dist/shared/utils/datetime.js.map +1 -1
- package/dist/shared/utils/datetimePickerValue.d.ts +4 -7
- package/dist/shared/utils/datetimePickerValue.js.map +1 -1
- package/dist/shared/utils/development.d.ts +3 -3
- package/dist/shared/utils/development.js.map +1 -1
- package/dist/shared/utils/envConfig.d.ts +4 -4
- package/dist/shared/utils/envConfig.js.map +1 -1
- package/dist/shared/utils/json.d.ts +1 -1
- package/dist/shared/utils/json.js.map +1 -1
- package/dist/shared/utils/userAndTimeTracking.d.ts +5 -7
- package/dist/shared/utils/userAndTimeTracking.js.map +1 -1
- package/dist/shared/validators/vuelidate/common/useValidateHexColor.d.ts +3 -5
- package/dist/shared/validators/vuelidate/common/useValidateHexColor.js.map +1 -1
- package/dist/testing/appShell.d.ts +11 -11
- package/dist/testing/appShell.js.map +1 -1
- package/dist/testing/closeButtons.d.ts +9 -11
- package/dist/testing/closeButtons.js.map +1 -1
- package/dist/testing/declaredDependencies.d.ts +7 -7
- package/dist/testing/declaredDependencies.js.map +1 -1
- package/dist/testing/generatedRoutes.d.ts +6 -11
- package/dist/testing/generatedRoutes.js.map +1 -1
- package/dist/testing/routeHistory.d.ts +5 -12
- package/dist/testing/routeHistory.js.map +1 -1
- package/dist/testing/sortableLists.d.ts +16 -21
- package/dist/testing/sortableLists.js.map +1 -1
- package/dist/testing/typedRouter.d.ts +0 -1
- package/dist/testing/typedRouter.js.map +1 -1
- package/package.json +39 -29
- package/src/e2e/conventions.d.mts +4 -0
- package/src/e2e/conventions.mjs +15 -0
- package/src/e2e/index.d.mts +8 -0
- package/src/e2e/index.mjs +1 -0
- package/src/e2e/routeWalk.d.mts +43 -0
- package/src/e2e/routeWalk.mjs +606 -0
- package/src/e2e/types.d.mts +161 -0
- package/src/eslint/adminConfig.mjs +19 -27
- package/src/eslint/globalComponentNames.mjs +3 -4
- package/src/eslint/oxlint.mjs +7 -20
- package/src/eslint/plugin.d.mts +2 -4
- package/src/eslint/plugin.mjs +18 -34
- package/src/eslint/validRouteName.mjs +6 -7
- package/src/vite/devWatch.mjs +30 -43
- package/src/vite/index.d.mts +5 -5
- package/src/vite/sentry.mjs +7 -12
- package/src/vite/sourcemaps.mjs +4 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"damAssetLicenceApi.js","names":["fetchDamAssetLicence","DAM_END_POINT_ASSET_LICENCE","useApiRequest","endPoint","execute"],"sources":["../../../../src/domains/dam/api/damAssetLicenceApi.ts"],"sourcesContent":["import type { DamAssetLicence } from '@/domains/dam/types/AssetLicence'\nimport type { AxiosInstance } from 'axios'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport { DAM_END_POINT_ASSET_LICENCE } from '@/domains/dam/api/damEndPoints'\n\n/** `endPoint`: the
|
|
1
|
+
{"version":3,"file":"damAssetLicenceApi.js","names":["fetchDamAssetLicence","DAM_END_POINT_ASSET_LICENCE","useApiRequest","endPoint","execute"],"sources":["../../../../src/domains/dam/api/damAssetLicenceApi.ts"],"sourcesContent":["import type { DamAssetLicence } from '@/domains/dam/types/AssetLicence'\nimport type { AxiosInstance } from 'axios'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport { DAM_END_POINT_ASSET_LICENCE } from '@/domains/dam/api/damEndPoints'\n\n/** `endPoint`: the caller's licence endpoint. The default one is used when not given. */\nexport const fetchDamAssetLicence = (\n client: () => AxiosInstance,\n id: IntegerId,\n endPoint: string = DAM_END_POINT_ASSET_LICENCE\n) => {\n const { execute } = useApiRequest<DamAssetLicence, null>({\n client,\n method: 'GET',\n system: 'coreDam',\n entity: 'assetLicence',\n urlTemplate: endPoint + '/:id',\n })\n\n return execute({ urlParams: { id } })\n}\n"],"mappings":";;;AAOA,IAAaA,KACX,GACA,GACA,IAAmBC,MAChB;CACH,IAAM,EAAE,eAAYC,EAAqC;EACvD;EACA,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,aAAaC,IAAW;CAC1B,CAAC;CAED,OAAOC,EAAQ,EAAE,WAAW,EAAE,MAAG,EAAE,CAAC;AACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"damConstants.js","names":["SYSTEM_CORE_DAM"],"sources":["../../../../src/domains/dam/api/damConstants.ts"],"sourcesContent":["//
|
|
1
|
+
{"version":3,"file":"damConstants.js","names":["SYSTEM_CORE_DAM"],"sources":["../../../../src/domains/dam/api/damConstants.ts"],"sourcesContent":["// Kept apart from the api modules on purpose. Nearly every DAM module needs these.\n// Importing them from damAssetApi created an import cycle through the DAM config.\nexport const SYSTEM_CORE_DAM = 'coreDam'\nexport const SYSTEM_DAM = 'dam'\n"],"mappings":";AAEA,IAAaA,IAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"damEndPoints.js","names":["DAM_END_POINT_CONFIGURATION","DAM_END_POINT_PUB_CONFIGURATION","DAM_END_POINT_ASSET_LICENCE","DAM_END_POINT_ASSET_CUSTOM_FORM","DAM_END_POINT_USER","DAM_END_POINT_PODCAST","DAM_END_POINT_CMS_ASSET"],"sources":["../../../../src/domains/dam/api/damEndPoints.ts"],"sourcesContent":["//
|
|
1
|
+
{"version":3,"file":"damEndPoints.js","names":["DAM_END_POINT_CONFIGURATION","DAM_END_POINT_PUB_CONFIGURATION","DAM_END_POINT_ASSET_LICENCE","DAM_END_POINT_ASSET_CUSTOM_FORM","DAM_END_POINT_USER","DAM_END_POINT_PODCAST","DAM_END_POINT_CMS_ASSET"],"sources":["../../../../src/domains/dam/api/damEndPoints.ts"],"sourcesContent":["// Default addresses a DAM configuration may override besides its five (`CommonAdminCoreDamConfig`).\n// A separate module, so the API modules and the options can both read them without loading each other.\n\nexport const DAM_END_POINT_CONFIGURATION = '/adm/v1/configuration'\nexport const DAM_END_POINT_PUB_CONFIGURATION = '/pub/v1/configuration'\nexport const DAM_END_POINT_ASSET_LICENCE = '/adm/v1/asset-licence'\nexport const DAM_END_POINT_ASSET_CUSTOM_FORM = '/adm/v1/asset-custom-form'\nexport const DAM_END_POINT_USER = '/adm/v1/user'\nexport const DAM_END_POINT_PODCAST = '/adm/v1/podcast'\nexport const DAM_END_POINT_CMS_ASSET = '/adm/v1/cms/asset'\n"],"mappings":";AAGA,IAAaA,IAA8B,yBAC9BC,IAAkC,yBAClCC,IAA8B,yBAC9BC,IAAkC,6BAClCC,IAAqB,gBACrBC,IAAwB,mBACxBC,IAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"damImageApi.js","names":["axios","CHUNK_UPLOAD_TIMEOUT","fetchImageFile","useApiRequest","SYSTEM_CORE_DAM","endPoint","execute","imageUploadStart","url","item","UploadQueueItemType","client","damFileTypeFix","res","resolve","reject","err","imageUploadChunk","useSentry","buffer","logMessage","size","offset","formData","imageId","chunkData","error","logError","onUploadProgressCallback","imageUploadFinish","sha","rotateImage","angle","COPY_TO_LICENCE_MAX_LIMIT","COPY_TO_LICENCE_API_LIMIT","copyToLicence","items","itemChunks","arr","chunkSize","i","chunk","AnzuApiResponseCodeError","context","requestedUrl","report","mapApiError"],"sources":["../../../../src/domains/dam/api/damImageApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport axios from 'axios'\nimport { type UploadQueueItem, UploadQueueItemType } from '@/domains/dam/types/UploadQueue'\nimport type { DocId } from '@/shared/types/common'\nimport { HTTP_STATUS_CREATED, HTTP_STATUS_OK } from '@/shared/statusCodes'\nimport { AnzuApiResponseCodeError } from '@/shared/error/AnzuApiResponseCodeError'\nimport { damFileTypeFix } from '@/domains/ui/file/utils/fileType'\nimport type { AssetFileImage } from '@/domains/dam/types/AssetFile'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport type { DamImageCopyToLicenceRequest, DamImageCopyToLicenceResponse } from '@/domains/dam/types/Asset'\nimport { useSentry } from '@/domains/system/composables/sentry'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport { requestedUrl } from '@/domains/api/composables/request'\nimport { mapApiError, report } from '@/domains/api/utils/apiErrors'\n\nconst CHUNK_UPLOAD_TIMEOUT = 420\n\n// `optionalBody` for the same reason as `fetchImage`: the callers here read the result as \"no file\"\n// rather than as a failure, and normalising to `null` keeps their `isNull` guards honest.\nexport const fetchImageFile = async (client: () => AxiosInstance, endPoint: string, id: DocId) => {\n const { execute } = useApiRequest<AssetFileImage, null>({\n client,\n method: 'GET',\n system: SYSTEM_CORE_DAM,\n entity: 'asset',\n urlTemplate: endPoint + '/:id',\n optionalBody: true,\n })\n\n return (await execute({ urlParams: { id } })) ?? null\n}\n\nexport const imageUploadStart = (client: () => AxiosInstance, endPoint: string, item: UploadQueueItem) => {\n return new Promise((resolve, reject) => {\n let url = endPoint + '/licence/' + item.licenceId\n if (item.type === UploadQueueItemType.SlotFile && item.slotName && item.assetId) {\n url = endPoint + '/asset/' + item.assetId + '/slot-name/' + item.slotName\n }\n client()\n .post(\n url,\n JSON.stringify({\n mimeType: damFileTypeFix(item.file),\n size: item.file?.size,\n })\n )\n .then((res) => {\n if (res.status === HTTP_STATUS_CREATED) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nexport const imageUploadChunk = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n imageId: DocId,\n buffer: Blob | File,\n size: number,\n offset: number,\n onUploadProgressCallback: ((progressEvent: any) => void) | undefined = undefined\n) => {\n return new Promise((resolve, reject) => {\n const { logMessage, logError } = useSentry()\n\n // Validate buffer\n if (!(buffer instanceof Blob) || buffer.size === 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_buffer',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n bufferType: typeof buffer,\n bufferInstanceOfBlob: buffer instanceof Blob,\n bufferInstanceOfFile: buffer instanceof File,\n bufferSize: buffer instanceof Blob ? buffer.size : 'N/A',\n },\n })\n reject(new Error('Invalid buffer: must be a non-empty Blob or File'))\n return\n }\n\n // Validate size\n if (typeof size !== 'number' || !Number.isInteger(size) || size <= 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_size',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n sizeType: typeof size,\n isInteger: Number.isInteger(size),\n },\n })\n reject(new Error('Invalid size: must be a positive integer'))\n return\n }\n\n // Validate offset\n if (typeof offset !== 'number' || !Number.isInteger(offset) || offset < 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_offset',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n offsetType: typeof offset,\n isInteger: Number.isInteger(offset),\n },\n })\n reject(new Error('Invalid offset: must be a non-negative integer'))\n return\n }\n\n const formData = new FormData()\n const url = endPoint + '/' + imageId + '/chunk'\n formData.append('file', buffer)\n let chunkData = ''\n try {\n chunkData = JSON.stringify({\n offset: offset,\n size: size,\n })\n } catch (error) {\n logError(error as any, {\n tags: {\n error_type: 'dam_upload_chunk_stringify',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n offsetType: typeof offset,\n offsetIsInteger: Number.isInteger(offset),\n sizeType: typeof size,\n sizeIsInteger: Number.isInteger(size),\n },\n })\n reject(error)\n return\n }\n\n formData.append('chunk', chunkData)\n\n client()\n .post(url, formData, {\n headers: {\n 'Content-Type': undefined, // Let Axios automatically set multipart/form-data with boundary\n },\n timeout: CHUNK_UPLOAD_TIMEOUT * 1000,\n signal: item.latestChunkAbortController?.signal,\n onUploadProgress: onUploadProgressCallback,\n })\n .then((res) => {\n if (res.status === HTTP_STATUS_CREATED) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n // Check for 400 Bad Request error\n if (axios.isAxiosError(err) && err.response?.status === 400) {\n logError(err, {\n tags: {\n error_type: 'dam_upload_chunk_400',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n responseData: err.response.data,\n responseStatus: err.response.status,\n responseStatusText: err.response.statusText,\n chunkData,\n },\n })\n }\n reject(err)\n })\n })\n}\n\nexport const imageUploadFinish = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n sha: string\n) => {\n return new Promise((resolve, reject) => {\n const url = endPoint + '/' + item.fileId + '/uploaded'\n client()\n .patch(\n url,\n JSON.stringify({\n checksum: sha,\n })\n )\n .then((res) => {\n if (res.status === HTTP_STATUS_OK) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nexport const rotateImage = (client: () => AxiosInstance, endPoint: string, imageId: DocId, angle: 90 | 270) => {\n return new Promise((resolve, reject) => {\n const url = endPoint + '/' + imageId + '/rotate/' + angle\n client()\n .patch(url)\n .then((res) => {\n if (res.status === HTTP_STATUS_OK) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nconst COPY_TO_LICENCE_MAX_LIMIT = 50\nconst COPY_TO_LICENCE_API_LIMIT = 20\n\nexport const copyToLicence = async (\n client: () => AxiosInstance,\n endPoint: string,\n items: DamImageCopyToLicenceRequest\n): Promise<DamImageCopyToLicenceResponse> => {\n if (items.length > COPY_TO_LICENCE_MAX_LIMIT) {\n return Promise.reject('Exceeded max limit')\n }\n\n const url = endPoint + '/copy-to-licence'\n\n const chunkArray = <T>(arr: T[], chunkSize: number): T[][] => {\n return Array.from({ length: Math.ceil(arr.length / chunkSize) }, (_, i) =>\n arr.slice(i * chunkSize, i * chunkSize + chunkSize)\n )\n }\n\n const itemChunks = chunkArray(items, COPY_TO_LICENCE_API_LIMIT)\n\n try {\n const responses = await Promise.all(\n itemChunks.map((chunk) =>\n client()\n .patch(url, JSON.stringify(chunk))\n .then((res) => {\n // A success that is not \"ok\" carries no list of what was copied: a request that failed, not an\n // empty answer whose assets would be left out without a word.\n if (res.status !== HTTP_STATUS_OK) throw new AnzuApiResponseCodeError(res.status)\n return res.data\n })\n )\n )\n\n return responses.flat()\n } catch (error) {\n // The class the widgets' error alert knows, where the bare error of axios passed it by without a word; a\n // request that was stopped becomes the one it keeps quiet about. Handed to the api error logger as every\n // other request of the family is.\n const context = { system: SYSTEM_CORE_DAM, entity: 'asset', url: requestedUrl(client, url, {}, error) }\n return Promise.reject(report(mapApiError(error, context), context))\n }\n}\n"],"mappings":";;;;;;;;;;;AAeA,IAAMC,IAAuB,KAIhBC,IAAiB,OAAO,GAA6B,GAAkB,MAAc;CAChG,IAAM,EAAE,eAAYC,EAAoC;EACtD;EACA,QAAQ;EACR,QAAQC;EACR,QAAQ;EACR,aAAaC,IAAW;EACxB,cAAc;CAChB,CAAC;CAED,OAAQ,MAAMC,EAAQ,EAAE,WAAW,EAAE,MAAG,EAAE,CAAC,KAAM;AACnD,GAEaC,KAAoB,GAA6B,GAAkB,MACvE,IAAI,SAAS,GAAS,MAAW;CACtC,IAAIC,IAAMH,IAAW,cAAcI,EAAK;CAIxC,AAHIA,EAAK,SAASC,EAAoB,YAAYD,EAAK,YAAYA,EAAK,YACtE,IAAMJ,IAAW,YAAYI,EAAK,UAAU,gBAAgBA,EAAK,WAEnEE,EAAO,CAAC,CACL,KACCH,GACA,KAAK,UAAU;EACb,UAAUI,EAAeH,EAAK,IAAI;EAClC,MAAMA,EAAK,MAAM;CACnB,CAAC,CACH,CAAC,CACA,MAAM,MAAQ;EACb,AAAII,EAAI,WAAA,MACNC,EAAQD,EAAI,IAAI,IAGhBE,EAAO;CAEX,CAAC,CAAC,CACD,OAAO,MAAQ;EAEd,EAAOC,CAAG;CACZ,CAAC;AACL,CAAC,GAGUC,KACX,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAAuE,KAAA,MAEhE,IAAI,SAAS,GAAS,MAAW;CACtC,IAAM,EAAE,eAAY,gBAAaC,EAAU;CAG3C,IAAI,EAAEC,aAAkB,SAASA,EAAO,SAAS,GAAG;EAkBlD,AAjBAC,EAAW,+BAA+B,SAAS;GACjD,MAAM,EACJ,YAAY,qCACd;GACA,OAAO;IACL,MAAMX,EAAK;IACX,WAAWA,EAAK;IAChB,iBAAiBA,EAAK;IACtB;IACA;IACA;IACA,YAAY,OAAOU;IACnB,sBAAsBA,aAAkB;IACxC,sBAAsBA,aAAkB;IACxC,YAAYA,aAAkB,OAAOA,EAAO,OAAO;GACrD;EACF,CAAC,GACDJ,EAAO,gBAAI,MAAM,kDAAkD,CAAC;EACpE;CACF;CAGA,IAAI,OAAOM,KAAS,YAAY,CAAC,OAAO,UAAUA,CAAI,KAAKA,KAAQ,GAAG;EAgBpE,AAfAD,EAAW,+BAA+B,SAAS;GACjD,MAAM,EACJ,YAAY,mCACd;GACA,OAAO;IACL,MAAMX,EAAK;IACX,WAAWA,EAAK;IAChB,iBAAiBA,EAAK;IACtB;IACA;IACA;IACA,UAAU,OAAOY;IACjB,WAAW,OAAO,UAAUA,CAAI;GAClC;EACF,CAAC,GACDN,EAAO,gBAAI,MAAM,0CAA0C,CAAC;EAC5D;CACF;CAGA,IAAI,OAAOO,KAAW,YAAY,CAAC,OAAO,UAAUA,CAAM,KAAKA,IAAS,GAAG;EAgBzE,AAfAF,EAAW,+BAA+B,SAAS;GACjD,MAAM,EACJ,YAAY,qCACd;GACA,OAAO;IACL,MAAMX,EAAK;IACX,WAAWA,EAAK;IAChB,iBAAiBA,EAAK;IACtB;IACA;IACA;IACA,YAAY,OAAOa;IACnB,WAAW,OAAO,UAAUA,CAAM;GACpC;EACF,CAAC,GACDP,EAAO,gBAAI,MAAM,gDAAgD,CAAC;EAClE;CACF;CAEA,IAAMQ,IAAW,IAAI,SAAS,GACxBf,IAAMH,IAAW,MAAMmB,IAAU;CACvC,EAAS,OAAO,QAAQL,CAAM;CAC9B,IAAIM,IAAY;CAChB,IAAI;EACF,IAAY,KAAK,UAAU;GACjB;GACF;EACR,CAAC;CACH,SAASC,GAAO;EAkBd,AAjBAC,EAASD,GAAc;GACrB,MAAM,EACJ,YAAY,6BACd;GACA,OAAO;IACL,MAAMjB,EAAK;IACX,WAAWA,EAAK;IAChB,iBAAiBA,EAAK;IACtB;IACA;IACA;IACA,YAAY,OAAOa;IACnB,iBAAiB,OAAO,UAAUA,CAAM;IACxC,UAAU,OAAOD;IACjB,eAAe,OAAO,UAAUA,CAAI;GACtC;EACF,CAAC,GACDN,EAAOW,CAAK;EACZ;CACF;CAIA,AAFAH,EAAS,OAAO,SAASE,CAAS,GAElCd,EAAO,CAAC,CACL,KAAKH,GAAKe,GAAU;EACnB,SAAS,EACP,gBAAgB,KAAA,EAClB;EACA,SAAStB,IAAuB;EAChC,QAAQQ,EAAK,4BAA4B;EACzC,kBAAkBmB;CACpB,CAAC,CAAC,CACD,MAAM,MAAQ;EACb,AAAIf,EAAI,WAAA,MACNC,EAAQD,EAAI,IAAI,IAGhBE,EAAO;CAEX,CAAC,CAAC,CACD,OAAO,MAAQ;EAqBd,AAnBIf,EAAM,aAAagB,CAAG,KAAKA,EAAI,UAAU,WAAW,OACtDW,EAASX,GAAK;GACZ,MAAM,EACJ,YAAY,uBACd;GACA,OAAO;IACL,MAAMP,EAAK;IACX,WAAWA,EAAK;IAChB,iBAAiBA,EAAK;IACtB;IACA;IACA;IACA,cAAcO,EAAI,SAAS;IAC3B,gBAAgBA,EAAI,SAAS;IAC7B,oBAAoBA,EAAI,SAAS;IACjC;GACF;EACF,CAAC,GAEHD,EAAOC,CAAG;CACZ,CAAC;AACL,CAAC,GAGUa,KACX,GACA,GACA,GACA,MAEO,IAAI,SAAS,GAAS,MAAW;CACtC,IAAMrB,IAAMH,IAAW,MAAMI,EAAK,SAAS;CAC3C,EAAO,CAAC,CACL,MACCD,GACA,KAAK,UAAU,EACb,UAAUsB,EACZ,CAAC,CACH,CAAC,CACA,MAAM,MAAQ;EACb,AAAIjB,EAAI,WAAA,MACNC,EAAQD,EAAI,IAAI,IAGhBE,EAAO;CAEX,CAAC,CAAC,CACD,OAAO,MAAQ;EAEd,EAAOC,CAAG;CACZ,CAAC;AACL,CAAC,GAGUe,KAAe,GAA6B,GAAkB,GAAgB,MAClF,IAAI,SAAS,GAAS,MAAW;CACtC,IAAMvB,IAAMH,IAAW,MAAMmB,IAAU,aAAaQ;CACpD,EAAO,CAAC,CACL,MAAMxB,CAAG,CAAC,CACV,MAAM,MAAQ;EACb,AAAIK,EAAI,WAAA,MACNC,EAAQD,EAAI,IAAI,IAGhBE,EAAO;CAEX,CAAC,CAAC,CACD,OAAO,MAAQ;EAEd,EAAOC,CAAG;CACZ,CAAC;AACL,CAAC,GAGGiB,IAA4B,IAC5BC,IAA4B,IAErBC,IAAgB,OAC3B,GACA,GACA,MAC2C;CAC3C,IAAIC,EAAM,SAASH,GACjB,OAAO,QAAQ,OAAO,oBAAoB;CAG5C,IAAMzB,IAAMH,IAAW,oBAQjBgC,MANiB,GAAU,MACxB,MAAM,KAAK,EAAE,QAAQ,KAAK,KAAKC,EAAI,SAASC,CAAS,EAAE,IAAI,GAAG,MACnED,EAAI,MAAME,IAAID,GAAWC,IAAID,IAAYA,CAAS,CACpD,EAGiB,CAAWH,GAAOF,CAAyB;CAE9D,IAAI;EAcF,QAAO,MAbiB,QAAQ,IAC9BG,EAAW,KAAK,MACd1B,EAAO,CAAC,CACL,MAAMH,GAAK,KAAK,UAAUiC,CAAK,CAAC,CAAC,CACjC,MAAM,MAAQ;GAGb,IAAI5B,EAAI,WAAA,KAA2B,MAAM,IAAI6B,EAAyB7B,EAAI,MAAM;GAChF,OAAOA,EAAI;EACb,CAAC,CACL,CACF,EAAA,CAEiB,KAAK;CACxB,SAASa,GAAO;EAId,IAAMiB,IAAU;GAAE,QAAQvC;GAAiB,QAAQ;GAAS,KAAKwC,EAAajC,GAAQH,GAAK,CAAC,GAAGkB,CAAK;EAAE;EACtG,OAAO,QAAQ,OAAOmB,EAAOC,EAAYpB,GAAOiB,CAAO,GAAGA,CAAO,CAAC;CACpE;AACF"}
|
|
1
|
+
{"version":3,"file":"damImageApi.js","names":["axios","CHUNK_UPLOAD_TIMEOUT","fetchImageFile","useApiRequest","SYSTEM_CORE_DAM","endPoint","execute","imageUploadStart","url","item","UploadQueueItemType","client","damFileTypeFix","res","resolve","reject","err","imageUploadChunk","useSentry","buffer","logMessage","size","offset","formData","imageId","chunkData","error","logError","onUploadProgressCallback","imageUploadFinish","sha","rotateImage","angle","COPY_TO_LICENCE_MAX_LIMIT","COPY_TO_LICENCE_API_LIMIT","copyToLicence","items","itemChunks","arr","chunkSize","i","chunk","AnzuApiResponseCodeError","context","requestedUrl","report","mapApiError"],"sources":["../../../../src/domains/dam/api/damImageApi.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport axios from 'axios'\nimport { type UploadQueueItem, UploadQueueItemType } from '@/domains/dam/types/UploadQueue'\nimport type { DocId } from '@/shared/types/common'\nimport { HTTP_STATUS_CREATED, HTTP_STATUS_OK } from '@/shared/statusCodes'\nimport { AnzuApiResponseCodeError } from '@/shared/error/AnzuApiResponseCodeError'\nimport { damFileTypeFix } from '@/domains/ui/file/utils/fileType'\nimport type { AssetFileImage } from '@/domains/dam/types/AssetFile'\nimport { SYSTEM_CORE_DAM } from '@/domains/dam/api/damConstants'\nimport type { DamImageCopyToLicenceRequest, DamImageCopyToLicenceResponse } from '@/domains/dam/types/Asset'\nimport { useSentry } from '@/domains/system/composables/sentry'\nimport { useApiRequest } from '@/domains/api/composables/useApiRequest'\nimport { requestedUrl } from '@/domains/api/composables/request'\nimport { mapApiError, report } from '@/domains/api/utils/apiErrors'\n\nconst CHUNK_UPLOAD_TIMEOUT = 420\n\n// `optionalBody` for the same reason as `fetchImage`: callers treat the result as \"no file\", not a failure.\n// Normalising to `null` keeps their `isNull` guards correct.\nexport const fetchImageFile = async (client: () => AxiosInstance, endPoint: string, id: DocId) => {\n const { execute } = useApiRequest<AssetFileImage, null>({\n client,\n method: 'GET',\n system: SYSTEM_CORE_DAM,\n entity: 'asset',\n urlTemplate: endPoint + '/:id',\n optionalBody: true,\n })\n\n return (await execute({ urlParams: { id } })) ?? null\n}\n\nexport const imageUploadStart = (client: () => AxiosInstance, endPoint: string, item: UploadQueueItem) => {\n return new Promise((resolve, reject) => {\n let url = endPoint + '/licence/' + item.licenceId\n if (item.type === UploadQueueItemType.SlotFile && item.slotName && item.assetId) {\n url = endPoint + '/asset/' + item.assetId + '/slot-name/' + item.slotName\n }\n client()\n .post(\n url,\n JSON.stringify({\n mimeType: damFileTypeFix(item.file),\n size: item.file?.size,\n })\n )\n .then((res) => {\n if (res.status === HTTP_STATUS_CREATED) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nexport const imageUploadChunk = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n imageId: DocId,\n buffer: Blob | File,\n size: number,\n offset: number,\n onUploadProgressCallback: ((progressEvent: any) => void) | undefined = undefined\n) => {\n return new Promise((resolve, reject) => {\n const { logMessage, logError } = useSentry()\n\n // Validate buffer\n if (!(buffer instanceof Blob) || buffer.size === 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_buffer',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n bufferType: typeof buffer,\n bufferInstanceOfBlob: buffer instanceof Blob,\n bufferInstanceOfFile: buffer instanceof File,\n bufferSize: buffer instanceof Blob ? buffer.size : 'N/A',\n },\n })\n reject(new Error('Invalid buffer: must be a non-empty Blob or File'))\n return\n }\n\n // Validate size\n if (typeof size !== 'number' || !Number.isInteger(size) || size <= 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_size',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n sizeType: typeof size,\n isInteger: Number.isInteger(size),\n },\n })\n reject(new Error('Invalid size: must be a positive integer'))\n return\n }\n\n // Validate offset\n if (typeof offset !== 'number' || !Number.isInteger(offset) || offset < 0) {\n logMessage('dam_upload_chunk_validation', 'error', {\n tags: {\n error_type: 'dam_upload_chunk_validation_offset',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n offsetType: typeof offset,\n isInteger: Number.isInteger(offset),\n },\n })\n reject(new Error('Invalid offset: must be a non-negative integer'))\n return\n }\n\n const formData = new FormData()\n const url = endPoint + '/' + imageId + '/chunk'\n formData.append('file', buffer)\n let chunkData = ''\n try {\n chunkData = JSON.stringify({\n offset: offset,\n size: size,\n })\n } catch (error) {\n logError(error as any, {\n tags: {\n error_type: 'dam_upload_chunk_stringify',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n offsetType: typeof offset,\n offsetIsInteger: Number.isInteger(offset),\n sizeType: typeof size,\n sizeIsInteger: Number.isInteger(size),\n },\n })\n reject(error)\n return\n }\n\n formData.append('chunk', chunkData)\n\n client()\n .post(url, formData, {\n headers: {\n 'Content-Type': undefined, // Let Axios automatically set multipart/form-data with boundary\n },\n timeout: CHUNK_UPLOAD_TIMEOUT * 1000,\n signal: item.latestChunkAbortController?.signal,\n onUploadProgress: onUploadProgressCallback,\n })\n .then((res) => {\n if (res.status === HTTP_STATUS_CREATED) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n // Check for 400 Bad Request error\n if (axios.isAxiosError(err) && err.response?.status === 400) {\n logError(err, {\n tags: {\n error_type: 'dam_upload_chunk_400',\n },\n extra: {\n type: item.assetType,\n chunkSize: item.chunkSize,\n chunkTotalCount: item.chunkTotalCount,\n imageId,\n offset,\n size,\n responseData: err.response.data,\n responseStatus: err.response.status,\n responseStatusText: err.response.statusText,\n chunkData,\n },\n })\n }\n reject(err)\n })\n })\n}\n\nexport const imageUploadFinish = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n sha: string\n) => {\n return new Promise((resolve, reject) => {\n const url = endPoint + '/' + item.fileId + '/uploaded'\n client()\n .patch(\n url,\n JSON.stringify({\n checksum: sha,\n })\n )\n .then((res) => {\n if (res.status === HTTP_STATUS_OK) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nexport const rotateImage = (client: () => AxiosInstance, endPoint: string, imageId: DocId, angle: 90 | 270) => {\n return new Promise((resolve, reject) => {\n const url = endPoint + '/' + imageId + '/rotate/' + angle\n client()\n .patch(url)\n .then((res) => {\n if (res.status === HTTP_STATUS_OK) {\n resolve(res.data)\n } else {\n //\n reject()\n }\n })\n .catch((err) => {\n //\n reject(err)\n })\n })\n}\n\nconst COPY_TO_LICENCE_MAX_LIMIT = 50\nconst COPY_TO_LICENCE_API_LIMIT = 20\n\nexport const copyToLicence = async (\n client: () => AxiosInstance,\n endPoint: string,\n items: DamImageCopyToLicenceRequest\n): Promise<DamImageCopyToLicenceResponse> => {\n if (items.length > COPY_TO_LICENCE_MAX_LIMIT) {\n return Promise.reject('Exceeded max limit')\n }\n\n const url = endPoint + '/copy-to-licence'\n\n const chunkArray = <T>(arr: T[], chunkSize: number): T[][] => {\n return Array.from({ length: Math.ceil(arr.length / chunkSize) }, (_, i) =>\n arr.slice(i * chunkSize, i * chunkSize + chunkSize)\n )\n }\n\n const itemChunks = chunkArray(items, COPY_TO_LICENCE_API_LIMIT)\n\n try {\n const responses = await Promise.all(\n itemChunks.map((chunk) =>\n client()\n .patch(url, JSON.stringify(chunk))\n .then((res) => {\n // A non-200 success carries no list of copied assets. Treat it\n // as a failure, not an empty answer that silently drops assets.\n if (res.status !== HTTP_STATUS_OK) throw new AnzuApiResponseCodeError(res.status)\n return res.data\n })\n )\n )\n\n return responses.flat()\n } catch (error) {\n // Map to the error class the widgets' error alert understands; it ignored the raw axios error.\n // An aborted request maps to the class the alert stays quiet about.\n // Reported to the api error logger like every other request of this family.\n const context = { system: SYSTEM_CORE_DAM, entity: 'asset', url: requestedUrl(client, url, {}, error) }\n return Promise.reject(report(mapApiError(error, context), context))\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadApi.js","names":["damUploadStart","item","DamAssetType","imageUploadStart","client","endPoint","res","reject","err","damUploadChunk","imageUploadChunk","imageId","buffer","size","offset","onUploadProgressCallback","damUploadFinish","imageUploadFinish","endPointImage","sha","UploadQueueItemStatus","resolve"],"sources":["../../../../src/domains/dam/api/uploadApi.ts"],"sourcesContent":["import { DamAssetType } from '@/domains/dam/types/Asset'\nimport {\n type DamUploadStartResponse,\n type UploadQueueItem,\n UploadQueueItemStatus,\n} from '@/domains/dam/types/UploadQueue'\nimport { imageUploadChunk, imageUploadFinish, imageUploadStart } from '@/domains/dam/api/damImageApi'\nimport type { AxiosInstance } from 'axios'\nimport type { DocId } from '@/shared/types/common'\n\nexport const damUploadStart: (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem\n) => Promise<DamUploadStartResponse> = (client: () => AxiosInstance, endPoint: string, item: UploadQueueItem) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadStart(client, endPoint, item)\n .then((res) => {\n resolve(res as DamUploadStartResponse)\n return\n })\n .catch((err) => reject(err))\n })\n}\n\nexport const damUploadChunk = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n imageId: DocId,\n buffer: Blob | File,\n size: number,\n offset: number,\n onUploadProgressCallback: any\n) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadChunk(client, endPoint, item, imageId, buffer, size, offset, onUploadProgressCallback)\n .then((res) => {\n resolve(res)\n })\n .catch((err) => {\n reject(err)\n })\n })\n}\n\nexport const damUploadFinish = (\n client: () => AxiosInstance,\n endPointImage: string,\n item: UploadQueueItem,\n sha: string\n) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadFinish(client, endPointImage, item, sha)\n .then((res) => {\n // Only an item still
|
|
1
|
+
{"version":3,"file":"uploadApi.js","names":["damUploadStart","item","DamAssetType","imageUploadStart","client","endPoint","res","reject","err","damUploadChunk","imageUploadChunk","imageId","buffer","size","offset","onUploadProgressCallback","damUploadFinish","imageUploadFinish","endPointImage","sha","UploadQueueItemStatus","resolve"],"sources":["../../../../src/domains/dam/api/uploadApi.ts"],"sourcesContent":["import { DamAssetType } from '@/domains/dam/types/Asset'\nimport {\n type DamUploadStartResponse,\n type UploadQueueItem,\n UploadQueueItemStatus,\n} from '@/domains/dam/types/UploadQueue'\nimport { imageUploadChunk, imageUploadFinish, imageUploadStart } from '@/domains/dam/api/damImageApi'\nimport type { AxiosInstance } from 'axios'\nimport type { DocId } from '@/shared/types/common'\n\nexport const damUploadStart: (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem\n) => Promise<DamUploadStartResponse> = (client: () => AxiosInstance, endPoint: string, item: UploadQueueItem) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadStart(client, endPoint, item)\n .then((res) => {\n resolve(res as DamUploadStartResponse)\n return\n })\n .catch((err) => reject(err))\n })\n}\n\nexport const damUploadChunk = (\n client: () => AxiosInstance,\n endPoint: string,\n item: UploadQueueItem,\n imageId: DocId,\n buffer: Blob | File,\n size: number,\n offset: number,\n onUploadProgressCallback: any\n) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadChunk(client, endPoint, item, imageId, buffer, size, offset, onUploadProgressCallback)\n .then((res) => {\n resolve(res)\n })\n .catch((err) => {\n reject(err)\n })\n })\n}\n\nexport const damUploadFinish = (\n client: () => AxiosInstance,\n endPointImage: string,\n item: UploadQueueItem,\n sha: string\n) => {\n return new Promise((resolve, reject) => {\n if (item.assetType !== DamAssetType.Image) {\n reject()\n return\n }\n imageUploadFinish(client, endPointImage, item, sha)\n .then((res) => {\n // Only an item still uploading. One stopped while the finish request ran stays stopped.\n // One whose notification settled it meanwhile stays settled.\n if (item.status === UploadQueueItemStatus.Uploading) item.status = UploadQueueItemStatus.Processing\n resolve(res)\n })\n .catch((err) => reject(err))\n })\n}\n"],"mappings":";;;;AAUA,IAAaA,KAI2B,GAA6B,GAAkB,MAC9E,IAAI,SAAS,GAAS,MAAW;CACtC,AAAIC,EAAK,cAAcC,EAAa,QAIpCC,EAAiBC,GAAQC,GAAUJ,CAAI,CAAC,CACrC,MAAM,MAAQ;EACb,EAAQK,CAA6B;CAEvC,CAAC,CAAC,CACD,OAAO,MAAQC,EAAOC,CAAG,CAAC,IAR3BD,EAAO;AASX,CAAC,GAGUE,KACX,GACA,GACA,GACA,GACA,GACA,GACA,GACA,MAEO,IAAI,SAAS,GAAS,MAAW;CACtC,AAAIR,EAAK,cAAcC,EAAa,QAIpCQ,EAAiBN,GAAQC,GAAUJ,GAAMU,GAASC,GAAQC,GAAMC,GAAQC,CAAwB,CAAC,CAC9F,MAAM,MAAQ;EACb,EAAQT,CAAG;CACb,CAAC,CAAC,CACD,OAAO,MAAQ;EACd,EAAOE,CAAG;CACZ,CAAC,IATDD,EAAO;AAUX,CAAC,GAGUS,KACX,GACA,GACA,GACA,MAEO,IAAI,SAAS,GAAS,MAAW;CACtC,AAAIf,EAAK,cAAcC,EAAa,QAIpCe,EAAkBb,GAAQc,GAAejB,GAAMkB,CAAG,CAAC,CAChD,MAAM,MAAQ;EAIb,AADIlB,EAAK,WAAWmB,EAAsB,cAAW,EAAK,SAASA,EAAsB,aACzFC,EAAQf,CAAG;CACb,CAAC,CAAC,CACD,OAAO,MAAQC,EAAOC,CAAG,CAAC,IAV3BD,EAAO;AAWX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetCustomMetadataForm.js","names":["_sfc_main","AssetCustomMetadataForm_vue_vue_type_script_setup_true_lang_default","AssetCustomMetadataForm_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataForm from '@/domains/customDataForm/components/ACustomDataForm.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n dataCy?: string\n readonly?: boolean\n validationScope?: ValidationScope\n /** The DAM configuration whose forms it shows; inherited when not given. */\n configName?: string\n }>(),\n {\n dataCy: undefined,\n readonly: false,\n validationScope: ADamAssetMetadataValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'anyChange'): void\n}>()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\nconst { getDamConfigAssetCustomFormElements, getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n//
|
|
1
|
+
{"version":3,"file":"AssetCustomMetadataForm.js","names":["_sfc_main","AssetCustomMetadataForm_vue_vue_type_script_setup_true_lang_default","AssetCustomMetadataForm_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataForm from '@/domains/customDataForm/components/ACustomDataForm.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n dataCy?: string\n readonly?: boolean\n validationScope?: ValidationScope\n /** The DAM configuration whose forms it shows; inherited when not given. */\n configName?: string\n }>(),\n {\n dataCy: undefined,\n readonly: false,\n validationScope: ADamAssetMetadataValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'anyChange'): void\n}>()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\nconst { getDamConfigAssetCustomFormElements, getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// When the read of this type failed but other reads succeeded, the type is not loaded.\n// The form shows a notice in place of its fields and still renders the rest, including its slots.\n// Throwing here would also drop the inputs the host puts into the slots.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst { t } = useI18n()\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\n\nif (isUndefined(configExtSystem)) {\n throw new Error('AssetCustomMetadataForm: Ext system must be initialised.')\n}\n\n// Uses the configured number, including 0, which pins no field.\nconst pinnedCount = computed(() => {\n return configExtSystem[props.assetType]?.customMetadataPinnedAmount ?? 2\n})\n</script>\n\n<template>\n <ACustomDataForm\n :model-value=\"modelValue\"\n :pinned-count=\"pinnedCount\"\n :elements=\"elements\"\n :readonly=\"readonly\"\n :validation-scope=\"validationScope\"\n @any-change=\"emit('anyChange')\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <template #after-pinned>\n <slot name=\"after-pinned\" />\n </template>\n <template #before-pinned>\n <slot name=\"before-pinned\" />\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n </template>\n </ACustomDataForm>\n</template>\n"],"mappings":""}
|
|
@@ -13,12 +13,14 @@ type __VLS_Props = {
|
|
|
13
13
|
/** The DAM configuration whose forms it shows; inherited when not given. */
|
|
14
14
|
configName?: string;
|
|
15
15
|
};
|
|
16
|
-
declare
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
} & {
|
|
20
|
-
|
|
16
|
+
declare const __VLS_template: () => {
|
|
17
|
+
__VLS_Slots: {
|
|
18
|
+
'after-pinned'?: (props: {}) => any;
|
|
19
|
+
} & {
|
|
20
|
+
'before-pinned'?: (props: {}) => any;
|
|
21
|
+
};
|
|
21
22
|
};
|
|
23
|
+
type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
|
|
22
24
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
23
25
|
"update:modelValue": (data: any) => any;
|
|
24
26
|
anyChange: () => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","ACustomDataForm","_withCtx","_renderSlot","_createElementBlock","_toDisplayString","_unref","_createCommentVNode","ACustomDataForm_default","_hoisted_1","AssetCustomMetadataForm_vue_vue_type_script_setup_true_lang_default","ADamAssetMetadataValidationScopeSymbol","__emit","props","__props","emit","damConfigName","useDamConfigName","useDamConfigState","configAssetCustomFormElements","getDamConfigAssetCustomFormElements","isUndefined","typeNotLoaded","computed","useI18n","elements","configExtSystem","getDamConfigExtSystem","pinnedCount","openBlock","createBlock","_cache","$event","withCtx","renderSlot","_ctx","createElementBlock","toDisplayString","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataForm from '@/domains/customDataForm/components/ACustomDataForm.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n dataCy?: string\n readonly?: boolean\n validationScope?: ValidationScope\n /** The DAM configuration whose forms it shows; inherited when not given. */\n configName?: string\n }>(),\n {\n dataCy: undefined,\n readonly: false,\n validationScope: ADamAssetMetadataValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'anyChange'): void\n}>()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\nconst { getDamConfigAssetCustomFormElements, getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n//
|
|
1
|
+
{"version":3,"file":"AssetCustomMetadataForm.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","ACustomDataForm","_withCtx","_renderSlot","_createElementBlock","_toDisplayString","_unref","_createCommentVNode","ACustomDataForm_default","_hoisted_1","AssetCustomMetadataForm_vue_vue_type_script_setup_true_lang_default","ADamAssetMetadataValidationScopeSymbol","__emit","props","__props","emit","damConfigName","useDamConfigName","useDamConfigState","configAssetCustomFormElements","getDamConfigAssetCustomFormElements","isUndefined","typeNotLoaded","computed","useI18n","elements","configExtSystem","getDamConfigExtSystem","pinnedCount","openBlock","createBlock","_cache","$event","withCtx","renderSlot","_ctx","createElementBlock","toDisplayString","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetCustomMetadataForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useDamConfigState } from '@/domains/dam/config/composables/damConfigState'\nimport ACustomDataForm from '@/domains/customDataForm/components/ACustomDataForm.vue'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport type { IntegerId } from '@/shared/types/common'\nimport type { ValidationScope } from '@/shared/types/Validation'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n extSystem: IntegerId\n modelValue: { [key: string]: any }\n dataCy?: string\n readonly?: boolean\n validationScope?: ValidationScope\n /** The DAM configuration whose forms it shows; inherited when not given. */\n configName?: string\n }>(),\n {\n dataCy: undefined,\n readonly: false,\n validationScope: ADamAssetMetadataValidationScopeSymbol,\n configName: undefined,\n }\n)\nconst emit = defineEmits<{\n (e: 'update:modelValue', data: any): void\n (e: 'anyChange'): void\n}>()\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\nconst { getDamConfigAssetCustomFormElements, getDamConfigExtSystem } = useDamConfigState(undefined, damConfigName)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configAssetCustomFormElements = getDamConfigAssetCustomFormElements(props.extSystem)\nif (isUndefined(configAssetCustomFormElements)) {\n throw new Error('Custom form elements must be initialised.')\n}\n// When the read of this type failed but other reads succeeded, the type is not loaded.\n// The form shows a notice in place of its fields and still renders the rest, including its slots.\n// Throwing here would also drop the inputs the host puts into the slots.\nconst typeNotLoaded = computed(() => isUndefined(getDamConfigAssetCustomFormElements(props.extSystem, props.assetType)))\n\nconst { t } = useI18n()\n\nconst elements = computed(() => {\n return configAssetCustomFormElements[props.assetType]\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst configExtSystem = getDamConfigExtSystem(props.extSystem)\n\nif (isUndefined(configExtSystem)) {\n throw new Error('AssetCustomMetadataForm: Ext system must be initialised.')\n}\n\n// Uses the configured number, including 0, which pins no field.\nconst pinnedCount = computed(() => {\n return configExtSystem[props.assetType]?.customMetadataPinnedAmount ?? 2\n})\n</script>\n\n<template>\n <ACustomDataForm\n :model-value=\"modelValue\"\n :pinned-count=\"pinnedCount\"\n :elements=\"elements\"\n :readonly=\"readonly\"\n :validation-scope=\"validationScope\"\n @any-change=\"emit('anyChange')\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n >\n <template #after-pinned>\n <slot name=\"after-pinned\" />\n </template>\n <template #before-pinned>\n <slot name=\"before-pinned\" />\n <div\n v-if=\"typeNotLoaded\"\n class=\"text-error my-2\"\n >\n {{ t('common.damImage.error.loadingConfig') }}\n </div>\n </template>\n </ACustomDataForm>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYA,IAAMc,IAAQC,GAkBRC,IAAOH,GAMPI,IAAgBC,EAAiBJ,EAAM,UAAU,GACjD,EAAE,wCAAqC,6BAA0BK,EAAkB,KAAA,GAAWF,CAAa,GAE3GG,IAAgCC,EAAoCP,EAAM,SAAS;EACzF,IAAIQ,EAAYF,CAA6B,GAC3C,MAAU,MAAM,2CAA2C;EAK7D,IAAMG,IAAgBC,QAAeF,EAAYD,EAAoCP,EAAM,WAAWA,EAAM,SAAS,CAAC,CAAC,GAEjH,EAAE,SAAMW,EAAQ,GAEhBC,IAAWF,QACRJ,EAA8BN,EAAM,UAC5C,GAGKa,IAAkBC,EAAsBd,EAAM,SAAS;EAE7D,IAAIQ,EAAYK,CAAe,GAC7B,MAAU,MAAM,0DAA0D;EAI5E,IAAME,IAAcL,QACXG,EAAgBb,EAAM,UAAU,EAAE,8BAA8B,CACxE;E,kBAICd,EAAA,GAAAC,EAqBkBC,GAAA;GApBf,eAAaa,EAAA;GACb,gBAAcc,EAAA;GACd,UAAUH,EAAA;GACV,UAAUX,EAAA;GACV,oBAAkBA,EAAA;GAClB,aAAU,AAAAiB,EAAA,QAAA,MAAEhB,EAAI,WAAA;GAChB,uBAAkB,AAAAgB,EAAA,QAAA,MAAEhB,EAAI,qBAAsBiB,CAAM;;GAE1C,gBAAY9B,QACO,CAA5BC,EAA4BgC,EAAA,QAAA,cAAA,C;GAEnB,iBAAajC,QACO,CAA7BC,EAA6BgC,EAAA,QAAA,eAAA,GAErBb,EAAA,SADRvB,EAAA,GAAAK,EAKM,OALNK,GAKMJ,EADDC,EAAAiC,CAAA,CAAC,CAAA,qCAAA,CAAA,GAAA,CAAA,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailDialog.js","names":["_sfc_main","AssetDetailDialog_vue_vue_type_script_setup_true_lang_default","AssetDetailDialog_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailItemDto, DamAssetType } from '@/domains/dam/types/Asset'\nimport AssetDetailDialogFrame from '@/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue'\nimport AssetDetailDialogSidebar from '@/domains/dam/assetDetail/components/AssetDetailDialogSidebar.vue'\nimport { assetDetailViewOfAsset } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n /** `shown`: the asset the detail showed when it closed
|
|
1
|
+
{"version":3,"file":"AssetDetailDialog.js","names":["_sfc_main","AssetDetailDialog_vue_vue_type_script_setup_true_lang_default","AssetDetailDialog_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailItemDto, DamAssetType } from '@/domains/dam/types/Asset'\nimport AssetDetailDialogFrame from '@/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue'\nimport AssetDetailDialogSidebar from '@/domains/dam/assetDetail/components/AssetDetailDialogSidebar.vue'\nimport { assetDetailViewOfAsset } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n /** `shown`: the asset the detail showed when it closed. Null when closed from its loader or when it showed none. */\n (e: 'close', shown: AssetDetailItemDto | null): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog, loading } = storeToRefs(assetDetailStore)\n\nconst { simpleAssetSidebarEnabled } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst view = computed(() => assetDetailViewOfAsset(asset.value, simpleAssetSidebarEnabled))\n\n// The asset shown when the close button is pressed.\n// Captured before the store is emptied, because the host cannot read it from the store.\nlet shownAtClose: AssetDetailItemDto | null = null\nconst closeDialog = () => {\n shownAtClose = loading.value ? null : asset.value\n assetDetailStore.close()\n shownAtClose = null\n}\n// The store also closes the detail itself after a failed read. The host is told of either close, once.\n// Only a change that removes this detail counts as its close.\n// Until the host re-renders, this dialog still sees the next opening of its host or of another host.\nconst stopTellingHost = watch(\n dialog,\n (_now, before) => {\n if (before === props.queueKey) emit('close', shownAtClose)\n },\n { flush: 'sync' }\n)\n// The store is page-wide. A host unmounted with its detail open would leave its key in the store.\n// The next host with that key then showed the detail at once, unasked.\n// So the detail is closed with its host and its pending read is dropped. The host is not told because it is unmounting.\nonBeforeUnmount(() => {\n stopTellingHost()\n if (dialog.value === props.queueKey) assetDetailStore.close()\n})\n\nconst toolbarTitle = computed(() => {\n if (!asset.value) return ''\n return asset.value.texts.displayTitle\n})\n</script>\n\n<template>\n <AssetDetailDialogFrame\n :loading=\"loading\"\n :view=\"view\"\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n @close=\"closeDialog\"\n >\n <template #title>\n <div>{{ t('common.damImage.asset.detail.sourceSystem') }}: {{ toolbarTitle }}</div>\n </template>\n <template #toolbar-actions>\n <VBtn\n :aria-label=\"t('common.button.close')\"\n icon\n variant=\"text\"\n :width=\"36\"\n :height=\"36\"\n class=\"mr-1\"\n @click.stop=\"closeDialog\"\n >\n <VIcon icon=\"mdi-close\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.button.close') }}\n </VTooltip>\n </VBtn>\n </template>\n <template #sidebar=\"{ view: shown }\">\n <AssetDetailDialogSidebar\n v-if=\"shown.id\"\n :key=\"shown.id\"\n :queue-key=\"queueKey\"\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n :asset-id=\"shown.id\"\n :is-video=\"shown.assetType === DamAssetType.Video\"\n :is-audio=\"shown.assetType === DamAssetType.Audio\"\n :is-image=\"shown.assetType === DamAssetType.Image\"\n :is-document=\"shown.assetType === DamAssetType.Document\"\n :asset-status=\"shown.assetStatus\"\n :asset-type=\"shown.assetType\"\n :asset-main-file-status=\"shown.mainFile ? shown.mainFile.fileAttributes.status : undefined\"\n :asset-main-file-fail-reason=\"shown.mainFile ? shown.mainFile.fileAttributes.failReason : undefined\"\n />\n </template>\n </AssetDetailDialogFrame>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailDialog.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","AssetDetailDialogFrame","_unref","_withCtx","_createElementVNode","_toDisplayString","_createVNode","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","AssetDetailDialogSidebar","_createCommentVNode","AssetDetailDialogFrame_default","AssetDetailDialogSidebar_default","AssetDetailDialog_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","assetDetailStore","useAssetDetailStore","storeToRefs","useCommonAdminCoreDamOptions","view","computed","assetDetailViewOfAsset","asset","simpleAssetSidebarEnabled","shownAtClose","closeDialog","loading","stopTellingHost","watch","dialog","before","toolbarTitle","openBlock","createBlock","unref","withCtx","createElementVNode","toDisplayString","t","createVNode","VBtn","withModifiers","VIcon","VTooltip","createTextVNode","shown","DamAssetType","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailItemDto, DamAssetType } from '@/domains/dam/types/Asset'\nimport AssetDetailDialogFrame from '@/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue'\nimport AssetDetailDialogSidebar from '@/domains/dam/assetDetail/components/AssetDetailDialogSidebar.vue'\nimport { assetDetailViewOfAsset } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n /** `shown`: the asset the detail showed when it closed
|
|
1
|
+
{"version":3,"file":"AssetDetailDialog.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","AssetDetailDialogFrame","_unref","_withCtx","_createElementVNode","_toDisplayString","_createVNode","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","AssetDetailDialogSidebar","_createCommentVNode","AssetDetailDialogFrame_default","AssetDetailDialogSidebar_default","AssetDetailDialog_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","assetDetailStore","useAssetDetailStore","storeToRefs","useCommonAdminCoreDamOptions","view","computed","assetDetailViewOfAsset","asset","simpleAssetSidebarEnabled","shownAtClose","closeDialog","loading","stopTellingHost","watch","dialog","before","toolbarTitle","openBlock","createBlock","unref","withCtx","createElementVNode","toDisplayString","t","createVNode","VBtn","withModifiers","VIcon","VTooltip","createTextVNode","shown","DamAssetType","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailItemDto, DamAssetType } from '@/domains/dam/types/Asset'\nimport AssetDetailDialogFrame from '@/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue'\nimport AssetDetailDialogSidebar from '@/domains/dam/assetDetail/components/AssetDetailDialogSidebar.vue'\nimport { assetDetailViewOfAsset } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n /** `shown`: the asset the detail showed when it closed. Null when closed from its loader or when it showed none. */\n (e: 'close', shown: AssetDetailItemDto | null): void\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, dialog, loading } = storeToRefs(assetDetailStore)\n\nconst { simpleAssetSidebarEnabled } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst view = computed(() => assetDetailViewOfAsset(asset.value, simpleAssetSidebarEnabled))\n\n// The asset shown when the close button is pressed.\n// Captured before the store is emptied, because the host cannot read it from the store.\nlet shownAtClose: AssetDetailItemDto | null = null\nconst closeDialog = () => {\n shownAtClose = loading.value ? null : asset.value\n assetDetailStore.close()\n shownAtClose = null\n}\n// The store also closes the detail itself after a failed read. The host is told of either close, once.\n// Only a change that removes this detail counts as its close.\n// Until the host re-renders, this dialog still sees the next opening of its host or of another host.\nconst stopTellingHost = watch(\n dialog,\n (_now, before) => {\n if (before === props.queueKey) emit('close', shownAtClose)\n },\n { flush: 'sync' }\n)\n// The store is page-wide. A host unmounted with its detail open would leave its key in the store.\n// The next host with that key then showed the detail at once, unasked.\n// So the detail is closed with its host and its pending read is dropped. The host is not told because it is unmounting.\nonBeforeUnmount(() => {\n stopTellingHost()\n if (dialog.value === props.queueKey) assetDetailStore.close()\n})\n\nconst toolbarTitle = computed(() => {\n if (!asset.value) return ''\n return asset.value.texts.displayTitle\n})\n</script>\n\n<template>\n <AssetDetailDialogFrame\n :loading=\"loading\"\n :view=\"view\"\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n @close=\"closeDialog\"\n >\n <template #title>\n <div>{{ t('common.damImage.asset.detail.sourceSystem') }}: {{ toolbarTitle }}</div>\n </template>\n <template #toolbar-actions>\n <VBtn\n :aria-label=\"t('common.button.close')\"\n icon\n variant=\"text\"\n :width=\"36\"\n :height=\"36\"\n class=\"mr-1\"\n @click.stop=\"closeDialog\"\n >\n <VIcon icon=\"mdi-close\" />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.button.close') }}\n </VTooltip>\n </VBtn>\n </template>\n <template #sidebar=\"{ view: shown }\">\n <AssetDetailDialogSidebar\n v-if=\"shown.id\"\n :key=\"shown.id\"\n :queue-key=\"queueKey\"\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n :asset-id=\"shown.id\"\n :is-video=\"shown.assetType === DamAssetType.Video\"\n :is-audio=\"shown.assetType === DamAssetType.Audio\"\n :is-image=\"shown.assetType === DamAssetType.Image\"\n :is-document=\"shown.assetType === DamAssetType.Document\"\n :asset-status=\"shown.assetStatus\"\n :asset-type=\"shown.assetType\"\n :asset-main-file-status=\"shown.mainFile ? shown.mainFile.fileAttributes.status : undefined\"\n :asset-main-file-fail-reason=\"shown.mainFile ? shown.mainFile.fileAttributes.failReason : undefined\"\n />\n </template>\n </AssetDetailDialogFrame>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAcA,IAAMmB,IAAQC,GAWRC,IAAOH,GAKPI,IAAgBC,EAAiBJ,EAAM,UAAU,GAEjD,EAAE,SAAMK,EAAQ,GAEhBC,IAAmBC,EAAoB,GACvC,EAAE,UAAO,WAAQ,eAAYC,EAAYF,CAAgB,GAEzD,EAAE,iCAA8BG,EAA6BN,CAAa,GAE1EO,IAAOC,QAAeC,EAAuBC,EAAM,OAAOC,CAAyB,CAAC,GAItFC,IAA0C,MACxCC,UAAoB;GAGxB,AAFA,IAAeC,EAAQ,QAAQ,OAAOJ,EAAM,OAC5CP,EAAiB,MAAM,GACvB,IAAe;EACjB,GAIMY,IAAkBC,EACtBC,IACC,GAAM,MAAW;GAChB,AAAIC,MAAWrB,EAAM,YAAUE,EAAK,SAASa,CAAY;EAC3D,GACA,EAAE,OAAO,OAAO,CAClB;EAIA,QAAsB;GAEpB,AADAG,EAAgB,GACZE,EAAO,UAAUpB,EAAM,YAAUM,EAAiB,MAAM;EAC9D,CAAC;EAED,IAAMgB,IAAeX,QACdE,EAAM,QACJA,EAAM,MAAM,MAAM,eADA,EAE1B;E,kBAIChC,EAAA,GAAAC,EA+CyBC,GAAA;GA9CtB,SAASC,EAAAiC,CAAA;GACT,MAAMP,EAAA;GACN,cAAYT,EAAA;GACZ,eAAajB,EAAAmB,CAAA;GACb,SAAOa;;GAEG,OAAK/B,QACqE,CAAnFC,EAAmF,OAAA,MAAAC,EAA3EH,EAAA6C,CAAA,CAAC,CAAA,2CAAA,CAAA,IAAgD,OAAE1C,EAAGmC,EAAA,KAAY,GAAA,CAAA,C;GAEjE,mBAAerC,QAiBjB,CAhBPG,EAgBOC,GAAA;IAfJ,cAAYL,EAAA6C,CAAA,CAAC,CAAA,qBAAA;IACd,MAAA;IACA,SAAQ;IACP,OAAO;IACP,QAAQ;IACT,OAAM;IACL,SAAKvC,EAAO0B,GAAW,CAAA,MAAA,CAAA;;IAExB,SAAA/B,QAA0B,CAA1BG,EAA0BG,GAAA,EAAnB,MAAK,YAAW,CAAA,GACvBH,EAKWI,GAAA;KAJT,WAAU;KACV,UAAS;;KAET,SAAAP,QAA8B,CAA3BQ,EAAAN,EAAAH,EAAA6C,CAAA,CAAC,CAAA,qBAAA,CAAA,GAAA,CAAA,C;;;;;GAIC,SAAO5C,GAgBd,EAAA,MAhBwBmD,QAAK,CAEvBA,EAAM,MADdvD,EAAA,GAAAC,EAeEY,GAAA;IAbC,KAAK0C,EAAM;IACX,aAAWnC,EAAA;IACX,cAAYA,EAAA;IACZ,eAAajB,EAAAmB,CAAA;IACb,YAAUiC,EAAM;IAChB,YAAUA,EAAM,cAAcpD,EAAAqD,CAAA,CAAY,CAAC;IAC3C,YAAUD,EAAM,cAAcpD,EAAAqD,CAAA,CAAY,CAAC;IAC3C,YAAUD,EAAM,cAAcpD,EAAAqD,CAAA,CAAY,CAAC;IAC3C,eAAaD,EAAM,cAAcpD,EAAAqD,CAAA,CAAY,CAAC;IAC9C,gBAAcD,EAAM;IACpB,cAAYA,EAAM;IAClB,0BAAwBA,EAAM,WAAWA,EAAM,SAAS,eAAe,SAAS,KAAA;IAChF,+BAA6BA,EAAM,WAAWA,EAAM,SAAS,eAAe,aAAa,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailDialogFrame.js","names":["_sfc_main","AssetDetailDialogFrame_vue_vue_type_script_setup_true_lang_default","AssetDetailDialogFrame_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useTheme } from '@/domains/system/composables/themeSettings'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailView, pictureIsPlaceholder } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport AssetDetailDialogLoader from '@/domains/dam/assetDetail/components/AssetDetailDialogLoader.vue'\nimport AssetImage from '@/domains/dam/assetDetail/components/AssetImage.vue'\nimport DamAssetImageRoiSelectLazy from '@/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue'\nimport { useAuthHelpers } from '@/domains/auth/composables/defineAuth'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n//
|
|
1
|
+
{"version":3,"file":"AssetDetailDialogFrame.js","names":["_sfc_main","AssetDetailDialogFrame_vue_vue_type_script_setup_true_lang_default","AssetDetailDialogFrame_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useTheme } from '@/domains/system/composables/themeSettings'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailView, pictureIsPlaceholder } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport AssetDetailDialogLoader from '@/domains/dam/assetDetail/components/AssetDetailDialogLoader.vue'\nimport AssetImage from '@/domains/dam/assetDetail/components/AssetImage.vue'\nimport DamAssetImageRoiSelectLazy from '@/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue'\nimport { useAuthHelpers } from '@/domains/auth/composables/defineAuth'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n// Shared frame of the asset detail and the single-upload dialog: dialog,\n// toolbar, image or ROI editor on the left, sidebar on the right.\n// Its content comes from the view.\n\nconst props = withDefaults(\n defineProps<{\n loading: boolean\n view: AssetDetailView | null\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'close'): void\n}>()\n\ndefineSlots<{\n title(): unknown\n 'toolbar-actions'(): unknown\n /** Drawn over the image. When given, image and overlay share a positioned box. */\n 'image-overlay'?(): unknown\n sidebar(props: { view: AssetDetailView }): unknown\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\nconst { canSafeHelper } = useAuthHelpers()\nconst { toolbarColor } = useTheme()\n\nconst { activeTab } = storeToRefs(useAssetDetailStore())\n\nconst { roiUpdateAcl } = useCommonAdminCoreDamOptions(damConfigName)\n// The endpoint rejects ROI saves without this permission. The ROI tab then only shows the image.\nconst roiEditable = computed(() => isNull(roiUpdateAcl) || canSafeHelper(roiUpdateAcl, undefined, 'roi'))\n\nconst sidebar = ref(true)\n\nconst toggleSidebar = () => {\n sidebar.value = !sidebar.value\n}\n\nconst picture = computed(() => {\n if (!props.view) return {}\n const { image } = props.view\n return {\n assetType: props.view.assetType,\n assetStatus: props.view.assetStatus,\n src: image.src,\n backgroundColor: image.backgroundColor,\n width: image.width,\n height: image.height,\n showUploading: image.uploading,\n showProcessing: image.processing,\n showWaiting: image.waiting,\n showDone: image.done,\n uploadingProgress: image.progress,\n remainingTime: image.remainingTime,\n aspectRatio: image.aspectRatio,\n useComponent: true,\n }\n})\n</script>\n\n<template>\n <VDialog\n :model-value=\"true\"\n fullscreen\n eager\n >\n <AssetDetailDialogLoader\n v-if=\"loading\"\n @close-dialog=\"emit('close')\"\n />\n <VCard\n v-else-if=\"view\"\n class=\"dam-image-detail\"\n :class=\"{ 'dam-image-detail--sidebar-active': sidebar }\"\n >\n <div class=\"dam-image-detail__wrapper d-flex flex-column\">\n <VToolbar\n :color=\"toolbarColor\"\n density=\"compact\"\n :height=\"64\"\n class=\"border-b pr-1\"\n >\n <div class=\"text-label-large d-flex px-2\">\n <slot name=\"title\" />\n </div>\n <VSpacer />\n <div class=\"pr-2\">\n <VBtn\n :aria-label=\"t('common.damImage.asset.detail.toggleInfo')\"\n :active=\"sidebar\"\n :variant=\"sidebar ? 'flat' : 'text'\"\n :color=\"sidebar ? 'secondary' : ''\"\n icon\n class=\"mr-1\"\n :width=\"36\"\n :height=\"36\"\n @click.stop=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-information-outline\"\n class=\"d-none d-md-flex\"\n />\n <VIcon\n icon=\"mdi-image-outline\"\n class=\"d-flex d-md-none\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.detail.toggleInfo') }}\n </VTooltip>\n </VBtn>\n <slot name=\"toolbar-actions\" />\n </div>\n </VToolbar>\n <div class=\"d-flex w-100 h-100 position-relative dam-image-detail__content\">\n <div class=\"d-flex w-100 align-center dam-image-detail__left\">\n <div\n v-if=\"(activeTab === AssetDetailTabImageWithRoi.ROI && view.roiEditorTab) || view.simpleMode\"\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <DamAssetImageRoiSelectLazy\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n :readonly=\"!roiEditable\"\n />\n </div>\n <div\n v-else\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <!--\n Around the grey placeholder the box fills this area, as the\n placeholder does without an overlay. The overlay covers it.\n Around an image the box keeps the image's size.\n -->\n <div\n v-if=\"$slots['image-overlay']\"\n class=\"position-relative\"\n :class=\"{ 'w-100 h-100 d-flex align-center justify-center': pictureIsPlaceholder(view) }\"\n >\n <AssetImage v-bind=\"picture\" />\n <slot name=\"image-overlay\" />\n </div>\n <AssetImage\n v-else\n v-bind=\"picture\"\n />\n </div>\n </div>\n <div class=\"h-100 d-flex dam-image-detail__sidebar border-s\">\n <slot\n name=\"sidebar\"\n :view=\"view\"\n />\n </div>\n </div>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":""}
|
|
@@ -9,7 +9,7 @@ type __VLS_Props = {
|
|
|
9
9
|
type __VLS_Slots = {
|
|
10
10
|
title(): unknown;
|
|
11
11
|
'toolbar-actions'(): unknown;
|
|
12
|
-
/**
|
|
12
|
+
/** Drawn over the image. When given, image and overlay share a positioned box. */
|
|
13
13
|
'image-overlay'?(): unknown;
|
|
14
14
|
sidebar(props: {
|
|
15
15
|
view: AssetDetailView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js","names":["$slots","_openBlock","_createBlock","_component_VDialog","_withCtx","AssetDetailDialogLoader","_component_VCard","_normalizeClass","_createElementVNode","_createVNode","_component_VToolbar","_unref","_renderSlot","_component_VSpacer","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_createElementBlock","DamAssetImageRoiSelectLazy","AssetImage","_normalizeProps","_guardReactiveProps","_mergeProps","_createCommentVNode","AssetDetailDialogLoader_default","AssetImage_default","DamAssetImageRoiSelectLazy_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","AssetDetailDialogFrame_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","useAuthHelpers","useTheme","storeToRefs","useAssetDetailStore","useCommonAdminCoreDamOptions","roiEditable","computed","isNull","roiUpdateAcl","canSafeHelper","sidebar","ref","toggleSidebar","picture","image","openBlock","createBlock","VDialog","withCtx","_cache","VCard","normalizeClass","createElementVNode","createVNode","VToolbar","unref","toolbarColor","renderSlot","_ctx","VSpacer","VBtn","t","withModifiers","VIcon","VTooltip","createTextVNode","toDisplayString","activeTab","AssetDetailTabImageWithRoi","createElementBlock","pictureIsPlaceholder","normalizeProps","guardReactiveProps","mergeProps","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useTheme } from '@/domains/system/composables/themeSettings'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailView, pictureIsPlaceholder } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport AssetDetailDialogLoader from '@/domains/dam/assetDetail/components/AssetDetailDialogLoader.vue'\nimport AssetImage from '@/domains/dam/assetDetail/components/AssetImage.vue'\nimport DamAssetImageRoiSelectLazy from '@/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue'\nimport { useAuthHelpers } from '@/domains/auth/composables/defineAuth'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n// The frame of the detail of an asset and of the dialog of a single upload: the dialog, its toolbar, the picture or\n// the editor of the region of interest on the left, the sidebar on the right. What it draws comes from the view.\n\nconst props = withDefaults(\n defineProps<{\n loading: boolean\n view: AssetDetailView | null\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'close'): void\n}>()\n\ndefineSlots<{\n title(): unknown\n 'toolbar-actions'(): unknown\n /** Over the picture: given, picture and overlay share a positioned box. */\n 'image-overlay'?(): unknown\n sidebar(props: { view: AssetDetailView }): unknown\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\nconst { canSafeHelper } = useAuthHelpers()\nconst { toolbarColor } = useTheme()\n\nconst { activeTab } = storeToRefs(useAssetDetailStore())\n\nconst { roiUpdateAcl } = useCommonAdminCoreDamOptions(damConfigName)\n// The endpoint refuses the region's save without it: the region tab then only shows the image.\nconst roiEditable = computed(() => isNull(roiUpdateAcl) || canSafeHelper(roiUpdateAcl, undefined, 'roi'))\n\nconst sidebar = ref(true)\n\nconst toggleSidebar = () => {\n sidebar.value = !sidebar.value\n}\n\nconst picture = computed(() => {\n if (!props.view) return {}\n const { image } = props.view\n return {\n assetType: props.view.assetType,\n assetStatus: props.view.assetStatus,\n src: image.src,\n backgroundColor: image.backgroundColor,\n width: image.width,\n height: image.height,\n showUploading: image.uploading,\n showProcessing: image.processing,\n showWaiting: image.waiting,\n showDone: image.done,\n uploadingProgress: image.progress,\n remainingTime: image.remainingTime,\n aspectRatio: image.aspectRatio,\n useComponent: true,\n }\n})\n</script>\n\n<template>\n <VDialog\n :model-value=\"true\"\n fullscreen\n eager\n >\n <AssetDetailDialogLoader\n v-if=\"loading\"\n @close-dialog=\"emit('close')\"\n />\n <VCard\n v-else-if=\"view\"\n class=\"dam-image-detail\"\n :class=\"{ 'dam-image-detail--sidebar-active': sidebar }\"\n >\n <div class=\"dam-image-detail__wrapper d-flex flex-column\">\n <VToolbar\n :color=\"toolbarColor\"\n density=\"compact\"\n :height=\"64\"\n class=\"border-b pr-1\"\n >\n <div class=\"text-label-large d-flex px-2\">\n <slot name=\"title\" />\n </div>\n <VSpacer />\n <div class=\"pr-2\">\n <VBtn\n :aria-label=\"t('common.damImage.asset.detail.toggleInfo')\"\n :active=\"sidebar\"\n :variant=\"sidebar ? 'flat' : 'text'\"\n :color=\"sidebar ? 'secondary' : ''\"\n icon\n class=\"mr-1\"\n :width=\"36\"\n :height=\"36\"\n @click.stop=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-information-outline\"\n class=\"d-none d-md-flex\"\n />\n <VIcon\n icon=\"mdi-image-outline\"\n class=\"d-flex d-md-none\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.detail.toggleInfo') }}\n </VTooltip>\n </VBtn>\n <slot name=\"toolbar-actions\" />\n </div>\n </VToolbar>\n <div class=\"d-flex w-100 h-100 position-relative dam-image-detail__content\">\n <div class=\"d-flex w-100 align-center dam-image-detail__left\">\n <div\n v-if=\"(activeTab === AssetDetailTabImageWithRoi.ROI && view.roiEditorTab) || view.simpleMode\"\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <DamAssetImageRoiSelectLazy\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n :readonly=\"!roiEditable\"\n />\n </div>\n <div\n v-else\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <!-- Around the grey placeholder the box is as large as this area, as the placeholder is without an\n overlay: it fills it, and the overlay covers it. Around a picture it keeps the picture's size. -->\n <div\n v-if=\"$slots['image-overlay']\"\n class=\"position-relative\"\n :class=\"{ 'w-100 h-100 d-flex align-center justify-center': pictureIsPlaceholder(view) }\"\n >\n <AssetImage v-bind=\"picture\" />\n <slot name=\"image-overlay\" />\n </div>\n <AssetImage\n v-else\n v-bind=\"picture\"\n />\n </div>\n </div>\n <div class=\"h-100 d-flex dam-image-detail__sidebar border-s\">\n <slot\n name=\"sidebar\"\n :view=\"view\"\n />\n </div>\n </div>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetDetailDialogFrame.vue_vue_type_script_setup_true_lang.js","names":["$slots","_openBlock","_createBlock","_component_VDialog","_withCtx","AssetDetailDialogLoader","_component_VCard","_normalizeClass","_createElementVNode","_createVNode","_component_VToolbar","_unref","_renderSlot","_component_VSpacer","_component_VBtn","_withModifiers","_component_VIcon","_component_VTooltip","_createTextVNode","_toDisplayString","_createElementBlock","DamAssetImageRoiSelectLazy","AssetImage","_normalizeProps","_guardReactiveProps","_mergeProps","_createCommentVNode","AssetDetailDialogLoader_default","AssetImage_default","DamAssetImageRoiSelectLazy_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","AssetDetailDialogFrame_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","damConfigName","useDamConfigName","useI18n","useAuthHelpers","useTheme","storeToRefs","useAssetDetailStore","useCommonAdminCoreDamOptions","roiEditable","computed","isNull","roiUpdateAcl","canSafeHelper","sidebar","ref","toggleSidebar","picture","image","openBlock","createBlock","VDialog","withCtx","_cache","VCard","normalizeClass","createElementVNode","createVNode","VToolbar","unref","toolbarColor","renderSlot","_ctx","VSpacer","VBtn","t","withModifiers","VIcon","VTooltip","createTextVNode","toDisplayString","activeTab","AssetDetailTabImageWithRoi","createElementBlock","pictureIsPlaceholder","normalizeProps","guardReactiveProps","mergeProps","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailDialogFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { useTheme } from '@/domains/system/composables/themeSettings'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { type AssetDetailView, pictureIsPlaceholder } from '@/domains/dam/assetDetail/composables/assetDetailView'\nimport AssetDetailDialogLoader from '@/domains/dam/assetDetail/components/AssetDetailDialogLoader.vue'\nimport AssetImage from '@/domains/dam/assetDetail/components/AssetImage.vue'\nimport DamAssetImageRoiSelectLazy from '@/domains/dam/cropper/components/DamAssetImageRoiSelectLazy.vue'\nimport { useAuthHelpers } from '@/domains/auth/composables/defineAuth'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport type { IntegerId } from '@/shared/types/common'\nimport { isNull } from '@/shared/utils/common'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n// Shared frame of the asset detail and the single-upload dialog: dialog,\n// toolbar, image or ROI editor on the left, sidebar on the right.\n// Its content comes from the view.\n\nconst props = withDefaults(\n defineProps<{\n loading: boolean\n view: AssetDetailView | null\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n configName: undefined,\n }\n)\n\nconst emit = defineEmits<{\n (e: 'close'): void\n}>()\n\ndefineSlots<{\n title(): unknown\n 'toolbar-actions'(): unknown\n /** Drawn over the image. When given, image and overlay share a positioned box. */\n 'image-overlay'?(): unknown\n sidebar(props: { view: AssetDetailView }): unknown\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\nconst { canSafeHelper } = useAuthHelpers()\nconst { toolbarColor } = useTheme()\n\nconst { activeTab } = storeToRefs(useAssetDetailStore())\n\nconst { roiUpdateAcl } = useCommonAdminCoreDamOptions(damConfigName)\n// The endpoint rejects ROI saves without this permission. The ROI tab then only shows the image.\nconst roiEditable = computed(() => isNull(roiUpdateAcl) || canSafeHelper(roiUpdateAcl, undefined, 'roi'))\n\nconst sidebar = ref(true)\n\nconst toggleSidebar = () => {\n sidebar.value = !sidebar.value\n}\n\nconst picture = computed(() => {\n if (!props.view) return {}\n const { image } = props.view\n return {\n assetType: props.view.assetType,\n assetStatus: props.view.assetStatus,\n src: image.src,\n backgroundColor: image.backgroundColor,\n width: image.width,\n height: image.height,\n showUploading: image.uploading,\n showProcessing: image.processing,\n showWaiting: image.waiting,\n showDone: image.done,\n uploadingProgress: image.progress,\n remainingTime: image.remainingTime,\n aspectRatio: image.aspectRatio,\n useComponent: true,\n }\n})\n</script>\n\n<template>\n <VDialog\n :model-value=\"true\"\n fullscreen\n eager\n >\n <AssetDetailDialogLoader\n v-if=\"loading\"\n @close-dialog=\"emit('close')\"\n />\n <VCard\n v-else-if=\"view\"\n class=\"dam-image-detail\"\n :class=\"{ 'dam-image-detail--sidebar-active': sidebar }\"\n >\n <div class=\"dam-image-detail__wrapper d-flex flex-column\">\n <VToolbar\n :color=\"toolbarColor\"\n density=\"compact\"\n :height=\"64\"\n class=\"border-b pr-1\"\n >\n <div class=\"text-label-large d-flex px-2\">\n <slot name=\"title\" />\n </div>\n <VSpacer />\n <div class=\"pr-2\">\n <VBtn\n :aria-label=\"t('common.damImage.asset.detail.toggleInfo')\"\n :active=\"sidebar\"\n :variant=\"sidebar ? 'flat' : 'text'\"\n :color=\"sidebar ? 'secondary' : ''\"\n icon\n class=\"mr-1\"\n :width=\"36\"\n :height=\"36\"\n @click.stop=\"toggleSidebar\"\n >\n <VIcon\n icon=\"mdi-information-outline\"\n class=\"d-none d-md-flex\"\n />\n <VIcon\n icon=\"mdi-image-outline\"\n class=\"d-flex d-md-none\"\n />\n <VTooltip\n activator=\"parent\"\n location=\"bottom\"\n >\n {{ t('common.damImage.asset.detail.toggleInfo') }}\n </VTooltip>\n </VBtn>\n <slot name=\"toolbar-actions\" />\n </div>\n </VToolbar>\n <div class=\"d-flex w-100 h-100 position-relative dam-image-detail__content\">\n <div class=\"d-flex w-100 align-center dam-image-detail__left\">\n <div\n v-if=\"(activeTab === AssetDetailTabImageWithRoi.ROI && view.roiEditorTab) || view.simpleMode\"\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <DamAssetImageRoiSelectLazy\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n :readonly=\"!roiEditable\"\n />\n </div>\n <div\n v-else\n class=\"w-100 h-100 pa-2 d-flex align-center justify-center\"\n >\n <!--\n Around the grey placeholder the box fills this area, as the\n placeholder does without an overlay. The overlay covers it.\n Around an image the box keeps the image's size.\n -->\n <div\n v-if=\"$slots['image-overlay']\"\n class=\"position-relative\"\n :class=\"{ 'w-100 h-100 d-flex align-center justify-center': pictureIsPlaceholder(view) }\"\n >\n <AssetImage v-bind=\"picture\" />\n <slot name=\"image-overlay\" />\n </div>\n <AssetImage\n v-else\n v-bind=\"picture\"\n />\n </div>\n </div>\n <div class=\"h-100 d-flex dam-image-detail__sidebar border-s\">\n <slot\n name=\"sidebar\"\n :view=\"view\"\n />\n </div>\n </div>\n </div>\n </VCard>\n </VDialog>\n</template>\n"],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@ import { UploadQueueKey } from '../../types/UploadQueue';
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
queueKey: UploadQueueKey;
|
|
4
4
|
};
|
|
5
|
-
declare
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
declare const __VLS_template: () => {
|
|
6
|
+
__VLS_Slots: {
|
|
7
|
+
default?: (props: {}) => any;
|
|
8
|
+
};
|
|
8
9
|
};
|
|
10
|
+
type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
|
|
9
11
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
10
12
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
13
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailSidebarFrame.js","names":["_sfc_main","AssetDetailSidebarFrame_vue_vue_type_script_setup_true_lang_default","AssetDetailSidebarFrame_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport AssetDetailSidebarROI from '@/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue'\nimport AssetDetailSidebarActionsTeleportTarget from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n//
|
|
1
|
+
{"version":3,"file":"AssetDetailSidebarFrame.js","names":["_sfc_main","AssetDetailSidebarFrame_vue_vue_type_script_setup_true_lang_default","AssetDetailSidebarFrame_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport AssetDetailSidebarROI from '@/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue'\nimport AssetDetailSidebarActionsTeleportTarget from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n// Shared sidebar frame of the asset detail and the single-upload\n// dialog: tabs, ROIs and the teleport target for the info tab buttons.\n// Content above the tabs and inside the info tab belongs to each sidebar.\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n configName?: string\n roiTab: boolean\n simpleMode: boolean\n }>(),\n {\n configName: undefined,\n }\n)\n\ndefineSlots<{\n prepend?(): unknown\n info(props: { isActive: boolean }): unknown\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst { activeTab } = storeToRefs(useAssetDetailStore())\n</script>\n\n<template>\n <div\n class=\"sidebar-info d-flex w-100 h-100 flex-column\"\n :class=\"{ 'sidebar-info--no-tabs': simpleMode }\"\n >\n <div class=\"w-100 h-100 d-flex flex-column\">\n <VTabs\n v-if=\"!simpleMode\"\n v-model=\"activeTab\"\n show-arrows\n class=\"sidebar-info__tabs\"\n >\n <VTab\n :value=\"AssetDetailTabImageWithRoi.Info\"\n data-cy=\"button-meta\"\n >\n {{ t('common.damImage.asset.detail.tabs.info') }}\n </VTab>\n <VTab\n v-if=\"roiTab\"\n :value=\"AssetDetailTabImageWithRoi.ROI\"\n data-cy=\"button-focus\"\n >\n {{ t('common.damImage.asset.detail.tabs.roi') }}\n </VTab>\n </VTabs>\n\n <div class=\"sidebar-info__content\">\n <slot name=\"prepend\" />\n <template v-if=\"simpleMode\">\n <div class=\"py-2\">\n <slot\n name=\"info\"\n :is-active=\"true\"\n />\n </div>\n <div class=\"py-2\">\n <AssetDetailSidebarROI\n :is-active=\"true\"\n :queue-key=\"queueKey\"\n :config-name=\"damConfigName\"\n />\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"activeTab === AssetDetailTabImageWithRoi.Info\"\n class=\"py-2\"\n >\n <slot\n name=\"info\"\n :is-active=\"activeTab === AssetDetailTabImageWithRoi.Info\"\n />\n </div>\n <div\n v-if=\"roiTab && activeTab === AssetDetailTabImageWithRoi.ROI\"\n class=\"py-2\"\n >\n <AssetDetailSidebarROI\n :is-active=\"activeTab === AssetDetailTabImageWithRoi.ROI\"\n :queue-key=\"queueKey\"\n :config-name=\"damConfigName\"\n />\n </div>\n </template>\n </div>\n <div class=\"sidebar-info__actions px-2\">\n <AssetDetailSidebarActionsTeleportTarget :queue-key=\"queueKey\" />\n </div>\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js","names":["props","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","_component_VTabs","_unref","_isRef","_withCtx","_createVNode","_component_VTab","_createTextVNode","_toDisplayString","_createCommentVNode","_renderSlot","_Fragment","AssetDetailSidebarROI","AssetDetailSidebarActionsTeleportTarget","AssetDetailSidebarROI_default","AssetDetailSidebarActionsTeleportTarget_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","AssetDetailSidebarFrame_vue_vue_type_script_setup_true_lang_default","damConfigName","useDamConfigName","__props","useI18n","storeToRefs","useAssetDetailStore","openBlock","createElementBlock","normalizeClass","createElementVNode","createCommentVNode","createBlock","VTabs","unref","activeTab","_cache","isRef","$event","withCtx","createVNode","VTab","AssetDetailTabImageWithRoi","createTextVNode","toDisplayString","t","renderSlot","_ctx","Fragment"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport AssetDetailSidebarROI from '@/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue'\nimport AssetDetailSidebarActionsTeleportTarget from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n//
|
|
1
|
+
{"version":3,"file":"AssetDetailSidebarFrame.vue_vue_type_script_setup_true_lang.js","names":["props","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","_component_VTabs","_unref","_isRef","_withCtx","_createVNode","_component_VTab","_createTextVNode","_toDisplayString","_createCommentVNode","_renderSlot","_Fragment","AssetDetailSidebarROI","AssetDetailSidebarActionsTeleportTarget","AssetDetailSidebarROI_default","AssetDetailSidebarActionsTeleportTarget_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","AssetDetailSidebarFrame_vue_vue_type_script_setup_true_lang_default","damConfigName","useDamConfigName","__props","useI18n","storeToRefs","useAssetDetailStore","openBlock","createElementBlock","normalizeClass","createElementVNode","createCommentVNode","createBlock","VTabs","unref","activeTab","_cache","isRef","$event","withCtx","createVNode","VTab","AssetDetailTabImageWithRoi","createTextVNode","toDisplayString","t","renderSlot","_ctx","Fragment"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarFrame.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { storeToRefs } from 'pinia'\nimport { useI18n } from 'vue-i18n'\nimport { AssetDetailTabImageWithRoi, useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport AssetDetailSidebarROI from '@/domains/dam/assetDetail/components/AssetDetailSidebarROI.vue'\nimport AssetDetailSidebarActionsTeleportTarget from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsTeleportTarget.vue'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\n// Shared sidebar frame of the asset detail and the single-upload\n// dialog: tabs, ROIs and the teleport target for the info tab buttons.\n// Content above the tabs and inside the info tab belongs to each sidebar.\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n configName?: string\n roiTab: boolean\n simpleMode: boolean\n }>(),\n {\n configName: undefined,\n }\n)\n\ndefineSlots<{\n prepend?(): unknown\n info(props: { isActive: boolean }): unknown\n}>()\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst { activeTab } = storeToRefs(useAssetDetailStore())\n</script>\n\n<template>\n <div\n class=\"sidebar-info d-flex w-100 h-100 flex-column\"\n :class=\"{ 'sidebar-info--no-tabs': simpleMode }\"\n >\n <div class=\"w-100 h-100 d-flex flex-column\">\n <VTabs\n v-if=\"!simpleMode\"\n v-model=\"activeTab\"\n show-arrows\n class=\"sidebar-info__tabs\"\n >\n <VTab\n :value=\"AssetDetailTabImageWithRoi.Info\"\n data-cy=\"button-meta\"\n >\n {{ t('common.damImage.asset.detail.tabs.info') }}\n </VTab>\n <VTab\n v-if=\"roiTab\"\n :value=\"AssetDetailTabImageWithRoi.ROI\"\n data-cy=\"button-focus\"\n >\n {{ t('common.damImage.asset.detail.tabs.roi') }}\n </VTab>\n </VTabs>\n\n <div class=\"sidebar-info__content\">\n <slot name=\"prepend\" />\n <template v-if=\"simpleMode\">\n <div class=\"py-2\">\n <slot\n name=\"info\"\n :is-active=\"true\"\n />\n </div>\n <div class=\"py-2\">\n <AssetDetailSidebarROI\n :is-active=\"true\"\n :queue-key=\"queueKey\"\n :config-name=\"damConfigName\"\n />\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"activeTab === AssetDetailTabImageWithRoi.Info\"\n class=\"py-2\"\n >\n <slot\n name=\"info\"\n :is-active=\"activeTab === AssetDetailTabImageWithRoi.Info\"\n />\n </div>\n <div\n v-if=\"roiTab && activeTab === AssetDetailTabImageWithRoi.ROI\"\n class=\"py-2\"\n >\n <AssetDetailSidebarROI\n :is-active=\"activeTab === AssetDetailTabImageWithRoi.ROI\"\n :queue-key=\"queueKey\"\n :config-name=\"damConfigName\"\n />\n </div>\n </template>\n </div>\n <div class=\"sidebar-info__actions px-2\">\n <AssetDetailSidebarActionsTeleportTarget :queue-key=\"queueKey\" />\n </div>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EA8BA,IAAM6B,IAAgBC,EAAiB9B,EAAM,UAAU,GAEjD,EAAE,SAAMgC,EAAQ,GAEhB,EAAE,iBAAcC,EAAYC,EAAoB,CAAC;E,kBAIrDjC,EAAA,GAAAC,EAqEM,OAAA,EApEJ,OAAKC,EAAA,CAAC,+CAA6C,EAAA,yBAChB4B,EAAA,WAAU,CAAA,CAAA,E,IAE7C3B,EAgEM,OAhENiB,GAgEM;GA9DKU,EAAA,a,aADT9B,EAAA,GAAAI,EAmBQC,GAAA;;IAjBG,YAAAC,EAAAoC,CAAA;IAAA,uBAAA,AAAAC,EAAA,QAAA,MAAApC,EAAAmC,CAAA,IAAA,EAAS,QAAAG,IAAA;IAClB,eAAA;IACA,OAAM;;IAEN,SAAArC,QAKO,CALPC,EAKOC,GAAA;KAJJ,OAAOJ,EAAA2C,CAAA,CAA0B,CAAC;KACnC,WAAQ;;KAER,SAAAzC,QAAiD,CAA9CG,EAAAC,EAAAN,EAAA8C,CAAA,CAAC,CAAA,wCAAA,CAAA,GAAA,CAAA,C;;I,kBAGEtB,EAAA,UADR9B,EAAA,GAAAI,EAMOM,GAAA;;KAJJ,OAAOJ,EAAA2C,CAAA,CAA0B,CAAC;KACnC,WAAQ;;KAER,SAAAzC,QAAgD,CAA7CG,EAAAC,EAAAN,EAAA8C,CAAA,CAAC,CAAA,uCAAA,CAAA,GAAA,CAAA,C;;;;;GAIRjD,EAsCM,OAtCNkB,GAsCM,CArCJP,EAAuBwC,EAAA,QAAA,SAAA,GACPxB,EAAA,cAAhB9B,EAAA,GAAAC,EAcWc,GAAA,EAAA,KAAA,EAAA,GAAA,CAbTZ,EAKM,OALNmB,GAKM,CAJJR,EAGEwC,EAAA,QAAA,QAAA,EADC,UAAW,GAAI,CAAA,C,IAGpBnD,EAMM,OANNoB,GAMM,CALJd,EAIEO,GAAA;IAHC,aAAW;IACX,aAAWc,EAAA;IACX,eAAaxB,EAAAsB,CAAA;G,sDAIpB5B,EAAA,GAAAC,EAoBWc,GAAA,EAAA,KAAA,EAAA,GAAA,CAlBDT,EAAAoC,CAAA,MAAcpC,EAAA2C,CAAA,CAA0B,CAAC,QADjDjD,EAAA,GAAAC,EAQM,OARNuB,GAQM,CAJJV,EAGEwC,EAAA,QAAA,QAAA,EADC,UAAWhD,EAAAoC,CAAA,MAAcpC,EAAA2C,CAAA,CAA0B,CAAC,K,mBAIjDnB,EAAA,UAAUxB,EAAAoC,CAAA,MAAcpC,EAAA2C,CAAA,CAA0B,CAAC,OAD3DjD,EAAA,GAAAC,EASM,OATNwB,GASM,CALJhB,EAIEO,GAAA;IAHC,aAAWV,EAAAoC,CAAA,MAAcpC,EAAA2C,CAAA,CAA0B,CAAC;IACpD,aAAWnB,EAAA;IACX,eAAaxB,EAAAsB,CAAA;;;;;;GAKtBzB,EAEM,OAFNuB,GAEM,CADJjB,EAAiEQ,GAAA,EAAvB,aAAWa,EAAA,SAAQ,GAAA,MAAA,GAAA,CAAA,WAAA,CAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailSidebarMetadata.js","names":["_sfc_main","AssetDetailSidebarMetadata_vue_vue_type_script_setup_true_lang_default","AssetDetailSidebarMetadata_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport AssetDetailSidebarActionsWrapper from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue'\nimport { cloneDeep, isNull } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref } from 'vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport useVuelidate from '@vuelidate/core'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { showMetadataSaveError, updateAssetMetadata } from '@/domains/dam/api/damAssetApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { assetMetadataMayStillChange } from '@/domains/dam/assetDetail/utils/assetMetadataMayStillChange'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n isActive: boolean\n dataCy?: string\n assetType: DamAssetTypeType\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n dataCy: undefined,\n configName: undefined,\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, updateUploadStore, mainFileSingleUse } = storeToRefs(assetDetailStore)\nconst uploadQueueStore = useUploadQueuesStore()\n\nconst saveButtonLoading = ref(false)\n//
|
|
1
|
+
{"version":3,"file":"AssetDetailSidebarMetadata.js","names":["_sfc_main","AssetDetailSidebarMetadata_vue_vue_type_script_setup_true_lang_default","AssetDetailSidebarMetadata_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport AssetDetailSidebarActionsWrapper from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue'\nimport { cloneDeep, isNull } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref } from 'vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport useVuelidate from '@vuelidate/core'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { showMetadataSaveError, updateAssetMetadata } from '@/domains/dam/api/damAssetApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { assetMetadataMayStillChange } from '@/domains/dam/assetDetail/utils/assetMetadataMayStillChange'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n isActive: boolean\n dataCy?: string\n assetType: DamAssetTypeType\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n dataCy: undefined,\n configName: undefined,\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, updateUploadStore, mainFileSingleUse } = storeToRefs(assetDetailStore)\nconst uploadQueueStore = useUploadQueuesStore()\n\nconst saveButtonLoading = ref(false)\n// Saving before the server has processed the file would overwrite the metadata the server extracts from it.\n// The detail is not reloaded automatically. The user reopens it after processing.\nconst saveBlocked = computed(() => !isNull(asset.value) && assetMetadataMayStillChange(asset.value))\n\nconst { showRecordWas, showValidationError } = useAlerts()\n\nconst v$ = useVuelidate({ $scope: ADamAssetMetadataValidationScopeSymbol, $stopPropagation: true })\n\nconst { damClient, endPointAsset } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst onSave = async () => {\n // The loading button still reacts to Enter and Space. This prevents sending a running save again.\n if (isNull(asset.value) || saveBlocked.value || saveButtonLoading.value) return\n saveButtonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n saveButtonLoading.value = false\n return\n }\n // Snapshot the asset before sending and update the queue from that snapshot.\n // The form is not locked during the save, and the detail can\n // be closed or switched to another asset before the response.\n // Reading the live state then gave the queue rows unsaved input, or nothing.\n const saved = cloneDeep(asset.value)\n const savedSingleUse = mainFileSingleUse.value\n const tellsQueue = updateUploadStore.value\n // Queue rows as of pressing save. Input typed into them while the save runs must not be overwritten.\n const rowsAtSave = tellsQueue ? uploadQueueStore.noteRowsOfAsset(saved.id, damConfigName) : undefined\n try {\n const sent = updateAssetMetadata(damClient, endPointAsset, saved, props.extSystem, savedSingleUse)\n // Registered for the host. If the detail closes before the response, the host waits for this save.\n assetDetailStore.setSaving(saved.id, sent, damConfigName)\n await sent\n if (tellsQueue) {\n await uploadQueueStore.updateFromDetail(saved, damConfigName, savedSingleUse, rowsAtSave)\n }\n showRecordWas('updated')\n } catch (error) {\n showMetadataSaveError(error, props.extSystem, damConfigName)\n } finally {\n // After a failed save nothing uses the note. After a successful write it has already been released.\n if (rowsAtSave) uploadQueueStore.forgetRowsNote(rowsAtSave)\n saveButtonLoading.value = false\n }\n}\n</script>\n\n<template>\n <AssetDetailSidebarActionsWrapper\n v-if=\"isActive\"\n :queue-key=\"queueKey\"\n >\n <ABtnPrimary\n type=\"submit\"\n class=\"ml-2\"\n data-cy=\"button-save\"\n :loading=\"saveButtonLoading\"\n :disabled=\"saveBlocked\"\n @click.stop=\"onSave\"\n >\n {{ t('common.button.save') }}\n </ABtnPrimary>\n </AssetDetailSidebarActionsWrapper>\n <div\n v-if=\"isActive && saveBlocked\"\n class=\"text-body-small px-4 pt-2\"\n data-cy=\"save-blocked\"\n >\n {{ t('common.damImage.queueItem.stillUploadingOrProcessing') }}\n </div>\n <AssetMetadata\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","AssetDetailSidebarActionsWrapper","_withCtx","_createVNode","_withModifiers","_createTextVNode","_toDisplayString","_unref","_createCommentVNode","AssetMetadata","AssetMetadata_default","AssetDetailSidebarActionsWrapper_default","useVuelidate","_hoisted_1","AssetDetailSidebarMetadata_vue_vue_type_script_setup_true_lang_default","props","__props","damConfigName","useDamConfigName","useI18n","assetDetailStore","useAssetDetailStore","storeToRefs","uploadQueueStore","useUploadQueuesStore","saveButtonLoading","ref","saveBlocked","computed","isNull","asset","assetMetadataMayStillChange","useAlerts","v$","ADamAssetMetadataValidationScopeSymbol","useCommonAdminCoreDamOptions","onSave","showValidationError","saved","cloneDeep","savedSingleUse","mainFileSingleUse","tellsQueue","updateUploadStore","rowsAtSave","sent","updateAssetMetadata","damClient","endPointAsset","showRecordWas","error","_component_ABtnPrimary","resolveComponent","openBlock","createElementBlock","Fragment","createBlock","withCtx","createVNode","withModifiers","createTextVNode","toDisplayString","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport AssetDetailSidebarActionsWrapper from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue'\nimport { cloneDeep, isNull } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref } from 'vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport useVuelidate from '@vuelidate/core'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { showMetadataSaveError, updateAssetMetadata } from '@/domains/dam/api/damAssetApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { assetMetadataMayStillChange } from '@/domains/dam/assetDetail/utils/assetMetadataMayStillChange'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n isActive: boolean\n dataCy?: string\n assetType: DamAssetTypeType\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n dataCy: undefined,\n configName: undefined,\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, updateUploadStore, mainFileSingleUse } = storeToRefs(assetDetailStore)\nconst uploadQueueStore = useUploadQueuesStore()\n\nconst saveButtonLoading = ref(false)\n//
|
|
1
|
+
{"version":3,"file":"AssetDetailSidebarMetadata.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","AssetDetailSidebarActionsWrapper","_withCtx","_createVNode","_withModifiers","_createTextVNode","_toDisplayString","_unref","_createCommentVNode","AssetMetadata","AssetMetadata_default","AssetDetailSidebarActionsWrapper_default","useVuelidate","_hoisted_1","AssetDetailSidebarMetadata_vue_vue_type_script_setup_true_lang_default","props","__props","damConfigName","useDamConfigName","useI18n","assetDetailStore","useAssetDetailStore","storeToRefs","uploadQueueStore","useUploadQueuesStore","saveButtonLoading","ref","saveBlocked","computed","isNull","asset","assetMetadataMayStillChange","useAlerts","v$","ADamAssetMetadataValidationScopeSymbol","useCommonAdminCoreDamOptions","onSave","showValidationError","saved","cloneDeep","savedSingleUse","mainFileSingleUse","tellsQueue","updateUploadStore","rowsAtSave","sent","updateAssetMetadata","damClient","endPointAsset","showRecordWas","error","_component_ABtnPrimary","resolveComponent","openBlock","createElementBlock","Fragment","createBlock","withCtx","createVNode","withModifiers","createTextVNode","toDisplayString","unref","t","createCommentVNode"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetDetailSidebarMetadata.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport AssetDetailSidebarActionsWrapper from '@/domains/dam/assetDetail/components/AssetDetailSidebarActionsWrapper.vue'\nimport { cloneDeep, isNull } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { computed, ref } from 'vue'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport useVuelidate from '@vuelidate/core'\nimport type { DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport { useAssetDetailStore } from '@/domains/dam/assetDetail/store/assetDetailStore'\nimport { storeToRefs } from 'pinia'\nimport AssetMetadata from '@/domains/dam/assetDetail/components/AssetMetadata.vue'\nimport { showMetadataSaveError, updateAssetMetadata } from '@/domains/dam/api/damAssetApi'\nimport { useCommonAdminCoreDamOptions } from '@/domains/dam/composables/commonAdminCoreDamOptions'\nimport { ADamAssetMetadataValidationScopeSymbol } from '@/domains/dam/composables/uploadValidations'\nimport { useUploadQueuesStore } from '@/domains/dam/uploadQueue/store/uploadQueuesStore'\nimport type { UploadQueueKey } from '@/domains/dam/types/UploadQueue'\nimport type { IntegerId } from '@/shared/types/common'\nimport { assetMetadataMayStillChange } from '@/domains/dam/assetDetail/utils/assetMetadataMayStillChange'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n queueKey: UploadQueueKey\n isActive: boolean\n dataCy?: string\n assetType: DamAssetTypeType\n extSystem: IntegerId\n configName?: string\n }>(),\n {\n dataCy: undefined,\n configName: undefined,\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigName = useDamConfigName(props.configName)\n\nconst { t } = useI18n()\n\nconst assetDetailStore = useAssetDetailStore()\nconst { asset, updateUploadStore, mainFileSingleUse } = storeToRefs(assetDetailStore)\nconst uploadQueueStore = useUploadQueuesStore()\n\nconst saveButtonLoading = ref(false)\n// Saving before the server has processed the file would overwrite the metadata the server extracts from it.\n// The detail is not reloaded automatically. The user reopens it after processing.\nconst saveBlocked = computed(() => !isNull(asset.value) && assetMetadataMayStillChange(asset.value))\n\nconst { showRecordWas, showValidationError } = useAlerts()\n\nconst v$ = useVuelidate({ $scope: ADamAssetMetadataValidationScopeSymbol, $stopPropagation: true })\n\nconst { damClient, endPointAsset } = useCommonAdminCoreDamOptions(damConfigName)\n\nconst onSave = async () => {\n // The loading button still reacts to Enter and Space. This prevents sending a running save again.\n if (isNull(asset.value) || saveBlocked.value || saveButtonLoading.value) return\n saveButtonLoading.value = true\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n saveButtonLoading.value = false\n return\n }\n // Snapshot the asset before sending and update the queue from that snapshot.\n // The form is not locked during the save, and the detail can\n // be closed or switched to another asset before the response.\n // Reading the live state then gave the queue rows unsaved input, or nothing.\n const saved = cloneDeep(asset.value)\n const savedSingleUse = mainFileSingleUse.value\n const tellsQueue = updateUploadStore.value\n // Queue rows as of pressing save. Input typed into them while the save runs must not be overwritten.\n const rowsAtSave = tellsQueue ? uploadQueueStore.noteRowsOfAsset(saved.id, damConfigName) : undefined\n try {\n const sent = updateAssetMetadata(damClient, endPointAsset, saved, props.extSystem, savedSingleUse)\n // Registered for the host. If the detail closes before the response, the host waits for this save.\n assetDetailStore.setSaving(saved.id, sent, damConfigName)\n await sent\n if (tellsQueue) {\n await uploadQueueStore.updateFromDetail(saved, damConfigName, savedSingleUse, rowsAtSave)\n }\n showRecordWas('updated')\n } catch (error) {\n showMetadataSaveError(error, props.extSystem, damConfigName)\n } finally {\n // After a failed save nothing uses the note. After a successful write it has already been released.\n if (rowsAtSave) uploadQueueStore.forgetRowsNote(rowsAtSave)\n saveButtonLoading.value = false\n }\n}\n</script>\n\n<template>\n <AssetDetailSidebarActionsWrapper\n v-if=\"isActive\"\n :queue-key=\"queueKey\"\n >\n <ABtnPrimary\n type=\"submit\"\n class=\"ml-2\"\n data-cy=\"button-save\"\n :loading=\"saveButtonLoading\"\n :disabled=\"saveBlocked\"\n @click.stop=\"onSave\"\n >\n {{ t('common.button.save') }}\n </ABtnPrimary>\n </AssetDetailSidebarActionsWrapper>\n <div\n v-if=\"isActive && saveBlocked\"\n class=\"text-body-small px-4 pt-2\"\n data-cy=\"save-blocked\"\n >\n {{ t('common.damImage.queueItem.stillUploadingOrProcessing') }}\n </div>\n <AssetMetadata\n :ext-system=\"extSystem\"\n :config-name=\"damConfigName\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBA,IAAMmB,IAAQC,GAeRC,IAAgBC,EAAiBH,EAAM,UAAU,GAEjD,EAAE,SAAMI,EAAQ,GAEhBC,IAAmBC,EAAoB,GACvC,EAAE,UAAO,sBAAmB,yBAAsBC,EAAYF,CAAgB,GAC9EG,IAAmBC,EAAqB,GAExCC,IAAoBC,EAAI,EAAK,GAG7BC,IAAcC,QAAe,CAACC,EAAOC,EAAM,KAAK,KAAKC,EAA4BD,EAAM,KAAK,CAAC,GAE7F,EAAE,kBAAe,2BAAwBE,EAAU,GAEnDC,IAAKrB,EAAa;GAAE,QAAQsB;GAAwC,kBAAkB;EAAK,CAAC,GAE5F,EAAE,cAAW,qBAAkBC,EAA6BlB,CAAa,GAEzEmB,IAAS,YAAY;GAEzB,IAAIP,EAAOC,EAAM,KAAK,KAAKH,EAAY,SAASF,EAAkB,OAAO;GAGzE,IAFA,EAAkB,QAAQ,IAC1BQ,EAAG,MAAM,OAAO,GACZA,EAAG,MAAM,UAAU;IAErB,AADAI,EAAoB,GACpB,EAAkB,QAAQ;IAC1B;GACF;GAKA,IAAMC,IAAQC,EAAUT,EAAM,KAAK,GAC7BU,IAAiBC,EAAkB,OACnCC,IAAaC,EAAkB,OAE/BC,IAAaF,IAAanB,EAAiB,gBAAgBe,EAAM,IAAIrB,CAAa,IAAI,KAAA;GAC5F,IAAI;IACF,IAAM4B,IAAOC,EAAoBC,GAAWC,GAAeV,GAAOvB,EAAM,WAAWyB,CAAc;IAOjG,AALApB,EAAiB,UAAUkB,EAAM,IAAIO,GAAM5B,CAAa,GACxD,MAAM4B,GACFH,KACF,MAAMnB,EAAiB,iBAAiBe,GAAOrB,GAAeuB,GAAgBI,CAAU,GAE1FK,EAAc,SAAS;GACzB,SAASC,GAAO;IACd,EAAsBA,GAAOnC,EAAM,WAAWE,CAAa;GAC7D,UAAU;IAGR,AADI2B,KAAYrB,EAAiB,eAAeqB,CAAU,GAC1D,EAAkB,QAAQ;GAC5B;EACF;;;;IAKU5B,EAAA,YADRnB,EAAA,GAAAG,EAcmCC,GAAA;;KAZhC,aAAWe,EAAA;;KAEZ,SAAAd,QASc,CATdC,EAScgD,GAAA;MARZ,MAAK;MACL,OAAM;MACN,WAAQ;MACP,SAAS1B,EAAA;MACT,UAAUE,EAAA;MACV,SAAKvB,EAAOgC,GAAM,CAAA,MAAA,CAAA;;MAEnB,SAAAlC,QAA6B,CAA1BG,EAAAC,EAAAC,EAAAwD,CAAA,CAAC,CAAA,oBAAA,CAAA,GAAA,CAAA,C;;;;;IAIA/C,EAAA,YAAYW,EAAA,SADpB9B,EAAA,GAAAC,EAMM,OANNe,GAMMP,EADDC,EAAAwD,CAAA,CAAC,CAAA,sDAAA,CAAA,GAAA,CAAA,K;IAEN5D,EAGEM,GAAA;KAFC,cAAYO,EAAA;KACZ,eAAaT,EAAAU,CAAA"}
|