@anzusystems/common-admin 2.0.0-rc.4 → 2.0.0-rc.6
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 +1 -1
- 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.vue.d.ts +17 -15
- 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 +26 -26
- 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":"AFilterTimeInterval.js","names":["_sfc_main","_plugin_vue_export_helper_default","AFilterTimeInterval_vue_vue_type_script_setup_true_lang_default","AFilterTimeInterval_default"],"sources":["../../../../src/domains/filters/components/AFilterTimeInterval.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref, watch } from 'vue'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport {\n TimeIntervalSpecialOptions,\n type TimeIntervalToolsValue,\n useFilterTimeIntervalValidators,\n useTimeIntervalOptions,\n} from '@/domains/filters/composables/filterTimeIntervalTools'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AFormDatetimePicker from '@/domains/form/components/AFormDatetimePicker.vue'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { dateTimeNow, dateTimePretty, isDatetimeUTC } from '@/shared/utils/datetime'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\n\nconst props = withDefaults(\n defineProps<{\n nameFrom: string\n nameUntil: string\n allowed?: TimeIntervalToolsValue[]\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n allowed: undefined,\n placeholder: undefined,\n dataCy: 'filter-time-interval',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterConfig) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameUntil]) ||\n isUndefined(filterData) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameUntil])\n) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.nameFrom]\n },\n set(newValue) {\n filterData[props.nameFrom] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n nextTick(() => {\n emit('change')\n })\n },\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { timeIntervalOptions, getTimeIntervalOption } = useTimeIntervalOptions(props.allowed)\nconst modelInternal = ref<TimeIntervalToolsValue>(null)\nconst dialogCustom = ref(false)\nconst dialogData = ref<{ from: DatetimeUTCNullable; until: DatetimeUTCNullable }>({\n from: null,\n until: dateTimeNow(),\n})\nconst displayFromTo = ref(false)\n\nconst { v$ } = useFilterTimeIntervalValidators(dialogData)\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.nameFrom]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\nconst { showValidationError } = useAlerts()\n\nconst onClear = () => {\n clearField()\n // Clearing means \"back to the default\", which is not always \"everything\" - a pair with an\n // absolute default keeps its window. Since the value then does not change, neither watcher runs,\n // so the display and the chip are re-derived here. Showing \"everything\" while the query still\n // carries the old window would make the control lie about what the list contains.\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n}\n\nconst onDialogConfirm = () => {\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n return\n }\n displayFromTo.value = true\n dialogCustom.value = false\n filterData[props.nameUntil] = dialogData.value.until\n modelValue.value = dialogData.value.from\n}\n\ndefineExpose({ onClear })\n\nconst onDialogClose = () => {\n dialogCustom.value = false\n modelInternal.value = null\n}\n\nconst clearField = () => {\n clearOne(props.nameFrom, filterData, filterConfig)\n clearOne(props.nameUntil, filterData, filterConfig)\n filterSelected.value.delete(props.nameFrom)\n}\n\nconst updateSelected = (fromValue: AllowedFilterValues) => {\n if (isArray(fromValue) || isBoolean(fromValue)) return\n if (isNull(fromValue) || isUndefined(fromValue)) {\n filterSelected.value.delete(props.nameFrom)\n return\n }\n const found = getTimeIntervalOption(fromValue as TimeIntervalToolsValue)\n if (!found && isDatetimeUTC(fromValue)) {\n const customOption = getTimeIntervalOption(TimeIntervalSpecialOptions.Custom)!\n filterSelected.value.set(props.nameFrom, [\n {\n title:\n customOption.title +\n ': ' +\n dateTimePretty(dialogData.value.from) +\n ' - ' +\n dateTimePretty(dialogData.value.until),\n value: fromValue,\n },\n ])\n return\n }\n if (!found) return\n filterSelected.value.set(props.nameFrom, [{ title: found.title, value: fromValue }])\n}\n\nconst onEditInterval = (clear = false) => {\n v$.value.$reset()\n if (clear) {\n dialogData.value.from = null\n dialogData.value.until = dateTimeNow()\n }\n dialogCustom.value = true\n}\n\n/** What the control shows is derived from the value, never assumed. */\nconst syncDisplayToValue = (newValue: AllowedFilterValues) => {\n if (isArray(newValue) || isBoolean(newValue)) return\n displayFromTo.value = false\n if (isUndefined(newValue) || isNull(newValue)) {\n modelInternal.value = null\n return\n }\n const found = getTimeIntervalOption(newValue as TimeIntervalToolsValue)\n const filterDataUntil = filterData[props.nameUntil]\n if (!found && isDatetimeUTC(newValue) && isDatetimeUTC(filterDataUntil)) {\n modelInternal.value = TimeIntervalSpecialOptions.Custom\n dialogData.value.from = newValue\n dialogData.value.until = filterDataUntil\n displayFromTo.value = true\n }\n if (found) {\n modelInternal.value = found.value\n }\n}\n\nwatch(modelValue, syncDisplayToValue, { immediate: true })\n\n// Reset clears every field back to its default and wipes the chips. For a pair whose default is\n// null that is the whole story, but an absolute default survives the reset - the value does not\n// change, so no watcher runs, and the control would keep showing a range with no chip beside it.\n// The wrapper bumps this counter after clearing, which is the one signal that a reset happened.\nwatch(submitResetCounter, () => {\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n})\n\nwatch(\n [() => filterData[props.nameFrom], () => filterData[props.nameUntil]],\n ([fromNewValue, untilNewValue], [fromOldValue, untilOldValue]) => {\n if (fromNewValue === fromOldValue && untilNewValue === untilOldValue) return\n updateSelected(fromNewValue)\n },\n { immediate: true }\n)\n\nconst onInternalItemChange = (item: ValueObjectOption<TimeIntervalToolsValue>) => {\n if (item.value === TimeIntervalSpecialOptions.Custom) {\n onEditInterval(true)\n return\n }\n filterData[props.nameUntil] = null\n modelValue.value = item.value\n}\n</script>\n\n<template>\n <VTextarea\n v-if=\"displayFromTo\"\n :label=\"label\"\n :model-value=\"dateTimePretty(dialogData.from) + ' - ' + dateTimePretty(dialogData.until)\"\n readonly\n rows=\"1\"\n auto-grow\n hide-details\n append-inner-icon=\"mdi-menu-down\"\n clearable\n class=\"cursor-pointer\"\n @click:clear.stop=\"onClear\"\n @click.stop=\"onEditInterval()\"\n />\n <VSelect\n v-else\n v-model=\"modelInternal\"\n item-title=\"title\"\n item-value=\"value\"\n :label=\"label\"\n :clearable=\"!isNull(modelInternal)\"\n no-filter\n :data-cy=\"dataCy\"\n :items=\"timeIntervalOptions\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"onClear\"\n >\n <template #item=\"{ props: itemProps, internalItem }\">\n <VListItem\n v-bind=\"itemProps\"\n @click=\"onInternalItemChange(internalItem)\"\n />\n </template>\n </VSelect>\n <VDialog\n v-if=\"dialogCustom\"\n :model-value=\"true\"\n width=\"auto\"\n :min-width=\"360\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"onDialogClose\">\n <slot name=\"title\">\n {{ label }}\n </slot>\n </ADialogToolbar>\n <VCardText>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.from\"\n :v=\"v$.dialogData.from\"\n :label=\"t('common.filter.timeInterval.from')\"\n required\n />\n </ARow>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.until\"\n :v=\"v$.dialogData.until\"\n :label=\"t('common.filter.timeInterval.until')\"\n required\n />\n </ARow>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onDialogClose\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n data-cy=\"button-confirm\"\n @click.stop=\"onDialogConfirm\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.v-text-field.cursor-pointer {\n ::v-deep(.v-field),\n ::v-deep(.v-field__input) {\n cursor: pointer;\n }\n}\n</style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AFilterTimeInterval.js","names":["_sfc_main","_plugin_vue_export_helper_default","AFilterTimeInterval_vue_vue_type_script_setup_true_lang_default","AFilterTimeInterval_default"],"sources":["../../../../src/domains/filters/components/AFilterTimeInterval.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref, watch } from 'vue'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport {\n TimeIntervalSpecialOptions,\n type TimeIntervalToolsValue,\n useFilterTimeIntervalValidators,\n useTimeIntervalOptions,\n} from '@/domains/filters/composables/filterTimeIntervalTools'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AFormDatetimePicker from '@/domains/form/components/AFormDatetimePicker.vue'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { dateTimeNow, dateTimePretty, isDatetimeUTC } from '@/shared/utils/datetime'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\n\nconst props = withDefaults(\n defineProps<{\n nameFrom: string\n nameUntil: string\n allowed?: TimeIntervalToolsValue[]\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n allowed: undefined,\n placeholder: undefined,\n dataCy: 'filter-time-interval',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterConfig) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameUntil]) ||\n isUndefined(filterData) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameUntil])\n) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.nameFrom]\n },\n set(newValue) {\n filterData[props.nameFrom] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n nextTick(() => {\n emit('change')\n })\n },\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { timeIntervalOptions, getTimeIntervalOption } = useTimeIntervalOptions(props.allowed)\nconst modelInternal = ref<TimeIntervalToolsValue>(null)\nconst dialogCustom = ref(false)\nconst dialogData = ref<{ from: DatetimeUTCNullable; until: DatetimeUTCNullable }>({\n from: null,\n until: dateTimeNow(),\n})\nconst displayFromTo = ref(false)\n\nconst { v$ } = useFilterTimeIntervalValidators(dialogData)\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.nameFrom]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\nconst { showValidationError } = useAlerts()\n\nconst onClear = () => {\n clearField()\n // Clearing restores the default, and an absolute default keeps\n // its window. The value does not change, so no watcher runs.\n // Re-derive the display and the chip here, or the control shows \"everything\" while the query still has the window.\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n}\n\nconst onDialogConfirm = () => {\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n return\n }\n displayFromTo.value = true\n dialogCustom.value = false\n filterData[props.nameUntil] = dialogData.value.until\n modelValue.value = dialogData.value.from\n}\n\ndefineExpose({ onClear })\n\nconst onDialogClose = () => {\n dialogCustom.value = false\n modelInternal.value = null\n}\n\nconst clearField = () => {\n clearOne(props.nameFrom, filterData, filterConfig)\n clearOne(props.nameUntil, filterData, filterConfig)\n filterSelected.value.delete(props.nameFrom)\n}\n\nconst updateSelected = (fromValue: AllowedFilterValues) => {\n if (isArray(fromValue) || isBoolean(fromValue)) return\n if (isNull(fromValue) || isUndefined(fromValue)) {\n filterSelected.value.delete(props.nameFrom)\n return\n }\n const found = getTimeIntervalOption(fromValue as TimeIntervalToolsValue)\n if (!found && isDatetimeUTC(fromValue)) {\n const customOption = getTimeIntervalOption(TimeIntervalSpecialOptions.Custom)!\n filterSelected.value.set(props.nameFrom, [\n {\n title:\n customOption.title +\n ': ' +\n dateTimePretty(dialogData.value.from) +\n ' - ' +\n dateTimePretty(dialogData.value.until),\n value: fromValue,\n },\n ])\n return\n }\n if (!found) return\n filterSelected.value.set(props.nameFrom, [{ title: found.title, value: fromValue }])\n}\n\nconst onEditInterval = (clear = false) => {\n v$.value.$reset()\n if (clear) {\n dialogData.value.from = null\n dialogData.value.until = dateTimeNow()\n }\n dialogCustom.value = true\n}\n\n/** What the control shows is derived from the value, never assumed. */\nconst syncDisplayToValue = (newValue: AllowedFilterValues) => {\n if (isArray(newValue) || isBoolean(newValue)) return\n displayFromTo.value = false\n if (isUndefined(newValue) || isNull(newValue)) {\n modelInternal.value = null\n return\n }\n const found = getTimeIntervalOption(newValue as TimeIntervalToolsValue)\n const filterDataUntil = filterData[props.nameUntil]\n if (!found && isDatetimeUTC(newValue) && isDatetimeUTC(filterDataUntil)) {\n modelInternal.value = TimeIntervalSpecialOptions.Custom\n dialogData.value.from = newValue\n dialogData.value.until = filterDataUntil\n displayFromTo.value = true\n }\n if (found) {\n modelInternal.value = found.value\n }\n}\n\nwatch(modelValue, syncDisplayToValue, { immediate: true })\n\n// Reset restores defaults and wipes chips. For an absolute default the value\n// does not change, so no watcher runs and the range would show without a chip.\n// The wrapper bumps this counter after clearing. It is the only signal that a reset happened.\nwatch(submitResetCounter, () => {\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n})\n\nwatch(\n [() => filterData[props.nameFrom], () => filterData[props.nameUntil]],\n ([fromNewValue, untilNewValue], [fromOldValue, untilOldValue]) => {\n if (fromNewValue === fromOldValue && untilNewValue === untilOldValue) return\n updateSelected(fromNewValue)\n },\n { immediate: true }\n)\n\nconst onInternalItemChange = (item: ValueObjectOption<TimeIntervalToolsValue>) => {\n if (item.value === TimeIntervalSpecialOptions.Custom) {\n onEditInterval(true)\n return\n }\n filterData[props.nameUntil] = null\n modelValue.value = item.value\n}\n</script>\n\n<template>\n <VTextarea\n v-if=\"displayFromTo\"\n :label=\"label\"\n :model-value=\"dateTimePretty(dialogData.from) + ' - ' + dateTimePretty(dialogData.until)\"\n readonly\n rows=\"1\"\n auto-grow\n hide-details\n append-inner-icon=\"mdi-menu-down\"\n clearable\n class=\"cursor-pointer\"\n @click:clear.stop=\"onClear\"\n @click.stop=\"onEditInterval()\"\n />\n <VSelect\n v-else\n v-model=\"modelInternal\"\n item-title=\"title\"\n item-value=\"value\"\n :label=\"label\"\n :clearable=\"!isNull(modelInternal)\"\n no-filter\n :data-cy=\"dataCy\"\n :items=\"timeIntervalOptions\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"onClear\"\n >\n <template #item=\"{ props: itemProps, internalItem }\">\n <VListItem\n v-bind=\"itemProps\"\n @click=\"onInternalItemChange(internalItem)\"\n />\n </template>\n </VSelect>\n <VDialog\n v-if=\"dialogCustom\"\n :model-value=\"true\"\n width=\"auto\"\n :min-width=\"360\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"onDialogClose\">\n <slot name=\"title\">\n {{ label }}\n </slot>\n </ADialogToolbar>\n <VCardText>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.from\"\n :v=\"v$.dialogData.from\"\n :label=\"t('common.filter.timeInterval.from')\"\n required\n />\n </ARow>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.until\"\n :v=\"v$.dialogData.until\"\n :label=\"t('common.filter.timeInterval.until')\"\n required\n />\n </ARow>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onDialogClose\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n data-cy=\"button-confirm\"\n @click.stop=\"onDialogConfirm\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.v-text-field.cursor-pointer {\n ::v-deep(.v-field),\n ::v-deep(.v-field__input) {\n cursor: pointer;\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -6,10 +6,12 @@ type __VLS_Props = {
|
|
|
6
6
|
placeholder?: string | undefined;
|
|
7
7
|
dataCy?: string;
|
|
8
8
|
};
|
|
9
|
-
declare
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
declare const __VLS_template: () => {
|
|
10
|
+
__VLS_Slots: {
|
|
11
|
+
title?: (props: {}) => any;
|
|
12
|
+
};
|
|
12
13
|
};
|
|
14
|
+
type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
|
|
13
15
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
14
16
|
onClear: () => void;
|
|
15
17
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VTextarea","_unref","_withModifiers","_component_VSelect","_withCtx","_createVNode","_component_VListItem","_mergeProps","_component_VDialog","_component_VCard","ADialogToolbar","_renderSlot","_createTextVNode","_toDisplayString","_component_VCardText","ARow","AFormDatetimePicker","_component_VCardActions","_component_VSpacer","_createCommentVNode","ARow_default","ADialogToolbar_default","AFormDatetimePicker_default","AFilterTimeInterval_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","submitResetCounter","inject","FilterSubmitResetCounterKey","filterSelected","FilterSelectedKey","filterConfig","FilterConfigKey","filterData","FilterDataKey","isUndefined","modelValue","computed","newValue","updateSelected","nextTick","useTimeIntervalOptions","modelInternal","ref","dialogCustom","dialogData","dateTimeNow","displayFromTo","useFilterTimeIntervalValidators","filterConfigCurrent","useI18n","label","t","useFilterClearHelpers","useAlerts","onClear","clearField","syncDisplayToValue","onDialogConfirm","v$","showValidationError","onDialogClose","clearOne","isArray","fromValue","isBoolean","isNull","found","getTimeIntervalOption","isDatetimeUTC","customOption","TimeIntervalSpecialOptions","dateTimePretty","onEditInterval","clear","filterDataUntil","watch","fromNewValue","untilNewValue","fromOldValue","untilOldValue","onInternalItemChange","item","_component_ABtnTertiary","resolveComponent","_component_ABtnPrimary","openBlock","createElementBlock","Fragment","createBlock","VTextarea","unref","withModifiers","_cache","VSelect","$event","timeIntervalOptions","withCtx","itemProps","createVNode","VListItem","mergeProps","internalItem","VDialog","VCard","renderSlot","_ctx","createTextVNode","toDisplayString","VCardText","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../src/domains/filters/components/AFilterTimeInterval.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref, watch } from 'vue'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport {\n TimeIntervalSpecialOptions,\n type TimeIntervalToolsValue,\n useFilterTimeIntervalValidators,\n useTimeIntervalOptions,\n} from '@/domains/filters/composables/filterTimeIntervalTools'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AFormDatetimePicker from '@/domains/form/components/AFormDatetimePicker.vue'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { dateTimeNow, dateTimePretty, isDatetimeUTC } from '@/shared/utils/datetime'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\n\nconst props = withDefaults(\n defineProps<{\n nameFrom: string\n nameUntil: string\n allowed?: TimeIntervalToolsValue[]\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n allowed: undefined,\n placeholder: undefined,\n dataCy: 'filter-time-interval',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterConfig) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameUntil]) ||\n isUndefined(filterData) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameUntil])\n) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.nameFrom]\n },\n set(newValue) {\n filterData[props.nameFrom] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n nextTick(() => {\n emit('change')\n })\n },\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { timeIntervalOptions, getTimeIntervalOption } = useTimeIntervalOptions(props.allowed)\nconst modelInternal = ref<TimeIntervalToolsValue>(null)\nconst dialogCustom = ref(false)\nconst dialogData = ref<{ from: DatetimeUTCNullable; until: DatetimeUTCNullable }>({\n from: null,\n until: dateTimeNow(),\n})\nconst displayFromTo = ref(false)\n\nconst { v$ } = useFilterTimeIntervalValidators(dialogData)\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.nameFrom]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\nconst { showValidationError } = useAlerts()\n\nconst onClear = () => {\n clearField()\n // Clearing means \"back to the default\", which is not always \"everything\" - a pair with an\n // absolute default keeps its window. Since the value then does not change, neither watcher runs,\n // so the display and the chip are re-derived here. Showing \"everything\" while the query still\n // carries the old window would make the control lie about what the list contains.\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n}\n\nconst onDialogConfirm = () => {\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n return\n }\n displayFromTo.value = true\n dialogCustom.value = false\n filterData[props.nameUntil] = dialogData.value.until\n modelValue.value = dialogData.value.from\n}\n\ndefineExpose({ onClear })\n\nconst onDialogClose = () => {\n dialogCustom.value = false\n modelInternal.value = null\n}\n\nconst clearField = () => {\n clearOne(props.nameFrom, filterData, filterConfig)\n clearOne(props.nameUntil, filterData, filterConfig)\n filterSelected.value.delete(props.nameFrom)\n}\n\nconst updateSelected = (fromValue: AllowedFilterValues) => {\n if (isArray(fromValue) || isBoolean(fromValue)) return\n if (isNull(fromValue) || isUndefined(fromValue)) {\n filterSelected.value.delete(props.nameFrom)\n return\n }\n const found = getTimeIntervalOption(fromValue as TimeIntervalToolsValue)\n if (!found && isDatetimeUTC(fromValue)) {\n const customOption = getTimeIntervalOption(TimeIntervalSpecialOptions.Custom)!\n filterSelected.value.set(props.nameFrom, [\n {\n title:\n customOption.title +\n ': ' +\n dateTimePretty(dialogData.value.from) +\n ' - ' +\n dateTimePretty(dialogData.value.until),\n value: fromValue,\n },\n ])\n return\n }\n if (!found) return\n filterSelected.value.set(props.nameFrom, [{ title: found.title, value: fromValue }])\n}\n\nconst onEditInterval = (clear = false) => {\n v$.value.$reset()\n if (clear) {\n dialogData.value.from = null\n dialogData.value.until = dateTimeNow()\n }\n dialogCustom.value = true\n}\n\n/** What the control shows is derived from the value, never assumed. */\nconst syncDisplayToValue = (newValue: AllowedFilterValues) => {\n if (isArray(newValue) || isBoolean(newValue)) return\n displayFromTo.value = false\n if (isUndefined(newValue) || isNull(newValue)) {\n modelInternal.value = null\n return\n }\n const found = getTimeIntervalOption(newValue as TimeIntervalToolsValue)\n const filterDataUntil = filterData[props.nameUntil]\n if (!found && isDatetimeUTC(newValue) && isDatetimeUTC(filterDataUntil)) {\n modelInternal.value = TimeIntervalSpecialOptions.Custom\n dialogData.value.from = newValue\n dialogData.value.until = filterDataUntil\n displayFromTo.value = true\n }\n if (found) {\n modelInternal.value = found.value\n }\n}\n\nwatch(modelValue, syncDisplayToValue, { immediate: true })\n\n// Reset clears every field back to its default and wipes the chips. For a pair whose default is\n// null that is the whole story, but an absolute default survives the reset - the value does not\n// change, so no watcher runs, and the control would keep showing a range with no chip beside it.\n// The wrapper bumps this counter after clearing, which is the one signal that a reset happened.\nwatch(submitResetCounter, () => {\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n})\n\nwatch(\n [() => filterData[props.nameFrom], () => filterData[props.nameUntil]],\n ([fromNewValue, untilNewValue], [fromOldValue, untilOldValue]) => {\n if (fromNewValue === fromOldValue && untilNewValue === untilOldValue) return\n updateSelected(fromNewValue)\n },\n { immediate: true }\n)\n\nconst onInternalItemChange = (item: ValueObjectOption<TimeIntervalToolsValue>) => {\n if (item.value === TimeIntervalSpecialOptions.Custom) {\n onEditInterval(true)\n return\n }\n filterData[props.nameUntil] = null\n modelValue.value = item.value\n}\n</script>\n\n<template>\n <VTextarea\n v-if=\"displayFromTo\"\n :label=\"label\"\n :model-value=\"dateTimePretty(dialogData.from) + ' - ' + dateTimePretty(dialogData.until)\"\n readonly\n rows=\"1\"\n auto-grow\n hide-details\n append-inner-icon=\"mdi-menu-down\"\n clearable\n class=\"cursor-pointer\"\n @click:clear.stop=\"onClear\"\n @click.stop=\"onEditInterval()\"\n />\n <VSelect\n v-else\n v-model=\"modelInternal\"\n item-title=\"title\"\n item-value=\"value\"\n :label=\"label\"\n :clearable=\"!isNull(modelInternal)\"\n no-filter\n :data-cy=\"dataCy\"\n :items=\"timeIntervalOptions\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"onClear\"\n >\n <template #item=\"{ props: itemProps, internalItem }\">\n <VListItem\n v-bind=\"itemProps\"\n @click=\"onInternalItemChange(internalItem)\"\n />\n </template>\n </VSelect>\n <VDialog\n v-if=\"dialogCustom\"\n :model-value=\"true\"\n width=\"auto\"\n :min-width=\"360\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"onDialogClose\">\n <slot name=\"title\">\n {{ label }}\n </slot>\n </ADialogToolbar>\n <VCardText>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.from\"\n :v=\"v$.dialogData.from\"\n :label=\"t('common.filter.timeInterval.from')\"\n required\n />\n </ARow>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.until\"\n :v=\"v$.dialogData.until\"\n :label=\"t('common.filter.timeInterval.until')\"\n required\n />\n </ARow>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onDialogClose\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n data-cy=\"button-confirm\"\n @click.stop=\"onDialogConfirm\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.v-text-field.cursor-pointer {\n ::v-deep(.v-field),\n ::v-deep(.v-field__input) {\n cursor: pointer;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AFilterTimeInterval.vue_vue_type_script_setup_true_lang.js","names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_createBlock","_component_VTextarea","_unref","_withModifiers","_component_VSelect","_withCtx","_createVNode","_component_VListItem","_mergeProps","_component_VDialog","_component_VCard","ADialogToolbar","_renderSlot","_createTextVNode","_toDisplayString","_component_VCardText","ARow","AFormDatetimePicker","_component_VCardActions","_component_VSpacer","_createCommentVNode","ARow_default","ADialogToolbar_default","AFormDatetimePicker_default","AFilterTimeInterval_vue_vue_type_script_setup_true_lang_default","__expose","__emit","props","__props","emit","submitResetCounter","inject","FilterSubmitResetCounterKey","filterSelected","FilterSelectedKey","filterConfig","FilterConfigKey","filterData","FilterDataKey","isUndefined","modelValue","computed","newValue","updateSelected","nextTick","useTimeIntervalOptions","modelInternal","ref","dialogCustom","dialogData","dateTimeNow","displayFromTo","useFilterTimeIntervalValidators","filterConfigCurrent","useI18n","label","t","useFilterClearHelpers","useAlerts","onClear","clearField","syncDisplayToValue","onDialogConfirm","v$","showValidationError","onDialogClose","clearOne","isArray","fromValue","isBoolean","isNull","found","getTimeIntervalOption","isDatetimeUTC","customOption","TimeIntervalSpecialOptions","dateTimePretty","onEditInterval","clear","filterDataUntil","watch","fromNewValue","untilNewValue","fromOldValue","untilOldValue","onInternalItemChange","item","_component_ABtnTertiary","resolveComponent","_component_ABtnPrimary","openBlock","createElementBlock","Fragment","createBlock","VTextarea","unref","withModifiers","_cache","VSelect","$event","timeIntervalOptions","withCtx","itemProps","createVNode","VListItem","mergeProps","internalItem","VDialog","VCard","renderSlot","_ctx","createTextVNode","toDisplayString","VCardText","VCardActions","VSpacer","createCommentVNode"],"sources":["../../../../src/domains/filters/components/AFilterTimeInterval.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref, watch } from 'vue'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\nimport {\n TimeIntervalSpecialOptions,\n type TimeIntervalToolsValue,\n useFilterTimeIntervalValidators,\n useTimeIntervalOptions,\n} from '@/domains/filters/composables/filterTimeIntervalTools'\nimport ADialogToolbar from '@/domains/ui/components/ADialogToolbar.vue'\nimport AFormDatetimePicker from '@/domains/form/components/AFormDatetimePicker.vue'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport ARow from '@/domains/ui/components/ARow.vue'\nimport { dateTimeNow, dateTimePretty, isDatetimeUTC } from '@/shared/utils/datetime'\nimport { useAlerts } from '@/domains/system/composables/alerts'\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\n\nconst props = withDefaults(\n defineProps<{\n nameFrom: string\n nameUntil: string\n allowed?: TimeIntervalToolsValue[]\n placeholder?: string | undefined\n dataCy?: string\n }>(),\n {\n allowed: undefined,\n placeholder: undefined,\n dataCy: 'filter-time-interval',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterConfig) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.nameUntil]) ||\n isUndefined(filterData) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameFrom]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.nameUntil])\n) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.nameFrom]\n },\n set(newValue) {\n filterData[props.nameFrom] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n nextTick(() => {\n emit('change')\n })\n },\n})\n\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst { timeIntervalOptions, getTimeIntervalOption } = useTimeIntervalOptions(props.allowed)\nconst modelInternal = ref<TimeIntervalToolsValue>(null)\nconst dialogCustom = ref(false)\nconst dialogData = ref<{ from: DatetimeUTCNullable; until: DatetimeUTCNullable }>({\n from: null,\n until: dateTimeNow(),\n})\nconst displayFromTo = ref(false)\n\nconst { v$ } = useFilterTimeIntervalValidators(dialogData)\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.nameFrom]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\nconst { showValidationError } = useAlerts()\n\nconst onClear = () => {\n clearField()\n // Clearing restores the default, and an absolute default keeps\n // its window. The value does not change, so no watcher runs.\n // Re-derive the display and the chip here, or the control shows \"everything\" while the query still has the window.\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n}\n\nconst onDialogConfirm = () => {\n v$.value.$touch()\n if (v$.value.$invalid) {\n showValidationError()\n return\n }\n displayFromTo.value = true\n dialogCustom.value = false\n filterData[props.nameUntil] = dialogData.value.until\n modelValue.value = dialogData.value.from\n}\n\ndefineExpose({ onClear })\n\nconst onDialogClose = () => {\n dialogCustom.value = false\n modelInternal.value = null\n}\n\nconst clearField = () => {\n clearOne(props.nameFrom, filterData, filterConfig)\n clearOne(props.nameUntil, filterData, filterConfig)\n filterSelected.value.delete(props.nameFrom)\n}\n\nconst updateSelected = (fromValue: AllowedFilterValues) => {\n if (isArray(fromValue) || isBoolean(fromValue)) return\n if (isNull(fromValue) || isUndefined(fromValue)) {\n filterSelected.value.delete(props.nameFrom)\n return\n }\n const found = getTimeIntervalOption(fromValue as TimeIntervalToolsValue)\n if (!found && isDatetimeUTC(fromValue)) {\n const customOption = getTimeIntervalOption(TimeIntervalSpecialOptions.Custom)!\n filterSelected.value.set(props.nameFrom, [\n {\n title:\n customOption.title +\n ': ' +\n dateTimePretty(dialogData.value.from) +\n ' - ' +\n dateTimePretty(dialogData.value.until),\n value: fromValue,\n },\n ])\n return\n }\n if (!found) return\n filterSelected.value.set(props.nameFrom, [{ title: found.title, value: fromValue }])\n}\n\nconst onEditInterval = (clear = false) => {\n v$.value.$reset()\n if (clear) {\n dialogData.value.from = null\n dialogData.value.until = dateTimeNow()\n }\n dialogCustom.value = true\n}\n\n/** What the control shows is derived from the value, never assumed. */\nconst syncDisplayToValue = (newValue: AllowedFilterValues) => {\n if (isArray(newValue) || isBoolean(newValue)) return\n displayFromTo.value = false\n if (isUndefined(newValue) || isNull(newValue)) {\n modelInternal.value = null\n return\n }\n const found = getTimeIntervalOption(newValue as TimeIntervalToolsValue)\n const filterDataUntil = filterData[props.nameUntil]\n if (!found && isDatetimeUTC(newValue) && isDatetimeUTC(filterDataUntil)) {\n modelInternal.value = TimeIntervalSpecialOptions.Custom\n dialogData.value.from = newValue\n dialogData.value.until = filterDataUntil\n displayFromTo.value = true\n }\n if (found) {\n modelInternal.value = found.value\n }\n}\n\nwatch(modelValue, syncDisplayToValue, { immediate: true })\n\n// Reset restores defaults and wipes chips. For an absolute default the value\n// does not change, so no watcher runs and the range would show without a chip.\n// The wrapper bumps this counter after clearing. It is the only signal that a reset happened.\nwatch(submitResetCounter, () => {\n syncDisplayToValue(filterData[props.nameFrom])\n updateSelected(filterData[props.nameFrom])\n})\n\nwatch(\n [() => filterData[props.nameFrom], () => filterData[props.nameUntil]],\n ([fromNewValue, untilNewValue], [fromOldValue, untilOldValue]) => {\n if (fromNewValue === fromOldValue && untilNewValue === untilOldValue) return\n updateSelected(fromNewValue)\n },\n { immediate: true }\n)\n\nconst onInternalItemChange = (item: ValueObjectOption<TimeIntervalToolsValue>) => {\n if (item.value === TimeIntervalSpecialOptions.Custom) {\n onEditInterval(true)\n return\n }\n filterData[props.nameUntil] = null\n modelValue.value = item.value\n}\n</script>\n\n<template>\n <VTextarea\n v-if=\"displayFromTo\"\n :label=\"label\"\n :model-value=\"dateTimePretty(dialogData.from) + ' - ' + dateTimePretty(dialogData.until)\"\n readonly\n rows=\"1\"\n auto-grow\n hide-details\n append-inner-icon=\"mdi-menu-down\"\n clearable\n class=\"cursor-pointer\"\n @click:clear.stop=\"onClear\"\n @click.stop=\"onEditInterval()\"\n />\n <VSelect\n v-else\n v-model=\"modelInternal\"\n item-title=\"title\"\n item-value=\"value\"\n :label=\"label\"\n :clearable=\"!isNull(modelInternal)\"\n no-filter\n :data-cy=\"dataCy\"\n :items=\"timeIntervalOptions\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"onClear\"\n >\n <template #item=\"{ props: itemProps, internalItem }\">\n <VListItem\n v-bind=\"itemProps\"\n @click=\"onInternalItemChange(internalItem)\"\n />\n </template>\n </VSelect>\n <VDialog\n v-if=\"dialogCustom\"\n :model-value=\"true\"\n width=\"auto\"\n :min-width=\"360\"\n >\n <VCard>\n <ADialogToolbar @cancel=\"onDialogClose\">\n <slot name=\"title\">\n {{ label }}\n </slot>\n </ADialogToolbar>\n <VCardText>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.from\"\n :v=\"v$.dialogData.from\"\n :label=\"t('common.filter.timeInterval.from')\"\n required\n />\n </ARow>\n <ARow>\n <AFormDatetimePicker\n v-model=\"dialogData.until\"\n :v=\"v$.dialogData.until\"\n :label=\"t('common.filter.timeInterval.until')\"\n required\n />\n </ARow>\n </VCardText>\n <VCardActions>\n <VSpacer />\n <ABtnTertiary\n data-cy=\"button-cancel\"\n @click.stop=\"onDialogClose\"\n >\n {{ t('common.button.cancel') }}\n </ABtnTertiary>\n <ABtnPrimary\n data-cy=\"button-confirm\"\n @click.stop=\"onDialogConfirm\"\n >\n {{ t('common.button.confirm') }}\n </ABtnPrimary>\n </VCardActions>\n </VCard>\n </VDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.v-text-field.cursor-pointer {\n ::v-deep(.v-field),\n ::v-deep(.v-field__input) {\n cursor: pointer;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AFilterValueObjectOptionsSelect.js","names":["_sfc_main","AFilterValueObjectOptionsSelect_vue_vue_type_script_setup_true_lang_default","AFilterValueObjectOptionsSelect_default"],"sources":["../../../../src/domains/filters/components/AFilterValueObjectOptionsSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\nimport { computed, inject, watch, getCurrentInstance } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst props = withDefaults(\n defineProps<{\n name: string\n items: ValueObjectOption<string | number>[]\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-value',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nconst componentName = getCurrentInstance()?.type.__name\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterData) ||\n isUndefined(filterConfig)\n) {\n throw new Error(`[${componentName}] Incorrect provide/inject config.`)\n}\n\nif (\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.name]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.name])\n) {\n throw new Error(\n `[${componentName}] Incorrect filter config. ` +\n `Name is '${props.name}' and available options are ${Object.keys(filterData).join(', ')}.`\n )\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.name]\n },\n set(newValue) {\n filterData[props.name] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n emit('change')\n },\n})\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.name]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\n\nconst clearField = () => {\n clearOne(props.name, filterData, filterConfig)\n filterSelected.value.delete(props.name)\n}\n\nconst updateSelected = (newValue: AllowedFilterValues) => {\n // `null`
|
|
1
|
+
{"version":3,"file":"AFilterValueObjectOptionsSelect.js","names":["_sfc_main","AFilterValueObjectOptionsSelect_vue_vue_type_script_setup_true_lang_default","AFilterValueObjectOptionsSelect_default"],"sources":["../../../../src/domains/filters/components/AFilterValueObjectOptionsSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\nimport { computed, inject, watch, getCurrentInstance } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst props = withDefaults(\n defineProps<{\n name: string\n items: ValueObjectOption<string | number>[]\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-value',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nconst componentName = getCurrentInstance()?.type.__name\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterData) ||\n isUndefined(filterConfig)\n) {\n throw new Error(`[${componentName}] Incorrect provide/inject config.`)\n}\n\nif (\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.name]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.name])\n) {\n throw new Error(\n `[${componentName}] Incorrect filter config. ` +\n `Name is '${props.name}' and available options are ${Object.keys(filterData).join(', ')}.`\n )\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.name]\n },\n set(newValue) {\n filterData[props.name] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n emit('change')\n },\n})\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.name]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\n\nconst clearField = () => {\n clearOne(props.name, filterData, filterConfig)\n filterSelected.value.delete(props.name)\n}\n\nconst updateSelected = (newValue: AllowedFilterValues) => {\n // `null` arrives when the filter is reset from outside. Loading a hash clears every field first.\n // Falling through to `items.find` finds nothing and leaves the old chip naming a value the query no longer has.\n if (isNull(newValue) || isUndefined(newValue) || (isArray(newValue) && newValue.length === 0)) {\n filterSelected.value.delete(props.name)\n return\n }\n if (isArray(newValue)) {\n filterSelected.value.set(\n props.name,\n newValue.map((modelItemValue) => {\n const found = props.items.find((item) => item.value === modelItemValue)\n if (found) return { title: found.title, value: found.value }\n return { title: modelItemValue as string, value: modelItemValue as string }\n })\n )\n return\n }\n const found = props.items.find((item) => item.value === newValue)\n if (found) {\n filterSelected.value.set(props.name, [{ title: found.title as string, value: found.value as string }])\n }\n}\n\nwatch(\n () => filterData[props.name],\n (newValue, oldValue) => {\n if (newValue === oldValue || isBoolean(newValue)) return\n updateSelected(newValue)\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValue\"\n :items=\"items\"\n :chips=\"filterConfigCurrent.multiple\"\n :label=\"label\"\n :multiple=\"filterConfigCurrent.multiple\"\n :clearable=\"!filterConfigCurrent.mandatory\"\n :data-cy=\"dataCy\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"clearField\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VAutocomplete","_withModifiers","AFilterValueObjectOptionsSelect_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","submitResetCounter","inject","FilterSubmitResetCounterKey","filterSelected","FilterSelectedKey","filterConfig","FilterConfigKey","filterData","FilterDataKey","componentName","getCurrentInstance","isUndefined","modelValue","computed","newValue","updateSelected","filterConfigCurrent","useI18n","label","t","useFilterClearHelpers","clearField","clearOne","isNull","isArray","found","item","modelItemValue","watch","oldValue","isBoolean","openBlock","createBlock","VAutocomplete","_cache","$event","withModifiers"],"sources":["../../../../src/domains/filters/components/AFilterValueObjectOptionsSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\nimport { computed, inject, watch, getCurrentInstance } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst props = withDefaults(\n defineProps<{\n name: string\n items: ValueObjectOption<string | number>[]\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-value',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nconst componentName = getCurrentInstance()?.type.__name\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterData) ||\n isUndefined(filterConfig)\n) {\n throw new Error(`[${componentName}] Incorrect provide/inject config.`)\n}\n\nif (\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.name]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.name])\n) {\n throw new Error(\n `[${componentName}] Incorrect filter config. ` +\n `Name is '${props.name}' and available options are ${Object.keys(filterData).join(', ')}.`\n )\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.name]\n },\n set(newValue) {\n filterData[props.name] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n emit('change')\n },\n})\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.name]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\n\nconst clearField = () => {\n clearOne(props.name, filterData, filterConfig)\n filterSelected.value.delete(props.name)\n}\n\nconst updateSelected = (newValue: AllowedFilterValues) => {\n // `null`
|
|
1
|
+
{"version":3,"file":"AFilterValueObjectOptionsSelect.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VAutocomplete","_withModifiers","AFilterValueObjectOptionsSelect_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","submitResetCounter","inject","FilterSubmitResetCounterKey","filterSelected","FilterSelectedKey","filterConfig","FilterConfigKey","filterData","FilterDataKey","componentName","getCurrentInstance","isUndefined","modelValue","computed","newValue","updateSelected","filterConfigCurrent","useI18n","label","t","useFilterClearHelpers","clearField","clearOne","isNull","isArray","found","item","modelItemValue","watch","oldValue","isBoolean","openBlock","createBlock","VAutocomplete","_cache","$event","withModifiers"],"sources":["../../../../src/domains/filters/components/AFilterValueObjectOptionsSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ValueObjectOption } from '@/shared/types/ValueObject'\nimport { computed, inject, watch, getCurrentInstance } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport {\n FilterConfigKey,\n FilterDataKey,\n FilterSelectedKey,\n FilterSubmitResetCounterKey,\n} from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isBoolean, isNull, isUndefined } from '@/shared/utils/common'\nimport { type AllowedFilterValues, useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst props = withDefaults(\n defineProps<{\n name: string\n items: ValueObjectOption<string | number>[]\n dataCy?: string\n }>(),\n {\n dataCy: 'filter-value',\n }\n)\nconst emit = defineEmits<{\n (e: 'change'): void\n}>()\n\nconst submitResetCounter = inject(FilterSubmitResetCounterKey)\nconst filterSelected = inject(FilterSelectedKey)\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\n\nconst componentName = getCurrentInstance()?.type.__name\n\nif (\n isUndefined(submitResetCounter) ||\n isUndefined(filterSelected) ||\n isUndefined(filterData) ||\n isUndefined(filterConfig)\n) {\n throw new Error(`[${componentName}] Incorrect provide/inject config.`)\n}\n\nif (\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterConfig.fields[props.name]) ||\n // eslint-disable-next-line vue/no-setup-props-reactivity-loss\n isUndefined(filterData[props.name])\n) {\n throw new Error(\n `[${componentName}] Incorrect filter config. ` +\n `Name is '${props.name}' and available options are ${Object.keys(filterData).join(', ')}.`\n )\n}\n\nconst modelValue = computed({\n get() {\n return filterData[props.name]\n },\n set(newValue) {\n filterData[props.name] = newValue\n updateSelected(newValue)\n filterConfig.touched = true\n emit('change')\n },\n})\n\n// The setup above throws unless the field is configured.\nconst filterConfigCurrent = computed(() => filterConfig.fields[props.name]!)\n\nconst { t } = useI18n()\n\nconst label = computed(() => {\n return filterConfigCurrent.value.titleT ? t(filterConfigCurrent.value.titleT) : undefined\n})\n\nconst { clearOne } = useFilterClearHelpers()\n\nconst clearField = () => {\n clearOne(props.name, filterData, filterConfig)\n filterSelected.value.delete(props.name)\n}\n\nconst updateSelected = (newValue: AllowedFilterValues) => {\n // `null` arrives when the filter is reset from outside. Loading a hash clears every field first.\n // Falling through to `items.find` finds nothing and leaves the old chip naming a value the query no longer has.\n if (isNull(newValue) || isUndefined(newValue) || (isArray(newValue) && newValue.length === 0)) {\n filterSelected.value.delete(props.name)\n return\n }\n if (isArray(newValue)) {\n filterSelected.value.set(\n props.name,\n newValue.map((modelItemValue) => {\n const found = props.items.find((item) => item.value === modelItemValue)\n if (found) return { title: found.title, value: found.value }\n return { title: modelItemValue as string, value: modelItemValue as string }\n })\n )\n return\n }\n const found = props.items.find((item) => item.value === newValue)\n if (found) {\n filterSelected.value.set(props.name, [{ title: found.title as string, value: found.value as string }])\n }\n}\n\nwatch(\n () => filterData[props.name],\n (newValue, oldValue) => {\n if (newValue === oldValue || isBoolean(newValue)) return\n updateSelected(newValue)\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VAutocomplete\n v-model=\"modelValue\"\n :items=\"items\"\n :chips=\"filterConfigCurrent.multiple\"\n :label=\"label\"\n :multiple=\"filterConfigCurrent.multiple\"\n :clearable=\"!filterConfigCurrent.mandatory\"\n :data-cy=\"dataCy\"\n hide-details\n autocomplete=\"off\"\n @click:clear.stop=\"clearField\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAaA,IAAMM,IAAQC,GAURC,IAAOH,GAIPI,IAAqBC,EAAOC,CAA2B,GACvDC,IAAiBF,EAAOG,CAAiB,GACzCC,IAAeJ,EAAOK,CAAe,GACrCC,IAAaN,EAAOO,CAAa,GAEjCC,IAAgBC,EAAmB,CAAC,EAAE,KAAK;EAEjD,IACEC,EAAYX,CAAkB,KAC9BW,EAAYR,CAAc,KAC1BQ,EAAYJ,CAAU,KACtBI,EAAYN,CAAY,GAExB,MAAU,MAAM,IAAII,EAAc,mCAAmC;EAGvE,IAEEE,EAAYN,EAAa,OAAOR,EAAM,KAAK,KAE3Cc,EAAYJ,EAAWV,EAAM,KAAK,GAElC,MAAU,MACR,IAAIY,EAAc,sCACJZ,EAAM,KAAK,8BAA8B,OAAO,KAAKU,CAAU,CAAC,CAAC,KAAK,IAAI,EAAE,EAC5F;EAGF,IAAMK,IAAaC,EAAS;GAC1B,MAAM;IACJ,OAAON,EAAWV,EAAM;GAC1B;GACA,IAAI,GAAU;IAIZ,AAHA,EAAWA,EAAM,QAAQiB,GACzBC,EAAeD,CAAQ,GACvB,EAAa,UAAU,IACvBf,EAAK,QAAQ;GACf;EACF,CAAC,GAGKiB,IAAsBH,QAAeR,EAAa,OAAOR,EAAM,KAAM,GAErE,EAAE,SAAMoB,EAAQ,GAEhBC,IAAQL,QACLG,EAAoB,MAAM,SAASG,EAAEH,EAAoB,MAAM,MAAM,IAAI,KAAA,CACjF,GAEK,EAAE,gBAAaI,EAAsB,GAErCC,UAAmB;GAEvB,AADAC,EAASzB,EAAM,MAAMU,GAAYF,CAAY,GAC7CF,EAAe,MAAM,OAAON,EAAM,IAAI;EACxC,GAEMkB,KAAkB,MAAkC;GAGxD,IAAIQ,EAAOT,CAAQ,KAAKH,EAAYG,CAAQ,KAAMU,EAAQV,CAAQ,KAAKA,EAAS,WAAW,GAAI;IAC7F,EAAe,MAAM,OAAOjB,EAAM,IAAI;IACtC;GACF;GACA,IAAI2B,EAAQV,CAAQ,GAAG;IACrB,EAAe,MAAM,IACnBjB,EAAM,MACNiB,EAAS,KAAK,MAAmB;KAC/B,IAAMW,IAAQ5B,EAAM,MAAM,MAAM,MAAS6B,EAAK,UAAUC,CAAc;KAEtE,OADIF,IAAc;MAAE,OAAOA,EAAM;MAAO,OAAOA,EAAM;KAAM,IACpD;MAAE,OAAOE;MAA0B,OAAOA;KAAyB;IAC5E,CAAC,CACH;IACA;GACF;GACA,IAAMF,IAAQ5B,EAAM,MAAM,MAAM,MAAS6B,EAAK,UAAUZ,CAAQ;GAChE,AAAIW,KACFtB,EAAe,MAAM,IAAIN,EAAM,MAAM,CAAC;IAAE,OAAO4B,EAAM;IAAiB,OAAOA,EAAM;GAAgB,CAAC,CAAC;EAEzG;E,OAEAG,QACQrB,EAAWV,EAAM,QACtB,GAAU,MAAa;GACtB,AAAIiB,MAAae,KAAYC,EAAUhB,CAAQ,KAC/CC,EAAeD,CAAQ;EACzB,GACA,EAAE,WAAW,GAAK,CACpB,I,UAIEvB,EAAA,GAAAC,EAWEC,GAAA;GAVS,YAAAmB,EAAA;GAAA,uBAAA,AAAAsB,EAAA,QAAA,MAAA,EAAU,QAAAC;GAClB,OAAOrC,EAAA;GACP,OAAOkB,EAAA,MAAoB;GAC3B,OAAOE,EAAA;GACP,UAAUF,EAAA,MAAoB;GAC9B,WAAS,CAAGA,EAAA,MAAoB;GAChC,WAASlB,EAAA;GACV,gBAAA;GACA,cAAa;GACZ,iBAAWJ,EAAO2B,GAAU,CAAA,MAAA,CAAA"}
|
|
@@ -16,22 +16,24 @@ type __VLS_ModelProps = {
|
|
|
16
16
|
'showDetail'?: boolean;
|
|
17
17
|
};
|
|
18
18
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
19
|
-
declare
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} & {
|
|
25
|
-
|
|
26
|
-
} & {
|
|
27
|
-
|
|
28
|
-
} & {
|
|
29
|
-
|
|
30
|
-
} & {
|
|
31
|
-
|
|
32
|
-
} & {
|
|
33
|
-
|
|
19
|
+
declare const __VLS_template: () => {
|
|
20
|
+
__VLS_Slots: {
|
|
21
|
+
[x: string]: ((props: {
|
|
22
|
+
itemConfig: import('../composables/filterFactory').FilterField;
|
|
23
|
+
}) => any) | undefined;
|
|
24
|
+
} & {
|
|
25
|
+
top?: (props: {}) => any;
|
|
26
|
+
} & {
|
|
27
|
+
bookmarks?: (props: {}) => any;
|
|
28
|
+
} & {
|
|
29
|
+
search?: (props: {}) => any;
|
|
30
|
+
} & {
|
|
31
|
+
buttons?: (props: {}) => any;
|
|
32
|
+
} & {
|
|
33
|
+
detail?: (props: {}) => any;
|
|
34
|
+
};
|
|
34
35
|
};
|
|
36
|
+
type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
|
|
35
37
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
36
38
|
submit: () => void;
|
|
37
39
|
reset: () => void;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
2
|
formName?: string;
|
|
3
3
|
};
|
|
4
|
-
declare
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const __VLS_template: () => {
|
|
5
|
+
__VLS_Slots: {
|
|
6
|
+
default?: (props: {}) => any;
|
|
7
|
+
};
|
|
7
8
|
};
|
|
9
|
+
type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
|
|
8
10
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
9
11
|
resetFilter: () => void;
|
|
10
12
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersSelected.js","names":["_sfc_main","FiltersSelected_vue_vue_type_script_setup_true_lang_default","FiltersSelected_default"],"sources":["../../../../src/domains/filters/components/FiltersSelected.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { FilterConfigKey, FilterDataKey, FilterSelectedKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\nconst filterSelected = inject(FilterSelectedKey)\n\nif (isUndefined(filterConfig) || isUndefined(filterData) || isUndefined(filterSelected)) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst { t } = useI18n()\n\nconst getTitleFromConfig = (name: string) => {\n const titleT = filterConfig.fields?.[name]?.titleT\n if (titleT) return t(titleT)\n return name\n}\n\nconst selectedArray = computed(() => {\n const fieldOrder = Object.keys(filterConfig.fields)\n return Array.from(filterSelected.value)\n .filter(([key]) => filterConfig.fields?.[key]?.render?.selected !== false)\n .map(([key, valueArray]) => ({\n name: key,\n title: getTitleFromConfig(key),\n options: valueArray,\n }))\n .sort((a, b) => fieldOrder.indexOf(a.name) - fieldOrder.indexOf(b.name))\n})\n\nconst { clearOneFilterSelected, isClearable } = useFilterClearHelpers()\n\n/**\n * Clearing
|
|
1
|
+
{"version":3,"file":"FiltersSelected.js","names":["_sfc_main","FiltersSelected_vue_vue_type_script_setup_true_lang_default","FiltersSelected_default"],"sources":["../../../../src/domains/filters/components/FiltersSelected.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { FilterConfigKey, FilterDataKey, FilterSelectedKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\nconst filterSelected = inject(FilterSelectedKey)\n\nif (isUndefined(filterConfig) || isUndefined(filterData) || isUndefined(filterSelected)) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst { t } = useI18n()\n\nconst getTitleFromConfig = (name: string) => {\n const titleT = filterConfig.fields?.[name]?.titleT\n if (titleT) return t(titleT)\n return name\n}\n\nconst selectedArray = computed(() => {\n const fieldOrder = Object.keys(filterConfig.fields)\n return Array.from(filterSelected.value)\n .filter(([key]) => filterConfig.fields?.[key]?.render?.selected !== false)\n .map(([key, valueArray]) => ({\n name: key,\n title: getTitleFromConfig(key),\n options: valueArray,\n }))\n .sort((a, b) => fieldOrder.indexOf(a.name) - fieldOrder.indexOf(b.name))\n})\n\nconst { clearOneFilterSelected, isClearable } = useFilterClearHelpers()\n\n/**\n * Clearing restores the default. On a field already at its non-null default, the close\n * button would drop the chip, write the same value, and the chip would come back.\n * Arrays differ: closing one chip removes one option.\n */\nconst canClear = (name: string) => {\n if (!isClearable(name, filterConfig)) return false\n // `isClearable` has just read this same config, so it is there.\n const config = filterConfig.fields[name]!\n // A time interval is a pair sharing one chip, and clearing writes the default into both.\n // Only `until` may differ, because the custom dialog opens prefilled. The button still has work then.\n if (config.type === 'timeInterval' && config.related) {\n // `createFilter` checked that the related field is configured.\n const related = filterConfig.fields[config.related]!\n if (filterData[config.related] !== related.default) return true\n }\n const value = filterData[name]\n if (isArray(value)) return true\n return value !== config.default\n}\n\nconst clickClose = (name: string, optionValue: number | string) => {\n clearOneFilterSelected(name, optionValue, filterData, filterConfig, filterSelected)\n filterConfig.touched = true\n}\n</script>\n\n<template>\n <div\n v-for=\"item in selectedArray\"\n :key=\"item.name\"\n class=\"a-selected-filters\"\n >\n <div class=\"a-selected-filters__label text-body-small\">{{ item.title }}:</div>\n <div\n v-for=\"option in item.options\"\n :key=\"option.value\"\n class=\"a-selected-filters__chips\"\n >\n <VChip\n v-if=\"canClear(item.name)\"\n closable\n close-label=\"common.button.remove\"\n size=\"small\"\n class=\"a-selected-filters__chip\"\n @click:close.stop=\"clickClose(item.name, option.value)\"\n >\n <template #close>\n <VIcon\n size=\"16\"\n icon=\"mdi-close-circle\"\n />\n </template>\n {{ option.title }}\n </VChip>\n <VChip\n v-else\n size=\"small\"\n class=\"a-selected-filters__chip\"\n >\n {{ option.title }}\n </VChip>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.a-selected-filters {\n display: inline-flex;\n align-items: center;\n background: #f5f5f5;\n border-radius: 20px;\n padding: 4px 4px 4px 12px;\n margin: 0 4px 2px 0;\n gap: 8px;\n max-width: 100%;\n\n &__label {\n white-space: nowrap;\n }\n\n &__chips {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n }\n\n &__chip {\n background: white;\n box-shadow: none;\n\n .v-chip__content {\n max-width: 40vw;\n }\n\n &:hover .v-chip__close {\n opacity: 0.8;\n }\n }\n\n .v-chip__close {\n opacity: 0.3;\n transition: opacity 0.2s;\n }\n}\n\n// Values above are hardcoded light, which renders white-on-white in dark theme.\n.v-theme--dark .a-selected-filters {\n background: rgb(var(--v-theme-on-surface), 0.08);\n\n .a-selected-filters__chip {\n background: rgb(var(--v-theme-on-surface), 0.16);\n color: rgb(var(--v-theme-on-surface));\n }\n}\n</style>\n"],"mappings":""}
|
package/dist/domains/filters/components/FiltersSelected.vue_vue_type_script_setup_true_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersSelected.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_createBlock","_component_VChip","_withModifiers","_withCtx","_createVNode","_component_VIcon","_createTextVNode","_hoisted_1","FiltersSelected_vue_vue_type_script_setup_true_lang_default","filterConfig","inject","FilterConfigKey","filterData","FilterDataKey","filterSelected","FilterSelectedKey","isUndefined","useI18n","getTitleFromConfig","titleT","name","t","selectedArray","computed","fieldOrder","key","valueArray","a","b","useFilterClearHelpers","canClear","isClearable","config","related","value","isArray","clickClose","clearOneFilterSelected","optionValue","openBlock","createElementBlock","Fragment","renderList","item","createElementVNode","toDisplayString","option","createBlock","VChip","withModifiers","withCtx","createVNode","VIcon","createTextVNode"],"sources":["../../../../src/domains/filters/components/FiltersSelected.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { FilterConfigKey, FilterDataKey, FilterSelectedKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\nconst filterSelected = inject(FilterSelectedKey)\n\nif (isUndefined(filterConfig) || isUndefined(filterData) || isUndefined(filterSelected)) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst { t } = useI18n()\n\nconst getTitleFromConfig = (name: string) => {\n const titleT = filterConfig.fields?.[name]?.titleT\n if (titleT) return t(titleT)\n return name\n}\n\nconst selectedArray = computed(() => {\n const fieldOrder = Object.keys(filterConfig.fields)\n return Array.from(filterSelected.value)\n .filter(([key]) => filterConfig.fields?.[key]?.render?.selected !== false)\n .map(([key, valueArray]) => ({\n name: key,\n title: getTitleFromConfig(key),\n options: valueArray,\n }))\n .sort((a, b) => fieldOrder.indexOf(a.name) - fieldOrder.indexOf(b.name))\n})\n\nconst { clearOneFilterSelected, isClearable } = useFilterClearHelpers()\n\n/**\n * Clearing
|
|
1
|
+
{"version":3,"file":"FiltersSelected.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_createBlock","_component_VChip","_withModifiers","_withCtx","_createVNode","_component_VIcon","_createTextVNode","_hoisted_1","FiltersSelected_vue_vue_type_script_setup_true_lang_default","filterConfig","inject","FilterConfigKey","filterData","FilterDataKey","filterSelected","FilterSelectedKey","isUndefined","useI18n","getTitleFromConfig","titleT","name","t","selectedArray","computed","fieldOrder","key","valueArray","a","b","useFilterClearHelpers","canClear","isClearable","config","related","value","isArray","clickClose","clearOneFilterSelected","optionValue","openBlock","createElementBlock","Fragment","renderList","item","createElementVNode","toDisplayString","option","createBlock","VChip","withModifiers","withCtx","createVNode","VIcon","createTextVNode"],"sources":["../../../../src/domains/filters/components/FiltersSelected.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\nimport { FilterConfigKey, FilterDataKey, FilterSelectedKey } from '@/domains/filters/utils/filterInjectionKeys'\nimport { isArray, isUndefined } from '@/shared/utils/common'\nimport { useI18n } from 'vue-i18n'\nimport { useFilterClearHelpers } from '@/domains/filters/composables/filterFactory'\n\nconst filterConfig = inject(FilterConfigKey)\nconst filterData = inject(FilterDataKey)\nconst filterSelected = inject(FilterSelectedKey)\n\nif (isUndefined(filterConfig) || isUndefined(filterData) || isUndefined(filterSelected)) {\n throw new Error('Incorrect provide/inject config.')\n}\n\nconst { t } = useI18n()\n\nconst getTitleFromConfig = (name: string) => {\n const titleT = filterConfig.fields?.[name]?.titleT\n if (titleT) return t(titleT)\n return name\n}\n\nconst selectedArray = computed(() => {\n const fieldOrder = Object.keys(filterConfig.fields)\n return Array.from(filterSelected.value)\n .filter(([key]) => filterConfig.fields?.[key]?.render?.selected !== false)\n .map(([key, valueArray]) => ({\n name: key,\n title: getTitleFromConfig(key),\n options: valueArray,\n }))\n .sort((a, b) => fieldOrder.indexOf(a.name) - fieldOrder.indexOf(b.name))\n})\n\nconst { clearOneFilterSelected, isClearable } = useFilterClearHelpers()\n\n/**\n * Clearing restores the default. On a field already at its non-null default, the close\n * button would drop the chip, write the same value, and the chip would come back.\n * Arrays differ: closing one chip removes one option.\n */\nconst canClear = (name: string) => {\n if (!isClearable(name, filterConfig)) return false\n // `isClearable` has just read this same config, so it is there.\n const config = filterConfig.fields[name]!\n // A time interval is a pair sharing one chip, and clearing writes the default into both.\n // Only `until` may differ, because the custom dialog opens prefilled. The button still has work then.\n if (config.type === 'timeInterval' && config.related) {\n // `createFilter` checked that the related field is configured.\n const related = filterConfig.fields[config.related]!\n if (filterData[config.related] !== related.default) return true\n }\n const value = filterData[name]\n if (isArray(value)) return true\n return value !== config.default\n}\n\nconst clickClose = (name: string, optionValue: number | string) => {\n clearOneFilterSelected(name, optionValue, filterData, filterConfig, filterSelected)\n filterConfig.touched = true\n}\n</script>\n\n<template>\n <div\n v-for=\"item in selectedArray\"\n :key=\"item.name\"\n class=\"a-selected-filters\"\n >\n <div class=\"a-selected-filters__label text-body-small\">{{ item.title }}:</div>\n <div\n v-for=\"option in item.options\"\n :key=\"option.value\"\n class=\"a-selected-filters__chips\"\n >\n <VChip\n v-if=\"canClear(item.name)\"\n closable\n close-label=\"common.button.remove\"\n size=\"small\"\n class=\"a-selected-filters__chip\"\n @click:close.stop=\"clickClose(item.name, option.value)\"\n >\n <template #close>\n <VIcon\n size=\"16\"\n icon=\"mdi-close-circle\"\n />\n </template>\n {{ option.title }}\n </VChip>\n <VChip\n v-else\n size=\"small\"\n class=\"a-selected-filters__chip\"\n >\n {{ option.title }}\n </VChip>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.a-selected-filters {\n display: inline-flex;\n align-items: center;\n background: #f5f5f5;\n border-radius: 20px;\n padding: 4px 4px 4px 12px;\n margin: 0 4px 2px 0;\n gap: 8px;\n max-width: 100%;\n\n &__label {\n white-space: nowrap;\n }\n\n &__chips {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n }\n\n &__chip {\n background: white;\n box-shadow: none;\n\n .v-chip__content {\n max-width: 40vw;\n }\n\n &:hover .v-chip__close {\n opacity: 0.8;\n }\n }\n\n .v-chip__close {\n opacity: 0.3;\n transition: opacity 0.2s;\n }\n}\n\n// Values above are hardcoded light, which renders white-on-white in dark theme.\n.v-theme--dark .a-selected-filters {\n background: rgb(var(--v-theme-on-surface), 0.08);\n\n .a-selected-filters__chip {\n background: rgb(var(--v-theme-on-surface), 0.16);\n color: rgb(var(--v-theme-on-surface));\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;EAOA,IAAMe,IAAeC,EAAOC,CAAe,GACrCC,IAAaF,EAAOG,CAAa,GACjCC,IAAiBJ,EAAOK,CAAiB;EAE/C,IAAIC,EAAYP,CAAY,KAAKO,EAAYJ,CAAU,KAAKI,EAAYF,CAAc,GACpF,MAAU,MAAM,kCAAkC;EAGpD,IAAM,EAAE,SAAMG,EAAQ,GAEhBC,KAAsB,MAAiB;GAC3C,IAAMC,IAASV,EAAa,SAASW,EAAK,EAAE;GAE5C,OADID,IAAeE,EAAEF,CAAM,IACpBC;EACT,GAEME,IAAgBC,QAAe;GACnC,IAAMC,IAAa,OAAO,KAAKf,EAAa,MAAM;GAClD,OAAO,MAAM,KAAKK,EAAe,KAAK,CAAA,CACnC,QAAQ,CAACW,OAAShB,EAAa,SAASgB,EAAI,EAAE,QAAQ,aAAa,EAAK,CAAA,CACxE,KAAK,CAACA,GAAKC,QAAiB;IAC3B,MAAMD;IACN,OAAOP,EAAmBO,CAAG;IAC7B,SAASC;GACX,EAAE,CAAA,CACD,MAAM,GAAG,MAAMF,EAAW,QAAQG,EAAE,IAAI,IAAIH,EAAW,QAAQI,EAAE,IAAI,CAAC;EAC3E,CAAC,GAEK,EAAE,2BAAwB,mBAAgBC,EAAsB,GAOhEC,KAAY,MAAiB;GACjC,IAAI,CAACC,EAAYX,GAAMX,CAAY,GAAG,OAAO;GAE7C,IAAMuB,IAASvB,EAAa,OAAOW;GAGnC,IAAIY,EAAO,SAAS,kBAAkBA,EAAO,SAAS;IAEpD,IAAMC,IAAUxB,EAAa,OAAOuB,EAAO;IAC3C,IAAIpB,EAAWoB,EAAO,aAAaC,EAAQ,SAAS,OAAO;GAC7D;GACA,IAAMC,IAAQtB,EAAWQ;GAEzB,OADIe,EAAQD,CAAK,IAAU,KACpBA,MAAUF,EAAO;EAC1B,GAEMI,KAAc,GAAc,MAAiC;GAEjE,AADAC,EAAuBjB,GAAMkB,GAAa1B,GAAYH,GAAcK,CAAc,GAClF,EAAa,UAAU;EACzB;E,kBAIEpB,EAAA,EAAA,GAAAC,EAmCMC,GAAA,MAAAC,EAlCWyB,EAAA,QAAR,OADT5B,EAAA,GAAAC,EAmCM,OAAA;GAjCH,KAAKgD,EAAK;GACX,OAAM;E,IAEN7C,EAA8E,OAA9ES,GAA8ER,EAApB4C,EAAK,KAAK,IAAG,KAAC,CAAA,IACxEjD,EAAA,EAAA,GAAAC,EA4BMC,GAAA,MAAAC,EA3Ba8C,EAAK,UAAf,OADTjD,EAAA,GAAAC,EA4BM,OAAA;GA1BH,KAAKmD,EAAO;GACb,OAAM;E,IAGEhB,EAASa,EAAK,IAAI,KAD1BjD,EAAA,GAAAM,EAeQC,GAAA;;GAbN,UAAA;GACA,eAAY;GACZ,MAAK;GACL,OAAM;GACL,iBAAWC,GAAA,MAAOkC,EAAWO,EAAK,MAAMG,EAAO,KAAK,GAAA,CAAA,MAAA,CAAA;;GAE1C,OAAK3C,QAIZ,CAHFC,EAGEC,GAAA;IAFA,MAAK;IACL,MAAK;;GAEE,SAAAF,QACX,CADWG,EAAA,MACXP,EAAG+C,EAAO,KAAK,GAAA,CAAA,C;;E,gCAEjBpD,EAAA,GAAAM,EAMQC,GAAA;;GAJN,MAAK;GACL,OAAM;;GAEN,SAAAE,QAAkB,CAAfG,EAAAP,EAAA+C,EAAO,KAAK,GAAA,CAAA,C"}
|
|
@@ -8,13 +8,10 @@ export type FilterStoreIdentifier = {
|
|
|
8
8
|
subject: string;
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
|
-
* Hash for a filter link,
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* not survive that trip; check with `isRouterSafeHash` and fall back to assigning
|
|
16
|
-
* `window.location.hash` after navigating. Returns an empty string when nothing differs from
|
|
17
|
-
* the defaults.
|
|
11
|
+
* Hash for a filter link, leaving out values equal to their default. Returns an empty string when nothing differs.
|
|
12
|
+
* Use with `router.push({ name, hash })`. The hash needs the leading `#`, or vue-router appends it to the path.
|
|
13
|
+
* A hash containing `%` (diacritics, `&`, `=`) does not survive the push. Check
|
|
14
|
+
* `isRouterSafeHash` and fall back to setting `window.location.hash` after navigating.
|
|
18
15
|
*/
|
|
19
16
|
export declare function buildFilterHash<F extends readonly MakeFilterOption<string>[]>(filterConfig: FilterConfig<F>, filters: Partial<Record<keyof FilterData<F> & string, AllowedFilterValues>>, sortBy?: DatatableSortBy): string;
|
|
20
17
|
/** Whether `router.push({ hash })` would leave the hash intact — see `buildFilterHash`. */
|
|
@@ -34,6 +31,7 @@ export declare function useFilterClearHelpers<F extends readonly MakeFilterOptio
|
|
|
34
31
|
export interface FilterHelpersMoreOptions {
|
|
35
32
|
storeFiltersLocalStorage: string | boolean;
|
|
36
33
|
populateUrlParams: boolean;
|
|
34
|
+
pageStoreKey?: string;
|
|
37
35
|
}
|
|
38
36
|
export declare function useFilterHelpers<F extends readonly MakeFilterOption<string>[] = readonly MakeFilterOption<string>[]>(filterData: FilterData<F>, filterConfig: FilterConfig<F>, moreOptions?: Partial<FilterHelpersMoreOptions>): {
|
|
39
37
|
loadStoredFilters: (pagination: Ref<Pagination>, callback?: AnyFn) => boolean;
|
|
@@ -46,28 +44,20 @@ export declare function useFilterHelpers<F extends readonly MakeFilterOption<str
|
|
|
46
44
|
} | null;
|
|
47
45
|
};
|
|
48
46
|
/**
|
|
49
|
-
* Provides the filter (`FilterConfigKey`, `FilterDataKey`) and `pagination` (`DatatablePaginationKey`)
|
|
50
|
-
* bar and `ADatatablePagination` below
|
|
51
|
-
* `fetchList(pagination, filterData, filterConfig)`
|
|
52
|
-
*
|
|
53
|
-
* and sort go through `useFilterHelpers` (with `filterHelpersOptions`)
|
|
54
|
-
* remembered page are restored before the first load.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* than the list's three arguments, or a parent renders the filter bar (the parent provides then).
|
|
59
|
-
*
|
|
60
|
-
* ```ts
|
|
47
|
+
* Provides the filter (`FilterConfigKey`, `FilterDataKey`) and `pagination` (`DatatablePaginationKey`)
|
|
48
|
+
* to the filter bar and `ADatatablePagination` below, and wires the list to them.
|
|
49
|
+
* `getList` is a debounced `fetchList(pagination, filterData, filterConfig)` that resolves when
|
|
50
|
+
* the load finishes. A call superseded within the debounce resolves at once without loading.
|
|
51
|
+
* Submit, reset and sort go through `useFilterHelpers` (with `filterHelpersOptions`).
|
|
52
|
+
* On mount the stored filter and remembered page are restored before the first load.
|
|
53
|
+
* Use only for a datatable that is the parent of its filter bar. Wire it by hand when the first load skips the stored
|
|
54
|
+
* filter, `getList` adds logic, sort is custom, `fetchList` takes other arguments, or a parent renders the filter bar.
|
|
55
|
+
* @example
|
|
61
56
|
* const { filterData, filterConfig } = useFaqListFilter()
|
|
62
57
|
* const { fetchList, listItems } = useFaqListActions()
|
|
63
58
|
* const { pagination } = usePagination(SORT_BY_ID)
|
|
64
|
-
* const { getList, sortByChange, submitFilterAction, resetFilterAction
|
|
65
|
-
*
|
|
66
|
-
* filterConfig,
|
|
67
|
-
* pagination,
|
|
68
|
-
* fetchList
|
|
69
|
-
* )
|
|
70
|
-
* ```
|
|
59
|
+
* const { getList, sortByChange, submitFilterAction, resetFilterAction
|
|
60
|
+
* } = useDatatableList(filterData, filterConfig, pagination, fetchList)
|
|
71
61
|
*/
|
|
72
62
|
export declare function useDatatableList<F extends readonly MakeFilterOption<string>[] = readonly MakeFilterOption<string>[], R = unknown>(filterData: FilterData<F>, filterConfig: FilterConfig<F>, pagination: Ref<Pagination>, fetchList: (pagination: Ref<Pagination>, filterData: FilterData<F>, filterConfig: FilterConfig<F>) => R, filterHelpersOptions?: Partial<FilterHelpersMoreOptions>): {
|
|
73
63
|
getList: import('@vueuse/shared').UseDebounceFnReturn<() => R>;
|
|
@@ -140,16 +140,21 @@ function z(e, t, o = {}) {
|
|
|
140
140
|
...o
|
|
141
141
|
}, g;
|
|
142
142
|
c(h.storeFiltersLocalStorage) ? g = h.storeFiltersLocalStorage : n(h.storeFiltersLocalStorage) && !0 === h.storeFiltersLocalStorage && c(t.general.system) && c(t.general.subject) && (g = "tableFilter_" + t.general.system + "_" + t.general.subject);
|
|
143
|
-
let _ = c(h.storeFiltersLocalStorage) ? h.storeFiltersLocalStorage : f(t.general.system, t.general.subject);
|
|
143
|
+
let _ = h.pageStoreKey ?? (c(h.storeFiltersLocalStorage) ? h.storeFiltersLocalStorage : f(t.general.system, t.general.subject));
|
|
144
144
|
y() && x(m, _);
|
|
145
|
-
let {
|
|
145
|
+
let { consumeStoredPage: b, getStoredRowsPerPage: S, getStoredView: C, setStoredPage: w } = p(), D = (e) => A(F(), e), O = (e) => w(_, e.value.page, e.value.rowsPerPage, D(e.value.sortBy)), j = h.populateUrlParams || !l(g), M = (e) => {
|
|
146
|
+
let t = b(_);
|
|
147
|
+
if (t === null || j) return t;
|
|
148
|
+
let n = C(_);
|
|
149
|
+
return n === null || n === D(e) ? t : null;
|
|
150
|
+
}, N = (e, t) => t === null ? e.value.rowsPerPage : S(_) ?? e.value.rowsPerPage, { clearAll: P } = L(), F = () => {
|
|
146
151
|
let n = {};
|
|
147
152
|
for (let i in e) try {
|
|
148
153
|
let o = i, s = e[o];
|
|
149
154
|
l(s) || a(s) || r(s) || k(s, t.fields[o].default) || (n[i] = s);
|
|
150
155
|
} catch {}
|
|
151
156
|
return n;
|
|
152
|
-
},
|
|
157
|
+
}, I = (e, t, n) => A(e, n ? t.value.sortBy : void 0), z = (e) => {
|
|
153
158
|
if (!e) return null;
|
|
154
159
|
e.startsWith("#") && (e = e.substring(1));
|
|
155
160
|
let n = e.indexOf(E);
|
|
@@ -175,37 +180,38 @@ function z(e, t, o = {}) {
|
|
|
175
180
|
filters: o,
|
|
176
181
|
sortBy: s
|
|
177
182
|
};
|
|
178
|
-
},
|
|
183
|
+
}, B = (e) => {
|
|
179
184
|
let t = window.location.pathname + window.location.search + e, n = window.history.state, r = s(n) && c(n.current) ? {
|
|
180
185
|
...n,
|
|
181
186
|
current: (n.current.split("#")[0] ?? "") + e
|
|
182
187
|
} : n;
|
|
183
188
|
window.history.replaceState(r, "", t);
|
|
184
|
-
},
|
|
185
|
-
h.populateUrlParams !== !1 &&
|
|
186
|
-
},
|
|
187
|
-
h.populateUrlParams !== !1 &&
|
|
188
|
-
},
|
|
189
|
+
}, V = (e) => {
|
|
190
|
+
h.populateUrlParams !== !1 && B("#" + e);
|
|
191
|
+
}, H = () => {
|
|
192
|
+
h.populateUrlParams !== !1 && B("");
|
|
193
|
+
}, U = () => h.populateUrlParams === !1 ? null : z(window.location.hash), W = (e) => {
|
|
189
194
|
g && localStorage && localStorage.setItem(g, e);
|
|
190
|
-
},
|
|
195
|
+
}, G = () => {
|
|
191
196
|
if (!g || !localStorage) return null;
|
|
192
197
|
let e = localStorage.getItem(g);
|
|
193
|
-
return !e || !c(e) ? null :
|
|
198
|
+
return !e || !c(e) ? null : z(e);
|
|
194
199
|
};
|
|
195
200
|
return {
|
|
196
201
|
loadStoredFilters: (n, r) => {
|
|
197
|
-
let
|
|
198
|
-
if (a(
|
|
199
|
-
let e =
|
|
202
|
+
let o = "hash", s = U();
|
|
203
|
+
if (a(s) && (o = "localStorage", s = G()), a(s) || i(s.filters) && a(s.sortBy)) {
|
|
204
|
+
let e = M(n.value.sortBy);
|
|
200
205
|
return e !== null && (n.value = {
|
|
201
206
|
...n.value,
|
|
202
|
-
page: e
|
|
203
|
-
|
|
207
|
+
page: e,
|
|
208
|
+
rowsPerPage: N(n, e)
|
|
209
|
+
}), O(n), r && r(), !1;
|
|
204
210
|
}
|
|
205
|
-
let
|
|
206
|
-
|
|
211
|
+
let f = o === "hash" && !i(s.filters);
|
|
212
|
+
f && P(e, t);
|
|
207
213
|
for (let t in e) {
|
|
208
|
-
let n = t, r =
|
|
214
|
+
let n = t, r = s.filters[n];
|
|
209
215
|
if (!l(r)) {
|
|
210
216
|
if (c(r)) {
|
|
211
217
|
let e = d(r);
|
|
@@ -218,32 +224,33 @@ function z(e, t, o = {}) {
|
|
|
218
224
|
e[n] = r;
|
|
219
225
|
}
|
|
220
226
|
}
|
|
221
|
-
if (
|
|
227
|
+
if (o === "localStorage" && g && localStorage) {
|
|
222
228
|
let e = localStorage.getItem(g);
|
|
223
|
-
e &&
|
|
229
|
+
e && V(e);
|
|
224
230
|
}
|
|
225
|
-
let
|
|
231
|
+
let p = s.sortBy ?? n.value.sortBy, m = M(p);
|
|
226
232
|
return n.value = {
|
|
227
233
|
...n.value,
|
|
228
|
-
sortBy:
|
|
229
|
-
page:
|
|
230
|
-
|
|
234
|
+
sortBy: p,
|
|
235
|
+
page: m ?? (o === "hash" ? 1 : n.value.page),
|
|
236
|
+
rowsPerPage: N(n, m)
|
|
237
|
+
}, O(n), f && W(I(F(), n, !0)), r && r(), !0;
|
|
231
238
|
},
|
|
232
239
|
resetFilter: (e, n) => {
|
|
233
240
|
e.value = {
|
|
234
241
|
...e.value,
|
|
235
242
|
page: 1
|
|
236
|
-
}, g && localStorage && localStorage.removeItem(g),
|
|
243
|
+
}, O(e), g && localStorage && localStorage.removeItem(g), H(), t.touched = !1, n && n();
|
|
237
244
|
},
|
|
238
245
|
submitFilter: (e, n) => {
|
|
239
|
-
let r =
|
|
240
|
-
|
|
246
|
+
let r = F(), i = I(r, e, !0);
|
|
247
|
+
V(i), W(i), e.value = {
|
|
241
248
|
...e.value,
|
|
242
249
|
page: 1
|
|
243
|
-
}, t.touched = !1, n && n();
|
|
250
|
+
}, O(e), t.touched = !1, n && n();
|
|
244
251
|
},
|
|
245
|
-
serializeFilters:
|
|
246
|
-
deserializeFilters:
|
|
252
|
+
serializeFilters: I,
|
|
253
|
+
deserializeFilters: z
|
|
247
254
|
};
|
|
248
255
|
}
|
|
249
256
|
function B(e, t, n, r, i = {}) {
|