@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
|
@@ -4,153 +4,153 @@ import { CollabAccessRoomStatus as l, CollabRequestToJoinStatus as u, CollabRequ
|
|
|
4
4
|
import { useCommonAdminCollabOptions as ne } from "./commonAdminCollabOptions.js";
|
|
5
5
|
import { useCollabStateInternal as re } from "./collabState.js";
|
|
6
6
|
import { computed as m, ref as h, watch as g } from "vue";
|
|
7
|
-
import { tryOnBeforeUnmount as
|
|
7
|
+
import { tryOnBeforeUnmount as ie } from "@vueuse/core";
|
|
8
8
|
// src/domains/collab/composables/collabRoom.ts
|
|
9
|
-
var
|
|
10
|
-
function
|
|
11
|
-
let { collabSocket:
|
|
12
|
-
e(
|
|
13
|
-
}, fe = (t) => {
|
|
14
|
-
t.room === b && e(M.value) && M.value(t.userId, t.timestamp);
|
|
9
|
+
var ae = h(/* @__PURE__ */ new Set()), _ = 5e3;
|
|
10
|
+
function v(v, oe = !1, y = void 0, b = void 0, se = !1) {
|
|
11
|
+
let { collabSocket: x, collabRoomInfoState: S, collabFieldDataBufferState: C, collabFieldLocksState: w, claimRoomInfoWrite: T, collabConnectionHopeless: E } = re(), D = o(), O = h(), k = h(), ce = i(), A = h(), j = h(), M = n(), N = h(), P = h(), le = s(), F = h(), I = h(), L = te(), R = h(), z = h(), B = r(), V = h(), H = h(), U = ee(), W = h(), G = h(), ue = a(), K = h(), q = h(), de = c(), J = h(), Y = h(), fe = () => {
|
|
12
|
+
e(k.value) && k.value();
|
|
15
13
|
}, pe = (t) => {
|
|
16
|
-
t.room ===
|
|
14
|
+
t.room === v && e(j.value) && j.value(t.userId, t.timestamp);
|
|
17
15
|
}, me = (t) => {
|
|
18
|
-
t.room ===
|
|
16
|
+
t.room === v && e(P.value) && P.value();
|
|
19
17
|
}, he = (t) => {
|
|
20
|
-
t.room ===
|
|
18
|
+
t.room === v && e(I.value) && I.value();
|
|
21
19
|
}, ge = (t) => {
|
|
22
|
-
t.room ===
|
|
20
|
+
t.room === v && e(z.value) && z.value(t.userId, t.timestamp);
|
|
23
21
|
}, _e = (t) => {
|
|
24
|
-
t.room ===
|
|
22
|
+
t.room === v && e(H.value) && H.value();
|
|
25
23
|
}, ve = (t) => {
|
|
26
|
-
t.room ===
|
|
24
|
+
t.room === v && e(G.value) && G.value();
|
|
27
25
|
}, ye = (t) => {
|
|
28
|
-
t.room ===
|
|
29
|
-
}, be = (
|
|
30
|
-
|
|
26
|
+
t.room === v && e(q.value) && q.value();
|
|
27
|
+
}, be = (t) => {
|
|
28
|
+
t.room === v && e(Y.value) && Y.value(t.startedCallback);
|
|
31
29
|
}, xe = (e) => {
|
|
32
|
-
|
|
30
|
+
j.value = e, A.value = ce.on(pe);
|
|
33
31
|
}, Se = (e) => {
|
|
34
|
-
|
|
32
|
+
P.value = e, N.value = M.on(me);
|
|
35
33
|
}, Ce = (e) => {
|
|
36
|
-
|
|
34
|
+
I.value = e, F.value = le.on(he);
|
|
37
35
|
}, we = (e) => {
|
|
38
|
-
|
|
36
|
+
z.value = e, R.value = L.on(ge);
|
|
39
37
|
}, Te = (e) => {
|
|
40
|
-
|
|
38
|
+
H.value = e, V.value = B.on(_e);
|
|
41
39
|
}, Ee = (e) => {
|
|
42
|
-
|
|
40
|
+
G.value = e, W.value = U.on(ve);
|
|
43
41
|
}, De = (e) => {
|
|
44
|
-
|
|
42
|
+
k.value = e, O.value = D.on(fe);
|
|
45
43
|
}, Oe = (e) => {
|
|
46
|
-
|
|
44
|
+
q.value = e, K.value = ue.on(ye);
|
|
45
|
+
}, ke = (e) => {
|
|
46
|
+
Y.value = e, J.value = de.on(be);
|
|
47
47
|
};
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
ie(() => {
|
|
49
|
+
se || (e(O.value) && O.value(), e(A.value) && A.value(), e(N.value) && N.value(), e(F.value) && F.value(), e(R.value) && R.value(), e(V.value) && V.value(), e(W.value) && W.value(), e(K.value) && K.value(), e(J.value) && J.value());
|
|
50
50
|
});
|
|
51
|
-
let { collabOptions: X } = ne(),
|
|
52
|
-
if (!X.value.enabled || t(
|
|
53
|
-
let e =
|
|
54
|
-
|
|
55
|
-
e() &&
|
|
51
|
+
let { collabOptions: X } = ne(), Ae = () => {
|
|
52
|
+
if (!X.value.enabled || t(x.value)) return;
|
|
53
|
+
let e = T(v);
|
|
54
|
+
x.value.emit("subscribeCollabRoomInfo", v, (t) => {
|
|
55
|
+
e() && S.set(v, t.room);
|
|
56
56
|
});
|
|
57
|
-
},
|
|
58
|
-
if (!X.value.enabled || t(
|
|
59
|
-
let e =
|
|
60
|
-
|
|
61
|
-
e() &&
|
|
57
|
+
}, je = () => {
|
|
58
|
+
if (!X.value.enabled || t(x.value)) return;
|
|
59
|
+
let e = T(v);
|
|
60
|
+
x.value.emit("unsubscribeCollabRoomInfo", v, (t) => {
|
|
61
|
+
e() && S.set(v, t.room);
|
|
62
62
|
});
|
|
63
|
-
},
|
|
64
|
-
if (!X.value.enabled || t(
|
|
65
|
-
let a =
|
|
66
|
-
|
|
67
|
-
e ? (o(), i(l.Failed)) : p(t) ? (a() && (
|
|
63
|
+
}, Me = async (e = {}, { ackTimeout: n = _ } = {}) => new Promise((r, i) => {
|
|
64
|
+
if (!X.value.enabled || t(x.value) || E()) return i(l.Failed);
|
|
65
|
+
let a = T(v);
|
|
66
|
+
x.value?.timeout(n).emit("joinCollabRoom", v, e, (e, t) => {
|
|
67
|
+
e ? (o(), i(l.Failed)) : p(t) ? (a() && (S.set(v, t.room), t.room.status === f.Active && C.delete(v)), r(t.status)) : (o(), i(t.status));
|
|
68
68
|
});
|
|
69
69
|
function o() {
|
|
70
|
-
a() &&
|
|
70
|
+
a() && S.set(v, Q());
|
|
71
71
|
}
|
|
72
|
-
}),
|
|
73
|
-
if (!X.value.enabled || t(
|
|
74
|
-
|
|
75
|
-
let r =
|
|
76
|
-
|
|
77
|
-
!e && r() && p(t) &&
|
|
72
|
+
}), Ne = ({ ackTimeout: e = _ } = {}) => new Promise((n) => {
|
|
73
|
+
if (!X.value.enabled || t(x.value)) return void n();
|
|
74
|
+
C.delete(v);
|
|
75
|
+
let r = T(v);
|
|
76
|
+
x.value?.timeout(e).emit("leaveCollabRoom", v, (e, t) => {
|
|
77
|
+
!e && r() && p(t) && S.set(v, t.room), n();
|
|
78
78
|
});
|
|
79
|
-
}),
|
|
80
|
-
X.value.enabled && !t(
|
|
81
|
-
},
|
|
82
|
-
if (!X.value.enabled || t(
|
|
83
|
-
|
|
79
|
+
}), Pe = () => {
|
|
80
|
+
X.value.enabled && !t(x.value) && (w.set(v, /* @__PURE__ */ new Map()), x.value?.emit("enteredCollabRoom", v));
|
|
81
|
+
}, Fe = () => new Promise((e, n) => {
|
|
82
|
+
if (!X.value.enabled || t(x.value) || E()) return n(u.Failed);
|
|
83
|
+
x.value?.timeout(2e3).emit("requestToJoin", v, (/* @__PURE__ */ new Date()).getTime(), (t, r) => {
|
|
84
84
|
t ? n(u.Failed) : r.status === u.Ok ? e(r.status) : n(r.status);
|
|
85
85
|
});
|
|
86
|
-
}),
|
|
87
|
-
X.value.enabled && !t(
|
|
88
|
-
},
|
|
89
|
-
X.value.enabled && !t(
|
|
90
|
-
},
|
|
91
|
-
if (!X.value.enabled || t(
|
|
92
|
-
|
|
86
|
+
}), Ie = (e) => {
|
|
87
|
+
X.value.enabled && !t(x.value) && x.value.emit("approveRequestToJoin", v, e);
|
|
88
|
+
}, Le = (e) => {
|
|
89
|
+
X.value.enabled && !t(x.value) && x.value.emit("rejectRequestToJoin", v, e);
|
|
90
|
+
}, Re = async () => new Promise((e, n) => {
|
|
91
|
+
if (!X.value.enabled || t(x.value) || E()) return n(d.Failed);
|
|
92
|
+
x.value?.timeout(2e3).emit("requestToTakeModeration", v, (/* @__PURE__ */ new Date()).getTime(), (t, r) => {
|
|
93
93
|
t ? n(d.Failed) : r.status === d.Ok ? e(r.status) : n(r.status);
|
|
94
94
|
});
|
|
95
|
-
}),
|
|
96
|
-
X.value.enabled && !t(
|
|
97
|
-
}, Re = () => {
|
|
98
|
-
X.value.enabled && !t(C.value) && C.value.emit("rejectRequestToTakeModeration", b);
|
|
99
|
-
}, ze = (e) => {
|
|
100
|
-
X.value.enabled && !t(C.value) && C.value.emit("kickUserFromRoom", b, e);
|
|
95
|
+
}), ze = () => {
|
|
96
|
+
X.value.enabled && !t(x.value) && x.value.emit("approveRequestToTakeModeration", v);
|
|
101
97
|
}, Be = () => {
|
|
102
|
-
X.value.enabled && !t(
|
|
103
|
-
},
|
|
104
|
-
X.value.enabled && !t(
|
|
98
|
+
X.value.enabled && !t(x.value) && x.value.emit("rejectRequestToTakeModeration", v);
|
|
99
|
+
}, Z = (e) => {
|
|
100
|
+
X.value.enabled && !t(x.value) && x.value.emit("kickUserFromRoom", v, e);
|
|
101
|
+
}, Ve = () => {
|
|
102
|
+
X.value.enabled && !t(x.value) && x.value.emit("purgeRoom", v);
|
|
103
|
+
}, He = (e) => {
|
|
104
|
+
X.value.enabled && !t(x.value) && x.value.emit("transferModeration", v, e);
|
|
105
105
|
}, Q = () => ({
|
|
106
106
|
name: "",
|
|
107
107
|
status: f.Inactive,
|
|
108
108
|
users: [],
|
|
109
109
|
moderator: null,
|
|
110
110
|
options: {}
|
|
111
|
-
}),
|
|
111
|
+
}), Ue = async (e) => {
|
|
112
112
|
let n = Q();
|
|
113
113
|
return new Promise((r) => {
|
|
114
|
-
if (!X.value.enabled || t(
|
|
115
|
-
|
|
114
|
+
if (!X.value.enabled || t(x.value)) return r(n);
|
|
115
|
+
x.value?.timeout(500).emit("fetchRoomsInfo", [e], (i, a) => {
|
|
116
116
|
if (i) return void r(n);
|
|
117
117
|
let o = a[e];
|
|
118
|
-
return t(o) ? void r(n) : (t(
|
|
118
|
+
return t(o) ? void r(n) : (t(y) || y(o.users), t(b) || b(), r(o));
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
|
-
}, $ = m(() =>
|
|
122
|
-
return
|
|
123
|
-
e.users.length && (t(
|
|
121
|
+
}, $ = m(() => S.get(v) ?? Q());
|
|
122
|
+
return oe && g($, (e) => {
|
|
123
|
+
e.users.length && (t(y) || y(e.users), t(b) || b());
|
|
124
124
|
}, { immediate: !0 }), {
|
|
125
|
-
subscribeCollabRoomInfo:
|
|
126
|
-
unsubscribeCollabRoomInfo:
|
|
127
|
-
joinCollabRoom:
|
|
128
|
-
leaveCollabRoom:
|
|
129
|
-
requestToJoinCollabRoom:
|
|
130
|
-
approveRequestToJoinCollabRoom:
|
|
131
|
-
rejectRequestToJoinCollabRoom:
|
|
132
|
-
addJoinRequestListener:
|
|
133
|
-
addCollabReconnectListener:
|
|
134
|
-
addApprovedJoinRequestListener:
|
|
135
|
-
addRejectedJoinRequestListener:
|
|
136
|
-
requestToTakeModeration:
|
|
137
|
-
approveRequestToTakeModeration:
|
|
138
|
-
rejectRequestToTakeModeration:
|
|
139
|
-
addRequestToTakeModerationListener:
|
|
140
|
-
addApprovedRequestToTakeModerationListener:
|
|
141
|
-
addRejectedRequestToTakeModerationListener:
|
|
142
|
-
enteredCollabRoom:
|
|
143
|
-
kickUserFromRoom:
|
|
144
|
-
purgeRoom:
|
|
145
|
-
transferModeration:
|
|
146
|
-
addKickedFromRoomListener:
|
|
147
|
-
addCollabStartingListener:
|
|
148
|
-
fetchRoomInfo:
|
|
125
|
+
subscribeCollabRoomInfo: Ae,
|
|
126
|
+
unsubscribeCollabRoomInfo: je,
|
|
127
|
+
joinCollabRoom: Me,
|
|
128
|
+
leaveCollabRoom: Ne,
|
|
129
|
+
requestToJoinCollabRoom: Fe,
|
|
130
|
+
approveRequestToJoinCollabRoom: Ie,
|
|
131
|
+
rejectRequestToJoinCollabRoom: Le,
|
|
132
|
+
addJoinRequestListener: xe,
|
|
133
|
+
addCollabReconnectListener: De,
|
|
134
|
+
addApprovedJoinRequestListener: Se,
|
|
135
|
+
addRejectedJoinRequestListener: Ce,
|
|
136
|
+
requestToTakeModeration: Re,
|
|
137
|
+
approveRequestToTakeModeration: ze,
|
|
138
|
+
rejectRequestToTakeModeration: Be,
|
|
139
|
+
addRequestToTakeModerationListener: we,
|
|
140
|
+
addApprovedRequestToTakeModerationListener: Te,
|
|
141
|
+
addRejectedRequestToTakeModerationListener: Ee,
|
|
142
|
+
enteredCollabRoom: Pe,
|
|
143
|
+
kickUserFromRoom: Z,
|
|
144
|
+
purgeRoom: Ve,
|
|
145
|
+
transferModeration: He,
|
|
146
|
+
addKickedFromRoomListener: Oe,
|
|
147
|
+
addCollabStartingListener: ke,
|
|
148
|
+
fetchRoomInfo: Ue,
|
|
149
149
|
collabRoomInfo: $,
|
|
150
|
-
collabRoomLocks: m(() =>
|
|
151
|
-
collabFieldDataBufferState:
|
|
152
|
-
alertedOccupiedRooms:
|
|
153
|
-
unsubscribeJoinRequestListener:
|
|
150
|
+
collabRoomLocks: m(() => w.get(v) ?? /* @__PURE__ */ new Map()),
|
|
151
|
+
collabFieldDataBufferState: C,
|
|
152
|
+
alertedOccupiedRooms: ae,
|
|
153
|
+
unsubscribeJoinRequestListener: A,
|
|
154
154
|
unsubscribeApprovedJoinRequestListener: N,
|
|
155
155
|
unsubscribeRejectedJoinRequestListener: F,
|
|
156
156
|
unsubscribeRequestToTakeModerationListener: R,
|
|
@@ -158,9 +158,9 @@ function b(b, ie = !1, x = void 0, S = void 0, ae = !1) {
|
|
|
158
158
|
unsubscribeRejectedRequestToTakeModerationListener: W,
|
|
159
159
|
unsubscribeKickedFromRoomListener: K,
|
|
160
160
|
unsubscribeCollabStartingListener: J,
|
|
161
|
-
unsubscribeCollabReconnectListener:
|
|
161
|
+
unsubscribeCollabReconnectListener: O
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
|
-
export {
|
|
164
|
+
export { v as useCollabRoom };
|
|
165
165
|
|
|
166
166
|
//# sourceMappingURL=collabRoom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collabRoom.js","names":["alertedOccupiedRooms","ref","ACK_TIMEOUT","useCollabRoom","useCollabStateInternal","reconnectEventBus","useCollabReconnectEventBus","unsubscribeCollabReconnectListener","reconnectCallback","joinRequestEventBus","useCollabJoinRequestEventBus","unsubscribeJoinRequestListener","joinRequestCallback","approvedJoinRequestEventBus","useCollabApprovedJoinRequestEventBus","unsubscribeApprovedJoinRequestListener","approvedJoinRequestCallback","rejectedJoinRequestEventBus","useCollabRejectedJoinRequestEventBus","unsubscribeRejectedJoinRequestListener","rejectedJoinRequestCallback","requestToTakeModerationEventBus","useCollabRequestToTakeModerationEventBus","unsubscribeRequestToTakeModerationListener","requestToTakeModerationCallback","approvedRequestToTakeModerationEventBus","useCollabApprovedRequestToTakeModerationEventBus","unsubscribeApprovedRequestToTakeModerationListener","approvedRequestToTakeModerationCallback","rejectedRequestToTakeModerationEventBus","useCollabRejectedRequestToTakeModerationEventBus","unsubscribeRejectedRequestToTakeModerationListener","rejectedRequestToTakeModerationCallback","kickedFromRoomEventBus","useCollabKickedFromRoomEventBus","unsubscribeKickedFromRoomListener","kickedFromRoomCallback","collabStartingEventBus","useCollabStartingEventBus","unsubscribeCollabStartingListener","collabStartingCallback","reconnectEventBusListener","isDefined","joinRequestEventBusListener","event","room","approvedJoinRequestEventBusListener","rejectedJoinRequestEventBusListener","requestToTakeModerationEventBusListener","approvedRequestToTakeModerationEventBusListener","rejectedRequestToTakeModerationEventBusListener","kickedFromCollabRookEventBusListener","collabStartingEventBusListener","addJoinRequestListener","callback","addApprovedJoinRequestListener","addRejectedJoinRequestListener","addRequestToTakeModerationListener","addApprovedRequestToTakeModerationListener","addRejectedRequestToTakeModerationListener","addCollabReconnectListener","addKickedFromRoomListener","addCollabStartingListener","disableAutoUnsubscribe","useCommonAdminCollabOptions","subscribeCollabRoomInfo","collabOptions","isUndefined","collabSocket","isNewestWrite","claimRoomInfoWrite","collabRoomInfoState","response","unsubscribeCollabRoomInfo","joinCollabRoom","reject","CollabAccessRoomStatus","ackTimeout","options","error","markRoomInactiveOnFailedClaim","isCollabSuccessAccessRoomCallback","CollabStatus","collabFieldDataBufferState","resolve","createDefaultCollabRoomInfo","leaveCollabRoom","enteredCollabRoom","collabFieldLocksState","requestToJoinCollabRoom","CollabRequestToJoinStatus","approveRequestToJoinCollabRoom","userId","rejectRequestToJoinCollabRoom","requestToTakeModeration","CollabRequestToTakeModerationStatus","approveRequestToTakeModeration","rejectRequestToTakeModeration","kickUserFromRoom","purgeRoom","transferModeration","fetchRoomInfo","baseRoomInfo","roomInfo","addToCachedUsers","fetchCachedUsers","collabRoomInfo","computed","watchForNewUsers","watch","newValue"],"sources":["../../../../src/domains/collab/composables/collabRoom.ts"],"sourcesContent":["import {\n type CollabAccessRoomCallbackTypes,\n CollabAccessRoomStatus,\n type CollabAccessRoomStatusType,\n type CollabFieldLock,\n type CollabFieldName,\n type CollabJoinAckOptions,\n CollabRequestToJoinStatus,\n type CollabRequestToJoinStatusCallback,\n type CollabRequestToJoinStatusType,\n CollabRequestToTakeModerationStatus,\n type CollabRequestToTakeModerationStatusCallback,\n type CollabRequestToTakeModerationStatusType,\n type CollabRoom,\n type CollabRoomInfo,\n type CollabRoomInfoCallback,\n type CollabRoomOptions,\n type CollabRoomPlainData,\n type CollabRoomsInfo,\n CollabStatus,\n isCollabSuccessAccessRoomCallback,\n} from '@/domains/collab/types/Collab'\nimport { computed, ref, watch } from 'vue'\nimport {\n type CollabApprovedJoinRequestEvent,\n type CollabApprovedRequestToTakeModerationEvent,\n type CollabJoinRequestEvent,\n type CollabKickedFromRoomEvent,\n type CollabRejectedJoinRequestEvent,\n type CollabRejectedRequestToTakeModerationEvent,\n type CollabRequestToTakeModerationEvent,\n type CollabStartingEvent,\n useCollabApprovedJoinRequestEventBus,\n useCollabApprovedRequestToTakeModerationEventBus,\n useCollabJoinRequestEventBus,\n useCollabKickedFromRoomEventBus,\n useCollabReconnectEventBus,\n useCollabRejectedJoinRequestEventBus,\n useCollabRejectedRequestToTakeModerationEventBus,\n useCollabRequestToTakeModerationEventBus,\n useCollabStartingEventBus,\n} from '@/domains/collab/composables/collabEventBus'\nimport type { Fn } from '@vueuse/core'\nimport { tryOnBeforeUnmount } from '@vueuse/core'\nimport { useCollabStateInternal } from '@/domains/collab/composables/collabState'\nimport { isDefined, isUndefined } from '@/shared/utils/common'\nimport { useCommonAdminCollabOptions } from '@/domains/collab/composables/commonAdminCollabOptions'\nimport type { AddToCachedArgs } from '@/domains/cached/composables/defineCached'\nimport type { IntegerId } from '@/shared/types/common'\n\nconst alertedOccupiedRooms = ref(new Set<CollabRoom>())\nconst ACK_TIMEOUT = 5000\n\nexport function useCollabRoom(\n room: CollabRoom,\n watchForNewUsers: boolean = false,\n addToCachedUsers: ((...args: AddToCachedArgs<IntegerId>) => void) | undefined = undefined,\n // Called fire-and-forget; any fetch fits, `defineCached().fetch` included.\n fetchCachedUsers: (() => unknown) | undefined = undefined,\n disableAutoUnsubscribe = false\n) {\n const { collabSocket, collabRoomInfoState, collabFieldDataBufferState, collabFieldLocksState, claimRoomInfoWrite } =\n useCollabStateInternal()\n\n const reconnectEventBus = useCollabReconnectEventBus()\n const unsubscribeCollabReconnectListener = ref<undefined | Fn>()\n const reconnectCallback = ref<undefined | Fn>()\n\n const joinRequestEventBus = useCollabJoinRequestEventBus()\n const unsubscribeJoinRequestListener = ref<undefined | Fn>()\n const joinRequestCallback = ref<undefined | ((userId: number, timestamp: number) => void)>()\n\n const approvedJoinRequestEventBus = useCollabApprovedJoinRequestEventBus()\n const unsubscribeApprovedJoinRequestListener = ref<undefined | Fn>()\n const approvedJoinRequestCallback = ref<undefined | Fn>()\n\n const rejectedJoinRequestEventBus = useCollabRejectedJoinRequestEventBus()\n const unsubscribeRejectedJoinRequestListener = ref<undefined | Fn>()\n const rejectedJoinRequestCallback = ref<undefined | Fn>()\n\n const requestToTakeModerationEventBus = useCollabRequestToTakeModerationEventBus()\n const unsubscribeRequestToTakeModerationListener = ref<undefined | Fn>()\n const requestToTakeModerationCallback = ref<undefined | ((userId: number, timestamp: number) => void)>()\n\n const approvedRequestToTakeModerationEventBus = useCollabApprovedRequestToTakeModerationEventBus()\n const unsubscribeApprovedRequestToTakeModerationListener = ref<undefined | Fn>()\n const approvedRequestToTakeModerationCallback = ref<undefined | Fn>()\n\n const rejectedRequestToTakeModerationEventBus = useCollabRejectedRequestToTakeModerationEventBus()\n const unsubscribeRejectedRequestToTakeModerationListener = ref<undefined | Fn>()\n const rejectedRequestToTakeModerationCallback = ref<undefined | Fn>()\n\n const kickedFromRoomEventBus = useCollabKickedFromRoomEventBus()\n const unsubscribeKickedFromRoomListener = ref<undefined | Fn>()\n const kickedFromRoomCallback = ref<undefined | Fn>()\n\n const collabStartingEventBus = useCollabStartingEventBus()\n const unsubscribeCollabStartingListener = ref<undefined | Fn>()\n const collabStartingCallback = ref<undefined | ((startedCallback: (data: CollabRoomPlainData) => void) => void)>()\n\n const reconnectEventBusListener = () => {\n if (isDefined(reconnectCallback.value)) {\n reconnectCallback.value()\n }\n }\n\n const joinRequestEventBusListener = (event: CollabJoinRequestEvent) => {\n if (event.room === room && isDefined(joinRequestCallback.value)) {\n joinRequestCallback.value(event.userId, event.timestamp)\n }\n }\n\n const approvedJoinRequestEventBusListener = (event: CollabApprovedJoinRequestEvent) => {\n if (event.room === room && isDefined(approvedJoinRequestCallback.value)) {\n approvedJoinRequestCallback.value()\n }\n }\n\n const rejectedJoinRequestEventBusListener = (event: CollabRejectedJoinRequestEvent) => {\n if (event.room === room && isDefined(rejectedJoinRequestCallback.value)) {\n rejectedJoinRequestCallback.value()\n }\n }\n\n const requestToTakeModerationEventBusListener = (event: CollabRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(requestToTakeModerationCallback.value)) {\n requestToTakeModerationCallback.value(event.userId, event.timestamp)\n }\n }\n\n const approvedRequestToTakeModerationEventBusListener = (event: CollabApprovedRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(approvedRequestToTakeModerationCallback.value)) {\n approvedRequestToTakeModerationCallback.value()\n }\n }\n\n const rejectedRequestToTakeModerationEventBusListener = (event: CollabRejectedRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(rejectedRequestToTakeModerationCallback.value)) {\n rejectedRequestToTakeModerationCallback.value()\n }\n }\n\n const kickedFromCollabRookEventBusListener = (event: CollabKickedFromRoomEvent) => {\n if (event.room === room && isDefined(kickedFromRoomCallback.value)) {\n kickedFromRoomCallback.value()\n }\n }\n\n const collabStartingEventBusListener = (event: CollabStartingEvent) => {\n if (event.room === room && isDefined(collabStartingCallback.value)) {\n collabStartingCallback.value(event.startedCallback)\n }\n }\n\n const addJoinRequestListener = (callback: (userId: number, timestamp: number) => void) => {\n joinRequestCallback.value = callback\n unsubscribeJoinRequestListener.value = joinRequestEventBus.on(joinRequestEventBusListener)\n }\n\n const addApprovedJoinRequestListener = (callback: () => void) => {\n approvedJoinRequestCallback.value = callback\n unsubscribeApprovedJoinRequestListener.value = approvedJoinRequestEventBus.on(approvedJoinRequestEventBusListener)\n }\n\n const addRejectedJoinRequestListener = (callback: () => void) => {\n rejectedJoinRequestCallback.value = callback\n unsubscribeRejectedJoinRequestListener.value = rejectedJoinRequestEventBus.on(rejectedJoinRequestEventBusListener)\n }\n\n const addRequestToTakeModerationListener = (callback: (userId: number, timestamp: number) => void) => {\n requestToTakeModerationCallback.value = callback\n unsubscribeRequestToTakeModerationListener.value = requestToTakeModerationEventBus.on(\n requestToTakeModerationEventBusListener\n )\n }\n\n const addApprovedRequestToTakeModerationListener = (callback: () => void) => {\n approvedRequestToTakeModerationCallback.value = callback\n unsubscribeApprovedRequestToTakeModerationListener.value = approvedRequestToTakeModerationEventBus.on(\n approvedRequestToTakeModerationEventBusListener\n )\n }\n\n const addRejectedRequestToTakeModerationListener = (callback: () => void) => {\n rejectedRequestToTakeModerationCallback.value = callback\n unsubscribeRejectedRequestToTakeModerationListener.value = rejectedRequestToTakeModerationEventBus.on(\n rejectedRequestToTakeModerationEventBusListener\n )\n }\n\n const addCollabReconnectListener = (callback: () => void) => {\n reconnectCallback.value = callback\n unsubscribeCollabReconnectListener.value = reconnectEventBus.on(reconnectEventBusListener)\n }\n\n const addKickedFromRoomListener = (callback: () => void) => {\n kickedFromRoomCallback.value = callback\n unsubscribeKickedFromRoomListener.value = kickedFromRoomEventBus.on(kickedFromCollabRookEventBusListener)\n }\n\n const addCollabStartingListener = (callback: (startedCallback: (data: CollabRoomPlainData) => void) => void) => {\n collabStartingCallback.value = callback\n unsubscribeCollabStartingListener.value = collabStartingEventBus.on(collabStartingEventBusListener)\n }\n\n tryOnBeforeUnmount(() => {\n if (disableAutoUnsubscribe) return\n if (isDefined(unsubscribeCollabReconnectListener.value)) {\n unsubscribeCollabReconnectListener.value()\n }\n if (isDefined(unsubscribeJoinRequestListener.value)) {\n unsubscribeJoinRequestListener.value()\n }\n if (isDefined(unsubscribeApprovedJoinRequestListener.value)) {\n unsubscribeApprovedJoinRequestListener.value()\n }\n if (isDefined(unsubscribeRejectedJoinRequestListener.value)) {\n unsubscribeRejectedJoinRequestListener.value()\n }\n if (isDefined(unsubscribeRequestToTakeModerationListener.value)) {\n unsubscribeRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeApprovedRequestToTakeModerationListener.value)) {\n unsubscribeApprovedRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeRejectedRequestToTakeModerationListener.value)) {\n unsubscribeRejectedRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeKickedFromRoomListener.value)) {\n unsubscribeKickedFromRoomListener.value()\n }\n if (isDefined(unsubscribeCollabStartingListener.value)) {\n unsubscribeCollabStartingListener.value()\n }\n })\n\n const { collabOptions } = useCommonAdminCollabOptions()\n\n const subscribeCollabRoomInfo = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value.emit('subscribeCollabRoomInfo', room, (response: CollabRoomInfoCallback) => {\n if (!isNewestWrite()) return\n collabRoomInfoState.set(room, response.room)\n })\n }\n\n const unsubscribeCollabRoomInfo = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value.emit('unsubscribeCollabRoomInfo', room, (response: CollabRoomInfoCallback) => {\n if (!isNewestWrite()) return\n collabRoomInfoState.set(room, response.room)\n })\n }\n\n const joinCollabRoom = async (\n options: Partial<CollabRoomOptions> = {},\n { ackTimeout = ACK_TIMEOUT }: CollabJoinAckOptions = {}\n ): Promise<CollabAccessRoomStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return reject(CollabAccessRoomStatus.Failed)\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value\n ?.timeout(ackTimeout)\n .emit('joinCollabRoom', room, options, (error, response: CollabAccessRoomCallbackTypes) => {\n if (error) {\n markRoomInactiveOnFailedClaim()\n /* No cleanup leave here, though a timed-out join can leave the server holding a\n * membership this client never hears about: a leave is not tied to the join it cleans up,\n * so it could remove the membership of a remount that succeeded in the meantime. Marking\n * inactive keeps the failure on the safe side — the stale membership is released on\n * disconnect. Closing it properly needs a generation the server can compare. A caller that\n * leaves after a timeout itself passes an `ackTimeout` past the server's own run. */\n return void reject(CollabAccessRoomStatus.Failed)\n }\n if (isCollabSuccessAccessRoomCallback(response)) {\n if (isNewestWrite()) {\n collabRoomInfoState.set(room, response.room)\n // Joined where others are: the room's state was gathered from its moderator. What this editor wrote\n // alone before, never gathered, stayed, and went out later as the room's state over newer values.\n if (response.room.status === CollabStatus.Active) collabFieldDataBufferState.delete(room)\n }\n return void resolve(response.status)\n }\n markRoomInactiveOnFailedClaim()\n return void reject(response.status)\n })\n\n /**\n * A failed claim writes nothing yet still suppresses older acknowledgements, so without this a\n * failed join would keep showing the membership from before the leave. Recorded as an explicitly\n * inactive room, never deleted: the mutation guards test `roomInfo && status === Inactive`, so a\n * missing entry falls through and emits. Only while this claim is still the newest.\n */\n function markRoomInactiveOnFailedClaim() {\n if (isNewestWrite()) collabRoomInfoState.set(room, createDefaultCollabRoomInfo())\n }\n })\n }\n\n /**\n * Resolves once the server has acknowledged the leave, so a caller that re-joins the same room can\n * serialise the two. Never rejects: every existing caller invokes it without handling the result,\n * mostly from unmount hooks. A missing ack resolves on the timeout rather than hanging; a caller\n * that joins again behind it passes an `ackTimeout` past the server's own run, as for the join.\n */\n const leaveCollabRoom = ({ ackTimeout = ACK_TIMEOUT }: CollabJoinAckOptions = {}): Promise<void> => {\n return new Promise((resolve) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return void resolve()\n // Nobody gathers it any more: kept, it went out as the room's state when this editor was next alone in it.\n collabFieldDataBufferState.delete(room)\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value\n ?.timeout(ackTimeout)\n .emit('leaveCollabRoom', room, (error, response: CollabAccessRoomCallbackTypes) => {\n if (!error && isNewestWrite() && isCollabSuccessAccessRoomCallback(response)) {\n collabRoomInfoState.set(room, response.room)\n }\n resolve()\n })\n })\n }\n\n const enteredCollabRoom = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n /* Anything remembered from a previous stay in this room is a guess: the server answers with the\n * locks it holds only when it holds some, so a lock released while this client was away produces\n * no event and the field would read as locked until some later one arrives. */\n collabFieldLocksState.set(room, new Map())\n collabSocket.value?.emit('enteredCollabRoom', room)\n }\n\n const requestToJoinCollabRoom = (): Promise<CollabRequestToJoinStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) {\n return reject(CollabRequestToJoinStatus.Failed)\n }\n collabSocket.value\n ?.timeout(2000)\n .emit('requestToJoin', room, new Date().getTime(), (error, response: CollabRequestToJoinStatusCallback) => {\n if (error) {\n return void reject(CollabRequestToJoinStatus.Failed)\n }\n if (response.status === CollabRequestToJoinStatus.Ok) {\n return void resolve(response.status)\n }\n return void reject(response.status)\n })\n })\n }\n\n const approveRequestToJoinCollabRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('approveRequestToJoin', room, userId)\n }\n\n const rejectRequestToJoinCollabRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('rejectRequestToJoin', room, userId)\n }\n\n const requestToTakeModeration = async (): Promise<CollabRequestToTakeModerationStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) {\n return reject(CollabRequestToTakeModerationStatus.Failed)\n }\n collabSocket.value\n ?.timeout(2000)\n .emit(\n 'requestToTakeModeration',\n room,\n new Date().getTime(),\n (error, response: CollabRequestToTakeModerationStatusCallback) => {\n if (error) {\n return void reject(CollabRequestToTakeModerationStatus.Failed)\n }\n if (response.status === CollabRequestToTakeModerationStatus.Ok) {\n return void resolve(response.status)\n }\n return void reject(response.status)\n }\n )\n })\n }\n\n const approveRequestToTakeModeration = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('approveRequestToTakeModeration', room)\n }\n\n const rejectRequestToTakeModeration = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('rejectRequestToTakeModeration', room)\n }\n\n const kickUserFromRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('kickUserFromRoom', room, userId)\n }\n\n const purgeRoom = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('purgeRoom', room)\n }\n\n const transferModeration = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('transferModeration', room, userId)\n }\n\n const createDefaultCollabRoomInfo = (): CollabRoomInfo => ({\n name: '',\n status: CollabStatus.Inactive,\n users: [],\n moderator: null,\n options: {},\n })\n\n const fetchRoomInfo = async (room: CollabRoom): Promise<CollabRoomInfo> => {\n const baseRoomInfo: CollabRoomInfo = createDefaultCollabRoomInfo()\n\n return new Promise((resolve) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return resolve(baseRoomInfo)\n collabSocket.value?.timeout(500).emit('fetchRoomsInfo', [room], (error, response: CollabRoomsInfo) => {\n if (error) return void resolve(baseRoomInfo)\n const roomInfo = response[room]\n if (isUndefined(roomInfo)) return void resolve(baseRoomInfo)\n if (!isUndefined(addToCachedUsers)) addToCachedUsers(roomInfo.users)\n if (!isUndefined(fetchCachedUsers)) fetchCachedUsers()\n\n return resolve(roomInfo)\n })\n })\n }\n\n const collabRoomInfo = computed((): CollabRoomInfo => {\n return collabRoomInfoState.get(room) ?? createDefaultCollabRoomInfo()\n })\n\n if (watchForNewUsers) {\n watch(\n collabRoomInfo,\n (newValue) => {\n if (newValue.users.length) {\n if (!isUndefined(addToCachedUsers)) addToCachedUsers(newValue.users)\n if (!isUndefined(fetchCachedUsers)) fetchCachedUsers()\n }\n },\n { immediate: true }\n )\n }\n\n const collabRoomLocks = computed((): Map<CollabFieldName, CollabFieldLock> => {\n return collabFieldLocksState.get(room) ?? new Map()\n })\n\n return {\n subscribeCollabRoomInfo,\n unsubscribeCollabRoomInfo,\n joinCollabRoom,\n leaveCollabRoom,\n requestToJoinCollabRoom,\n approveRequestToJoinCollabRoom,\n rejectRequestToJoinCollabRoom,\n addJoinRequestListener,\n addCollabReconnectListener,\n addApprovedJoinRequestListener,\n addRejectedJoinRequestListener,\n requestToTakeModeration,\n approveRequestToTakeModeration,\n rejectRequestToTakeModeration,\n addRequestToTakeModerationListener,\n addApprovedRequestToTakeModerationListener,\n addRejectedRequestToTakeModerationListener,\n enteredCollabRoom,\n kickUserFromRoom,\n purgeRoom,\n transferModeration,\n addKickedFromRoomListener,\n addCollabStartingListener,\n fetchRoomInfo,\n collabRoomInfo,\n collabRoomLocks,\n collabFieldDataBufferState,\n alertedOccupiedRooms,\n unsubscribeJoinRequestListener,\n unsubscribeApprovedJoinRequestListener,\n unsubscribeRejectedJoinRequestListener,\n unsubscribeRequestToTakeModerationListener,\n unsubscribeApprovedRequestToTakeModerationListener,\n unsubscribeRejectedRequestToTakeModerationListener,\n unsubscribeKickedFromRoomListener,\n unsubscribeCollabStartingListener,\n unsubscribeCollabReconnectListener,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collabRoom.js","names":["alertedOccupiedRooms","ref","ACK_TIMEOUT","useCollabRoom","useCollabStateInternal","reconnectEventBus","useCollabReconnectEventBus","unsubscribeCollabReconnectListener","reconnectCallback","joinRequestEventBus","useCollabJoinRequestEventBus","unsubscribeJoinRequestListener","joinRequestCallback","approvedJoinRequestEventBus","useCollabApprovedJoinRequestEventBus","unsubscribeApprovedJoinRequestListener","approvedJoinRequestCallback","rejectedJoinRequestEventBus","useCollabRejectedJoinRequestEventBus","unsubscribeRejectedJoinRequestListener","rejectedJoinRequestCallback","requestToTakeModerationEventBus","useCollabRequestToTakeModerationEventBus","unsubscribeRequestToTakeModerationListener","requestToTakeModerationCallback","approvedRequestToTakeModerationEventBus","useCollabApprovedRequestToTakeModerationEventBus","unsubscribeApprovedRequestToTakeModerationListener","approvedRequestToTakeModerationCallback","rejectedRequestToTakeModerationEventBus","useCollabRejectedRequestToTakeModerationEventBus","unsubscribeRejectedRequestToTakeModerationListener","rejectedRequestToTakeModerationCallback","kickedFromRoomEventBus","useCollabKickedFromRoomEventBus","unsubscribeKickedFromRoomListener","kickedFromRoomCallback","collabStartingEventBus","useCollabStartingEventBus","unsubscribeCollabStartingListener","collabStartingCallback","reconnectEventBusListener","isDefined","joinRequestEventBusListener","event","room","approvedJoinRequestEventBusListener","rejectedJoinRequestEventBusListener","requestToTakeModerationEventBusListener","approvedRequestToTakeModerationEventBusListener","rejectedRequestToTakeModerationEventBusListener","kickedFromCollabRookEventBusListener","collabStartingEventBusListener","addJoinRequestListener","callback","addApprovedJoinRequestListener","addRejectedJoinRequestListener","addRequestToTakeModerationListener","addApprovedRequestToTakeModerationListener","addRejectedRequestToTakeModerationListener","addCollabReconnectListener","addKickedFromRoomListener","addCollabStartingListener","disableAutoUnsubscribe","useCommonAdminCollabOptions","subscribeCollabRoomInfo","collabOptions","isUndefined","collabSocket","isNewestWrite","claimRoomInfoWrite","collabRoomInfoState","response","unsubscribeCollabRoomInfo","joinCollabRoom","collabConnectionHopeless","reject","CollabAccessRoomStatus","ackTimeout","options","error","markRoomInactiveOnFailedClaim","isCollabSuccessAccessRoomCallback","CollabStatus","collabFieldDataBufferState","resolve","createDefaultCollabRoomInfo","leaveCollabRoom","enteredCollabRoom","collabFieldLocksState","requestToJoinCollabRoom","CollabRequestToJoinStatus","approveRequestToJoinCollabRoom","userId","rejectRequestToJoinCollabRoom","requestToTakeModeration","CollabRequestToTakeModerationStatus","approveRequestToTakeModeration","rejectRequestToTakeModeration","kickUserFromRoom","purgeRoom","transferModeration","fetchRoomInfo","baseRoomInfo","roomInfo","addToCachedUsers","fetchCachedUsers","collabRoomInfo","computed","watchForNewUsers","watch","newValue"],"sources":["../../../../src/domains/collab/composables/collabRoom.ts"],"sourcesContent":["import {\n type CollabAccessRoomCallbackTypes,\n CollabAccessRoomStatus,\n type CollabAccessRoomStatusType,\n type CollabFieldLock,\n type CollabFieldName,\n type CollabJoinAckOptions,\n CollabRequestToJoinStatus,\n type CollabRequestToJoinStatusCallback,\n type CollabRequestToJoinStatusType,\n CollabRequestToTakeModerationStatus,\n type CollabRequestToTakeModerationStatusCallback,\n type CollabRequestToTakeModerationStatusType,\n type CollabRoom,\n type CollabRoomInfo,\n type CollabRoomInfoCallback,\n type CollabRoomOptions,\n type CollabRoomPlainData,\n type CollabRoomsInfo,\n CollabStatus,\n isCollabSuccessAccessRoomCallback,\n} from '@/domains/collab/types/Collab'\nimport { computed, ref, watch } from 'vue'\nimport {\n type CollabApprovedJoinRequestEvent,\n type CollabApprovedRequestToTakeModerationEvent,\n type CollabJoinRequestEvent,\n type CollabKickedFromRoomEvent,\n type CollabRejectedJoinRequestEvent,\n type CollabRejectedRequestToTakeModerationEvent,\n type CollabRequestToTakeModerationEvent,\n type CollabStartingEvent,\n useCollabApprovedJoinRequestEventBus,\n useCollabApprovedRequestToTakeModerationEventBus,\n useCollabJoinRequestEventBus,\n useCollabKickedFromRoomEventBus,\n useCollabReconnectEventBus,\n useCollabRejectedJoinRequestEventBus,\n useCollabRejectedRequestToTakeModerationEventBus,\n useCollabRequestToTakeModerationEventBus,\n useCollabStartingEventBus,\n} from '@/domains/collab/composables/collabEventBus'\nimport type { Fn } from '@vueuse/core'\nimport { tryOnBeforeUnmount } from '@vueuse/core'\nimport { useCollabStateInternal } from '@/domains/collab/composables/collabState'\nimport { isDefined, isUndefined } from '@/shared/utils/common'\nimport { useCommonAdminCollabOptions } from '@/domains/collab/composables/commonAdminCollabOptions'\nimport type { AddToCachedArgs } from '@/domains/cached/composables/defineCached'\nimport type { IntegerId } from '@/shared/types/common'\n\nconst alertedOccupiedRooms = ref(new Set<CollabRoom>())\nconst ACK_TIMEOUT = 5000\n\nexport function useCollabRoom(\n room: CollabRoom,\n watchForNewUsers: boolean = false,\n addToCachedUsers: ((...args: AddToCachedArgs<IntegerId>) => void) | undefined = undefined,\n // Called fire-and-forget; any fetch fits, `defineCached().fetch` included.\n fetchCachedUsers: (() => unknown) | undefined = undefined,\n disableAutoUnsubscribe = false\n) {\n const {\n collabSocket,\n collabRoomInfoState,\n collabFieldDataBufferState,\n collabFieldLocksState,\n claimRoomInfoWrite,\n collabConnectionHopeless,\n } = useCollabStateInternal()\n\n const reconnectEventBus = useCollabReconnectEventBus()\n const unsubscribeCollabReconnectListener = ref<undefined | Fn>()\n const reconnectCallback = ref<undefined | Fn>()\n\n const joinRequestEventBus = useCollabJoinRequestEventBus()\n const unsubscribeJoinRequestListener = ref<undefined | Fn>()\n const joinRequestCallback = ref<undefined | ((userId: number, timestamp: number) => void)>()\n\n const approvedJoinRequestEventBus = useCollabApprovedJoinRequestEventBus()\n const unsubscribeApprovedJoinRequestListener = ref<undefined | Fn>()\n const approvedJoinRequestCallback = ref<undefined | Fn>()\n\n const rejectedJoinRequestEventBus = useCollabRejectedJoinRequestEventBus()\n const unsubscribeRejectedJoinRequestListener = ref<undefined | Fn>()\n const rejectedJoinRequestCallback = ref<undefined | Fn>()\n\n const requestToTakeModerationEventBus = useCollabRequestToTakeModerationEventBus()\n const unsubscribeRequestToTakeModerationListener = ref<undefined | Fn>()\n const requestToTakeModerationCallback = ref<undefined | ((userId: number, timestamp: number) => void)>()\n\n const approvedRequestToTakeModerationEventBus = useCollabApprovedRequestToTakeModerationEventBus()\n const unsubscribeApprovedRequestToTakeModerationListener = ref<undefined | Fn>()\n const approvedRequestToTakeModerationCallback = ref<undefined | Fn>()\n\n const rejectedRequestToTakeModerationEventBus = useCollabRejectedRequestToTakeModerationEventBus()\n const unsubscribeRejectedRequestToTakeModerationListener = ref<undefined | Fn>()\n const rejectedRequestToTakeModerationCallback = ref<undefined | Fn>()\n\n const kickedFromRoomEventBus = useCollabKickedFromRoomEventBus()\n const unsubscribeKickedFromRoomListener = ref<undefined | Fn>()\n const kickedFromRoomCallback = ref<undefined | Fn>()\n\n const collabStartingEventBus = useCollabStartingEventBus()\n const unsubscribeCollabStartingListener = ref<undefined | Fn>()\n const collabStartingCallback = ref<undefined | ((startedCallback: (data: CollabRoomPlainData) => void) => void)>()\n\n const reconnectEventBusListener = () => {\n if (isDefined(reconnectCallback.value)) {\n reconnectCallback.value()\n }\n }\n\n const joinRequestEventBusListener = (event: CollabJoinRequestEvent) => {\n if (event.room === room && isDefined(joinRequestCallback.value)) {\n joinRequestCallback.value(event.userId, event.timestamp)\n }\n }\n\n const approvedJoinRequestEventBusListener = (event: CollabApprovedJoinRequestEvent) => {\n if (event.room === room && isDefined(approvedJoinRequestCallback.value)) {\n approvedJoinRequestCallback.value()\n }\n }\n\n const rejectedJoinRequestEventBusListener = (event: CollabRejectedJoinRequestEvent) => {\n if (event.room === room && isDefined(rejectedJoinRequestCallback.value)) {\n rejectedJoinRequestCallback.value()\n }\n }\n\n const requestToTakeModerationEventBusListener = (event: CollabRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(requestToTakeModerationCallback.value)) {\n requestToTakeModerationCallback.value(event.userId, event.timestamp)\n }\n }\n\n const approvedRequestToTakeModerationEventBusListener = (event: CollabApprovedRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(approvedRequestToTakeModerationCallback.value)) {\n approvedRequestToTakeModerationCallback.value()\n }\n }\n\n const rejectedRequestToTakeModerationEventBusListener = (event: CollabRejectedRequestToTakeModerationEvent) => {\n if (event.room === room && isDefined(rejectedRequestToTakeModerationCallback.value)) {\n rejectedRequestToTakeModerationCallback.value()\n }\n }\n\n const kickedFromCollabRookEventBusListener = (event: CollabKickedFromRoomEvent) => {\n if (event.room === room && isDefined(kickedFromRoomCallback.value)) {\n kickedFromRoomCallback.value()\n }\n }\n\n const collabStartingEventBusListener = (event: CollabStartingEvent) => {\n if (event.room === room && isDefined(collabStartingCallback.value)) {\n collabStartingCallback.value(event.startedCallback)\n }\n }\n\n const addJoinRequestListener = (callback: (userId: number, timestamp: number) => void) => {\n joinRequestCallback.value = callback\n unsubscribeJoinRequestListener.value = joinRequestEventBus.on(joinRequestEventBusListener)\n }\n\n const addApprovedJoinRequestListener = (callback: () => void) => {\n approvedJoinRequestCallback.value = callback\n unsubscribeApprovedJoinRequestListener.value = approvedJoinRequestEventBus.on(approvedJoinRequestEventBusListener)\n }\n\n const addRejectedJoinRequestListener = (callback: () => void) => {\n rejectedJoinRequestCallback.value = callback\n unsubscribeRejectedJoinRequestListener.value = rejectedJoinRequestEventBus.on(rejectedJoinRequestEventBusListener)\n }\n\n const addRequestToTakeModerationListener = (callback: (userId: number, timestamp: number) => void) => {\n requestToTakeModerationCallback.value = callback\n unsubscribeRequestToTakeModerationListener.value = requestToTakeModerationEventBus.on(\n requestToTakeModerationEventBusListener\n )\n }\n\n const addApprovedRequestToTakeModerationListener = (callback: () => void) => {\n approvedRequestToTakeModerationCallback.value = callback\n unsubscribeApprovedRequestToTakeModerationListener.value = approvedRequestToTakeModerationEventBus.on(\n approvedRequestToTakeModerationEventBusListener\n )\n }\n\n const addRejectedRequestToTakeModerationListener = (callback: () => void) => {\n rejectedRequestToTakeModerationCallback.value = callback\n unsubscribeRejectedRequestToTakeModerationListener.value = rejectedRequestToTakeModerationEventBus.on(\n rejectedRequestToTakeModerationEventBusListener\n )\n }\n\n const addCollabReconnectListener = (callback: () => void) => {\n reconnectCallback.value = callback\n unsubscribeCollabReconnectListener.value = reconnectEventBus.on(reconnectEventBusListener)\n }\n\n const addKickedFromRoomListener = (callback: () => void) => {\n kickedFromRoomCallback.value = callback\n unsubscribeKickedFromRoomListener.value = kickedFromRoomEventBus.on(kickedFromCollabRookEventBusListener)\n }\n\n const addCollabStartingListener = (callback: (startedCallback: (data: CollabRoomPlainData) => void) => void) => {\n collabStartingCallback.value = callback\n unsubscribeCollabStartingListener.value = collabStartingEventBus.on(collabStartingEventBusListener)\n }\n\n tryOnBeforeUnmount(() => {\n if (disableAutoUnsubscribe) return\n if (isDefined(unsubscribeCollabReconnectListener.value)) {\n unsubscribeCollabReconnectListener.value()\n }\n if (isDefined(unsubscribeJoinRequestListener.value)) {\n unsubscribeJoinRequestListener.value()\n }\n if (isDefined(unsubscribeApprovedJoinRequestListener.value)) {\n unsubscribeApprovedJoinRequestListener.value()\n }\n if (isDefined(unsubscribeRejectedJoinRequestListener.value)) {\n unsubscribeRejectedJoinRequestListener.value()\n }\n if (isDefined(unsubscribeRequestToTakeModerationListener.value)) {\n unsubscribeRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeApprovedRequestToTakeModerationListener.value)) {\n unsubscribeApprovedRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeRejectedRequestToTakeModerationListener.value)) {\n unsubscribeRejectedRequestToTakeModerationListener.value()\n }\n if (isDefined(unsubscribeKickedFromRoomListener.value)) {\n unsubscribeKickedFromRoomListener.value()\n }\n if (isDefined(unsubscribeCollabStartingListener.value)) {\n unsubscribeCollabStartingListener.value()\n }\n })\n\n const { collabOptions } = useCommonAdminCollabOptions()\n\n const subscribeCollabRoomInfo = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value.emit('subscribeCollabRoomInfo', room, (response: CollabRoomInfoCallback) => {\n if (!isNewestWrite()) return\n collabRoomInfoState.set(room, response.room)\n })\n }\n\n const unsubscribeCollabRoomInfo = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value.emit('unsubscribeCollabRoomInfo', room, (response: CollabRoomInfoCallback) => {\n if (!isNewestWrite()) return\n collabRoomInfoState.set(room, response.room)\n })\n }\n\n const joinCollabRoom = async (\n options: Partial<CollabRoomOptions> = {},\n { ackTimeout = ACK_TIMEOUT }: CollabJoinAckOptions = {}\n ): Promise<CollabAccessRoomStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return reject(CollabAccessRoomStatus.Failed)\n // Fail now rather than after the acknowledgement timeout: the caller can offer the record read-only.\n if (collabConnectionHopeless()) return reject(CollabAccessRoomStatus.Failed)\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value\n ?.timeout(ackTimeout)\n .emit('joinCollabRoom', room, options, (error, response: CollabAccessRoomCallbackTypes) => {\n if (error) {\n markRoomInactiveOnFailedClaim()\n /*\n * No cleanup leave here, though a timed-out join can leave\n * a server membership this client never hears about.\n * A leave is not tied to its join, so it could remove the membership of a remount that succeeded meanwhile.\n * Marking inactive is the safe side; the stale membership is released on\n * disconnect. A proper fix needs a generation the server can compare.\n * A caller that leaves after a timeout passes an `ackTimeout` longer than the server's own run.\n */\n return void reject(CollabAccessRoomStatus.Failed)\n }\n if (isCollabSuccessAccessRoomCallback(response)) {\n if (isNewestWrite()) {\n collabRoomInfoState.set(room, response.room)\n // Joined a room with others: its state was gathered from the moderator.\n // Data written alone earlier was never gathered, and would later go out as room state over newer values.\n if (response.room.status === CollabStatus.Active) collabFieldDataBufferState.delete(room)\n }\n return void resolve(response.status)\n }\n markRoomInactiveOnFailedClaim()\n return void reject(response.status)\n })\n\n /**\n * A failed claim writes nothing yet still suppresses older acknowledgements, so without this a\n * failed join would keep showing the membership from before the leave. Recorded as an explicitly\n * inactive room, never deleted: the mutation guards test `roomInfo && status === Inactive`, so a\n * missing entry falls through and emits. Only while this claim is still the newest.\n */\n function markRoomInactiveOnFailedClaim() {\n if (isNewestWrite()) collabRoomInfoState.set(room, createDefaultCollabRoomInfo())\n }\n })\n }\n\n /**\n * Resolves once the server acknowledges the leave, so a caller re-joining the same room can serialise the two.\n * Never rejects, because callers (mostly unmount hooks) ignore the result. A missing ack resolves on the timeout.\n * A caller that joins again afterwards passes an `ackTimeout` longer than the server's own run.\n */\n const leaveCollabRoom = ({ ackTimeout = ACK_TIMEOUT }: CollabJoinAckOptions = {}): Promise<void> => {\n return new Promise((resolve) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return void resolve()\n // Nobody gathers this buffer any more. If kept, it would go out as room state the next time this editor is alone.\n collabFieldDataBufferState.delete(room)\n const isNewestWrite = claimRoomInfoWrite(room)\n collabSocket.value\n ?.timeout(ackTimeout)\n .emit('leaveCollabRoom', room, (error, response: CollabAccessRoomCallbackTypes) => {\n if (!error && isNewestWrite() && isCollabSuccessAccessRoomCallback(response)) {\n collabRoomInfoState.set(room, response.room)\n }\n resolve()\n })\n })\n }\n\n const enteredCollabRoom = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n /* Anything remembered from a previous stay in this room is a guess: the server answers with the\n * locks it holds only when it holds some, so a lock released while this client was away produces\n * no event and the field would read as locked until some later one arrives. */\n collabFieldLocksState.set(room, new Map())\n collabSocket.value?.emit('enteredCollabRoom', room)\n }\n\n const requestToJoinCollabRoom = (): Promise<CollabRequestToJoinStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value) || collabConnectionHopeless()) {\n return reject(CollabRequestToJoinStatus.Failed)\n }\n collabSocket.value\n ?.timeout(2000)\n .emit('requestToJoin', room, new Date().getTime(), (error, response: CollabRequestToJoinStatusCallback) => {\n if (error) {\n return void reject(CollabRequestToJoinStatus.Failed)\n }\n if (response.status === CollabRequestToJoinStatus.Ok) {\n return void resolve(response.status)\n }\n return void reject(response.status)\n })\n })\n }\n\n const approveRequestToJoinCollabRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('approveRequestToJoin', room, userId)\n }\n\n const rejectRequestToJoinCollabRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('rejectRequestToJoin', room, userId)\n }\n\n const requestToTakeModeration = async (): Promise<CollabRequestToTakeModerationStatusType> => {\n return new Promise((resolve, reject) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value) || collabConnectionHopeless()) {\n return reject(CollabRequestToTakeModerationStatus.Failed)\n }\n collabSocket.value\n ?.timeout(2000)\n .emit(\n 'requestToTakeModeration',\n room,\n new Date().getTime(),\n (error, response: CollabRequestToTakeModerationStatusCallback) => {\n if (error) {\n return void reject(CollabRequestToTakeModerationStatus.Failed)\n }\n if (response.status === CollabRequestToTakeModerationStatus.Ok) {\n return void resolve(response.status)\n }\n return void reject(response.status)\n }\n )\n })\n }\n\n const approveRequestToTakeModeration = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('approveRequestToTakeModeration', room)\n }\n\n const rejectRequestToTakeModeration = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('rejectRequestToTakeModeration', room)\n }\n\n const kickUserFromRoom = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('kickUserFromRoom', room, userId)\n }\n\n const purgeRoom = () => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('purgeRoom', room)\n }\n\n const transferModeration = (userId: number) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return\n collabSocket.value.emit('transferModeration', room, userId)\n }\n\n const createDefaultCollabRoomInfo = (): CollabRoomInfo => ({\n name: '',\n status: CollabStatus.Inactive,\n users: [],\n moderator: null,\n options: {},\n })\n\n const fetchRoomInfo = async (room: CollabRoom): Promise<CollabRoomInfo> => {\n const baseRoomInfo: CollabRoomInfo = createDefaultCollabRoomInfo()\n\n return new Promise((resolve) => {\n if (!collabOptions.value.enabled || isUndefined(collabSocket.value)) return resolve(baseRoomInfo)\n collabSocket.value?.timeout(500).emit('fetchRoomsInfo', [room], (error, response: CollabRoomsInfo) => {\n if (error) return void resolve(baseRoomInfo)\n const roomInfo = response[room]\n if (isUndefined(roomInfo)) return void resolve(baseRoomInfo)\n if (!isUndefined(addToCachedUsers)) addToCachedUsers(roomInfo.users)\n if (!isUndefined(fetchCachedUsers)) fetchCachedUsers()\n\n return resolve(roomInfo)\n })\n })\n }\n\n const collabRoomInfo = computed((): CollabRoomInfo => {\n return collabRoomInfoState.get(room) ?? createDefaultCollabRoomInfo()\n })\n\n if (watchForNewUsers) {\n watch(\n collabRoomInfo,\n (newValue) => {\n if (newValue.users.length) {\n if (!isUndefined(addToCachedUsers)) addToCachedUsers(newValue.users)\n if (!isUndefined(fetchCachedUsers)) fetchCachedUsers()\n }\n },\n { immediate: true }\n )\n }\n\n const collabRoomLocks = computed((): Map<CollabFieldName, CollabFieldLock> => {\n return collabFieldLocksState.get(room) ?? new Map()\n })\n\n return {\n subscribeCollabRoomInfo,\n unsubscribeCollabRoomInfo,\n joinCollabRoom,\n leaveCollabRoom,\n requestToJoinCollabRoom,\n approveRequestToJoinCollabRoom,\n rejectRequestToJoinCollabRoom,\n addJoinRequestListener,\n addCollabReconnectListener,\n addApprovedJoinRequestListener,\n addRejectedJoinRequestListener,\n requestToTakeModeration,\n approveRequestToTakeModeration,\n rejectRequestToTakeModeration,\n addRequestToTakeModerationListener,\n addApprovedRequestToTakeModerationListener,\n addRejectedRequestToTakeModerationListener,\n enteredCollabRoom,\n kickUserFromRoom,\n purgeRoom,\n transferModeration,\n addKickedFromRoomListener,\n addCollabStartingListener,\n fetchRoomInfo,\n collabRoomInfo,\n collabRoomLocks,\n collabFieldDataBufferState,\n alertedOccupiedRooms,\n unsubscribeJoinRequestListener,\n unsubscribeApprovedJoinRequestListener,\n unsubscribeRejectedJoinRequestListener,\n unsubscribeRequestToTakeModerationListener,\n unsubscribeApprovedRequestToTakeModerationListener,\n unsubscribeRejectedRequestToTakeModerationListener,\n unsubscribeKickedFromRoomListener,\n unsubscribeCollabStartingListener,\n unsubscribeCollabReconnectListener,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Socket } from 'socket.io-client';
|
|
2
|
-
import { CollabClientToServerEvents, CollabFieldLock, CollabFieldName, CollabRoom, CollabRoomInfo, CollabRoomPlainData, CollabServerToClientEvents } from '../types/Collab';
|
|
2
|
+
import { CollabClientToServerEvents, CollabConnectionStateType, CollabFieldLock, CollabFieldName, CollabRoom, CollabRoomInfo, CollabRoomPlainData, CollabServerToClientEvents } from '../types/Collab';
|
|
3
3
|
import { Ref } from 'vue';
|
|
4
4
|
/**
|
|
5
5
|
* Everything the collaboration modules share, the socket included. Internal: an admin reads
|
|
@@ -7,6 +7,10 @@ import { Ref } from 'vue';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function useCollabStateInternal(): {
|
|
9
9
|
collabReconnecting: import('vue').ComputedRef<boolean>;
|
|
10
|
+
collabConnectionState: Ref<CollabConnectionStateType, CollabConnectionStateType>;
|
|
11
|
+
collabConnectionHopeless: () => boolean;
|
|
12
|
+
setCollabRecover: (recover: () => Promise<void>) => void;
|
|
13
|
+
reconnectCollab: () => Promise<void>;
|
|
10
14
|
collabConnected: Ref<boolean, boolean>;
|
|
11
15
|
collabSocket: Ref<Socket<CollabServerToClientEvents, CollabClientToServerEvents> | undefined, Socket<CollabServerToClientEvents, CollabClientToServerEvents> | undefined>;
|
|
12
16
|
collabRoomInfoState: import('vue').Reactive<Map<string, CollabRoomInfo>>;
|
|
@@ -19,12 +23,15 @@ export declare function useCollabStateInternal(): {
|
|
|
19
23
|
gatherBufferData: (room: CollabRoom) => CollabRoomPlainData;
|
|
20
24
|
};
|
|
21
25
|
/**
|
|
22
|
-
* What an admin reads from the collaboration state: whether the connection is being re-established
|
|
23
|
-
* the rooms' info, and the buffered field data of a room (`gatherBufferData`
|
|
24
|
-
* The socket and the lock bookkeeping stay
|
|
26
|
+
* What an admin reads from the collaboration state: whether the connection is being re-established and why it
|
|
27
|
+
* is not (`collabConnectionState`), the rooms' info, and the buffered field data of a room (`gatherBufferData`
|
|
28
|
+
* collects and clears it). `reconnectCollab` is the user's "try again". The socket and the lock bookkeeping stay
|
|
29
|
+
* inside the library.
|
|
25
30
|
*/
|
|
26
31
|
export declare function useCollabState(): {
|
|
27
32
|
collabReconnecting: import('vue').ComputedRef<boolean>;
|
|
33
|
+
collabConnectionState: Readonly<Ref<CollabConnectionStateType, CollabConnectionStateType>>;
|
|
34
|
+
reconnectCollab: () => Promise<void>;
|
|
28
35
|
collabRoomInfoState: import('vue').Reactive<Map<string, CollabRoomInfo>>;
|
|
29
36
|
collabFieldDataBufferState: import('vue').Reactive<Map<string, Map<string, unknown>>>;
|
|
30
37
|
gatherBufferData: (room: CollabRoom) => CollabRoomPlainData;
|
|
@@ -1,43 +1,52 @@
|
|
|
1
1
|
import { useCollabGatheringBufferDataEventBus as e } from "./collabEventBus.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { CollabConnectionState as t } from "../types/Collab.js";
|
|
3
|
+
import { useCommonAdminCollabOptions as n } from "./commonAdminCollabOptions.js";
|
|
4
|
+
import { computed as r, reactive as i, readonly as a, ref as o, toRaw as s } from "vue";
|
|
4
5
|
// src/domains/collab/composables/collabState.ts
|
|
5
|
-
var
|
|
6
|
-
function
|
|
7
|
-
let { collabOptions:
|
|
6
|
+
var c = o(!0), l = o(t.Connected), u, d = o(), f = i(/* @__PURE__ */ new Map()), p = 0, m = /* @__PURE__ */ new Map(), h = i(/* @__PURE__ */ new Map()), g = i(/* @__PURE__ */ new Map()), _ = /* @__PURE__ */ new Map();
|
|
7
|
+
function v() {
|
|
8
|
+
let { collabOptions: i } = n();
|
|
8
9
|
return {
|
|
9
|
-
collabReconnecting:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
collabReconnecting: r(() => i.value.enabled && !c.value),
|
|
11
|
+
collabConnectionState: l,
|
|
12
|
+
collabConnectionHopeless: () => l.value !== t.Connected && l.value !== t.Reconnecting,
|
|
13
|
+
setCollabRecover: (e) => {
|
|
14
|
+
u = e;
|
|
15
|
+
},
|
|
16
|
+
reconnectCollab: () => u?.() ?? Promise.resolve(),
|
|
17
|
+
collabConnected: c,
|
|
18
|
+
collabSocket: d,
|
|
19
|
+
collabRoomInfoState: f,
|
|
13
20
|
claimRoomInfoWrite: (e) => {
|
|
14
|
-
let t = ++
|
|
15
|
-
return
|
|
21
|
+
let t = ++p;
|
|
22
|
+
return m.set(e, t), () => m.get(e) === t;
|
|
16
23
|
},
|
|
17
|
-
collabFieldLocksState:
|
|
18
|
-
collabFieldDataBufferState:
|
|
19
|
-
collabFieldLocksUnanswered:
|
|
24
|
+
collabFieldLocksState: h,
|
|
25
|
+
collabFieldDataBufferState: g,
|
|
26
|
+
collabFieldLocksUnanswered: _,
|
|
20
27
|
setFieldLockUnanswered: (e, t, n) => {
|
|
21
|
-
if (!n) return void
|
|
22
|
-
|
|
28
|
+
if (!n) return void _.get(e)?.delete(t);
|
|
29
|
+
_.has(e) || _.set(e, /* @__PURE__ */ new Set()), _.get(e)?.add(t);
|
|
23
30
|
},
|
|
24
|
-
fieldLockMaybeHeld: (e, t, n) =>
|
|
31
|
+
fieldLockMaybeHeld: (e, t, n) => h.get(e)?.get(t) === n || !!_.get(e)?.has(t),
|
|
25
32
|
gatherBufferData: (t) => {
|
|
26
33
|
e().emit({ room: t });
|
|
27
|
-
let n = {}, r =
|
|
28
|
-
return r && (n =
|
|
34
|
+
let n = {}, r = g.get(t);
|
|
35
|
+
return r && (n = s(Object.fromEntries(r.entries())), g.delete(t)), n;
|
|
29
36
|
}
|
|
30
37
|
};
|
|
31
38
|
}
|
|
32
|
-
function
|
|
33
|
-
let { collabReconnecting: e,
|
|
39
|
+
function y() {
|
|
40
|
+
let { collabReconnecting: e, collabConnectionState: t, reconnectCollab: n, collabRoomInfoState: r, collabFieldDataBufferState: i, gatherBufferData: o } = v();
|
|
34
41
|
return {
|
|
35
42
|
collabReconnecting: e,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
collabConnectionState: a(t),
|
|
44
|
+
reconnectCollab: n,
|
|
45
|
+
collabRoomInfoState: r,
|
|
46
|
+
collabFieldDataBufferState: i,
|
|
47
|
+
gatherBufferData: o
|
|
39
48
|
};
|
|
40
49
|
}
|
|
41
|
-
export {
|
|
50
|
+
export { y as useCollabState, v as useCollabStateInternal };
|
|
42
51
|
|
|
43
52
|
//# sourceMappingURL=collabState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collabState.js","names":["collabConnected","ref","collabSocket","collabRoomInfoState","reactive","collabRoomInfoWriteCounter","collabRoomInfoWriteSeq","collabFieldLocksState","collabFieldDataBufferState","collabFieldLocksUnanswered","useCollabStateInternal","useCommonAdminCollabOptions","computed","collabOptions","seq","room","unanswered","field","userId","dataBuffer","dataBufferMap","toRaw","useCollabState"],"sources":["../../../../src/domains/collab/composables/collabState.ts"],"sourcesContent":["import type { Socket } from 'socket.io-client'\nimport
|
|
1
|
+
{"version":3,"file":"collabState.js","names":["collabConnected","ref","collabConnectionState","CollabConnectionState","collabRecover","collabSocket","collabRoomInfoState","reactive","collabRoomInfoWriteCounter","collabRoomInfoWriteSeq","collabFieldLocksState","collabFieldDataBufferState","collabFieldLocksUnanswered","useCollabStateInternal","useCommonAdminCollabOptions","computed","collabOptions","recover","seq","room","unanswered","field","userId","dataBuffer","dataBufferMap","toRaw","useCollabState","readonly"],"sources":["../../../../src/domains/collab/composables/collabState.ts"],"sourcesContent":["import type { Socket } from 'socket.io-client'\nimport {\n type CollabClientToServerEvents,\n CollabConnectionState,\n type CollabConnectionStateType,\n type CollabFieldData,\n type CollabFieldLock,\n type CollabFieldName,\n type CollabRoom,\n type CollabRoomInfo,\n type CollabRoomPlainData,\n type CollabServerToClientEvents,\n} from '@/domains/collab/types/Collab'\nimport { computed, reactive, readonly, ref, type Ref, toRaw } from 'vue'\nimport { useCollabGatheringBufferDataEventBus } from '@/domains/collab/composables/collabEventBus'\nimport { useCommonAdminCollabOptions } from '@/domains/collab/composables/commonAdminCollabOptions'\n\nconst collabConnected = ref(true)\nconst collabConnectionState = ref<CollabConnectionStateType>(CollabConnectionState.Connected)\n// Set by `initCollab` for the socket it creates.\nlet collabRecover: (() => Promise<void>) | undefined\nconst collabSocket: Ref<Socket<CollabServerToClientEvents, CollabClientToServerEvents> | undefined> = ref()\nconst collabRoomInfoState = reactive(new Map<CollabRoom, CollabRoomInfo>())\n// Plain, not reactive: bookkeeping for the map above, nothing renders from it.\nlet collabRoomInfoWriteCounter = 0\nconst collabRoomInfoWriteSeq = new Map<CollabRoom, number>()\nconst collabFieldLocksState = reactive(new Map<CollabRoom, Map<CollabFieldName, CollabFieldLock>>())\nconst collabFieldDataBufferState = reactive(new Map<CollabRoom, Map<CollabFieldName, CollabFieldData>>())\n// Plain, not reactive: fields whose lock request timed out. The server may still have granted it.\n// The server notifies only other clients of a grant, so the lock map never shows this editor holding it.\n// Kept until a release is confirmed. A later request can be\n// refused while the slow one still holds the field, then granted.\nconst collabFieldLocksUnanswered = new Map<CollabRoom, Set<CollabFieldName>>()\n\n/**\n * Everything the collaboration modules share, the socket included. Internal: an admin reads\n * `useCollabState()`.\n */\nexport function useCollabStateInternal() {\n const { collabOptions } = useCommonAdminCollabOptions()\n\n const collabReconnecting = computed(() => collabOptions.value.enabled && !collabConnected.value)\n\n const gatherBufferData = (room: CollabRoom): CollabRoomPlainData => {\n const collabGatheringBufferDataEventBus = useCollabGatheringBufferDataEventBus()\n collabGatheringBufferDataEventBus.emit({ room })\n let dataBuffer: CollabRoomPlainData = {}\n const dataBufferMap = collabFieldDataBufferState.get(room)\n if (dataBufferMap) {\n dataBuffer = toRaw(Object.fromEntries(dataBufferMap.entries()))\n collabFieldDataBufferState.delete(room)\n }\n return dataBuffer\n }\n\n /**\n * Call before emitting anything whose acknowledgement writes `collabRoomInfoState`, and let the\n * returned predicate decide whether that write still applies.\n *\n * The server serialises join and leave per room only for the lifetime of its lease, so a leave that\n * outruns it can acknowledge after a following join and mark a room inactive while the client is in\n * it — after which the client goes quiet with nothing visible to show for it.\n */\n const claimRoomInfoWrite = (room: CollabRoom) => {\n /* Global and never restarting, so a number is never handed out twice. Claims outlive a\n * reconnect on purpose — see the `connect` handler in `collabInit.ts`. */\n const seq = ++collabRoomInfoWriteCounter\n collabRoomInfoWriteSeq.set(room, seq)\n\n return () => collabRoomInfoWriteSeq.get(room) === seq\n }\n\n const setFieldLockUnanswered = (room: CollabRoom, field: CollabFieldName, unanswered: boolean) => {\n if (!unanswered) return void collabFieldLocksUnanswered.get(room)?.delete(field)\n if (!collabFieldLocksUnanswered.has(room)) collabFieldLocksUnanswered.set(room, new Set())\n collabFieldLocksUnanswered.get(room)?.add(field)\n }\n\n const fieldLockMaybeHeld = (room: CollabRoom, field: CollabFieldName, userId: CollabFieldLock) =>\n collabFieldLocksState.get(room)?.get(field) === userId || !!collabFieldLocksUnanswered.get(room)?.has(field)\n\n /** No connection comes without the user acting (or, waiting for the network, before a retry): fail now. */\n const collabConnectionHopeless = () =>\n collabConnectionState.value !== CollabConnectionState.Connected &&\n collabConnectionState.value !== CollabConnectionState.Reconnecting\n\n const setCollabRecover = (recover: () => Promise<void>) => {\n collabRecover = recover\n }\n\n /** Try now, also out of `sessionEnded`, `identityChanged` and `rejected`; a no-op while connected or connecting. */\n const reconnectCollab = (): Promise<void> => collabRecover?.() ?? Promise.resolve()\n\n return {\n collabReconnecting,\n collabConnectionState,\n collabConnectionHopeless,\n setCollabRecover,\n reconnectCollab,\n collabConnected,\n collabSocket,\n collabRoomInfoState,\n claimRoomInfoWrite,\n collabFieldLocksState,\n collabFieldDataBufferState,\n collabFieldLocksUnanswered,\n setFieldLockUnanswered,\n fieldLockMaybeHeld,\n gatherBufferData,\n }\n}\n\n/**\n * What an admin reads from the collaboration state: whether the connection is being re-established and why it\n * is not (`collabConnectionState`), the rooms' info, and the buffered field data of a room (`gatherBufferData`\n * collects and clears it). `reconnectCollab` is the user's \"try again\". The socket and the lock bookkeeping stay\n * inside the library.\n */\nexport function useCollabState() {\n const {\n collabReconnecting,\n collabConnectionState,\n reconnectCollab,\n collabRoomInfoState,\n collabFieldDataBufferState,\n gatherBufferData,\n } = useCollabStateInternal()\n\n return {\n collabReconnecting,\n collabConnectionState: readonly(collabConnectionState),\n reconnectCollab,\n collabRoomInfoState,\n collabFieldDataBufferState,\n gatherBufferData,\n }\n}\n"],"mappings":";;;;;AAiBA,IAAMA,IAAkBC,EAAI,EAAI,GAC1BC,IAAwBD,EAA+BE,EAAsB,SAAS,GAExFC,GACEC,IAAgGJ,EAAI,GACpGK,IAAsBC,kBAAS,IAAI,IAAgC,CAAC,GAEtEC,IAA6B,GAC3BC,oBAAyB,IAAI,IAAwB,GACrDC,IAAwBH,kBAAS,IAAI,IAAuD,CAAC,GAC7FI,IAA6BJ,kBAAS,IAAI,IAAuD,CAAC,GAKlGK,oBAA6B,IAAI,IAAsC;AAM7E,SAAgBC,IAAyB;CACvC,IAAM,EAAE,qBAAkBC,EAA4B;CAsDtD,OAAO;EACL,oBArDyBC,QAAeC,EAAc,MAAM,WAAW,CAAChB,EAAgB,KAqDxF;EACA;EACA,gCAbAE,EAAsB,UAAUC,EAAsB,aACtDD,EAAsB,UAAUC,EAAsB;EAatD,mBAXwB,MAAiC;GACzD,IAAgBc;EAClB;EAUE,uBAP2Cb,IAAgB,KAAK,QAAQ,QAAQ;EAQhF;EACA;EACA;EACA,qBAvC0B,MAAqB;GAG/C,IAAMc,IAAM,EAAEV;GAGd,OAFAC,EAAuB,IAAIU,GAAMD,CAAG,SAEvBT,EAAuB,IAAIU,CAAI,MAAMD;EACpD;EAiCE;EACA;EACA;EACA,yBAlC8B,GAAkB,GAAwB,MAAwB;GAChG,IAAI,CAACE,GAAY,OAAO,KAAKR,EAA2B,IAAIO,CAAI,CAAC,EAAE,OAAOE,CAAK;GAE/E,AADKT,EAA2B,IAAIO,CAAI,KAAGP,EAA2B,IAAIO,mBAAM,IAAI,IAAI,CAAC,GACzFP,EAA2B,IAAIO,CAAI,CAAC,EAAE,IAAIE,CAAK;EACjD;EA+BE,qBA7B0B,GAAkB,GAAwB,MACpEX,EAAsB,IAAIS,CAAI,CAAC,EAAE,IAAIE,CAAK,MAAMC,KAAU,CAAC,CAACV,EAA2B,IAAIO,CAAI,CAAC,EAAE,IAAIE,CAAK;EA6B3G,mBAjEwB,MAA0C;GAElE,EAAA,CAAA,CAAkC,KAAK,EAAE,QAAK,CAAC;GAC/C,IAAIE,IAAkC,CAAC,GACjCC,IAAgBb,EAA2B,IAAIQ,CAAI;GAKzD,OAJIK,MACF,IAAaC,EAAM,OAAO,YAAYD,EAAc,QAAQ,CAAC,CAAC,GAC9Db,EAA2B,OAAOQ,CAAI,IAEjCI;EACT;CAwDA;AACF;AAQA,SAAgBG,IAAiB;CAC/B,IAAM,EACJ,uBACA,0BACA,oBACA,wBACA,+BACA,wBACEb,EAAuB;CAE3B,OAAO;EACL;EACA,uBAAuBc,EAASzB,CAAqB;EACrD;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -3,12 +3,14 @@ export declare function useCommonAdminCollabOptions(): {
|
|
|
3
3
|
collabOptions: import('vue').Ref<{
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
socketUrl: string;
|
|
6
|
-
beforeReconnect: () => Promise<void>;
|
|
6
|
+
beforeReconnect: () => Promise<void | import('../types/Collab').CollabReconnectVerdictType>;
|
|
7
|
+
isSameIdentity?: (() => boolean | undefined) | undefined;
|
|
7
8
|
io: typeof import('socket.io-client').io | undefined;
|
|
8
9
|
}, import('../../../AnzuSystemsCommonAdmin').CommonAdminCollabOptions | {
|
|
9
10
|
enabled: boolean;
|
|
10
11
|
socketUrl: string;
|
|
11
|
-
beforeReconnect: () => Promise<void>;
|
|
12
|
+
beforeReconnect: () => Promise<void | import('../types/Collab').CollabReconnectVerdictType>;
|
|
13
|
+
isSameIdentity?: (() => boolean | undefined) | undefined;
|
|
12
14
|
io: typeof import('socket.io-client').io | undefined;
|
|
13
15
|
}>;
|
|
14
16
|
};
|