@wildo-ai/saas-frontend-lib 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/browser-bootstrap/theme-bootstrap.d.ts.map +1 -1
- package/dist/esm/browser-bootstrap/theme-bootstrap.js.map +1 -1
- package/dist/esm/browser-bootstrap.exports.d.ts.map +1 -1
- package/dist/esm/browser-bootstrap.exports.js.map +1 -1
- package/dist/esm/companion-exports.d.ts +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js +1 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/companion-runtime-exports.d.ts.map +1 -1
- package/dist/esm/companion-runtime-exports.js.map +1 -1
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/actions/action-button.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.js.map +1 -1
- package/dist/esm/components/actions/button-group.d.ts.map +1 -1
- package/dist/esm/components/actions/button-group.js.map +1 -1
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.types.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-list.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-list.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +28 -3
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent-wrappers.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent-wrappers.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.js.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.js.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.js.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.js.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.js.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_ErrorBoundary.labels.js.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.js.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_Home.labels.js.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/AppLayout_NotificationCenter.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_NotificationCenter.js +7 -2
- package/dist/esm/components/app/AppLayout_NotificationCenter.js.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.js.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_RouterErrorBoundary.labels.js.map +1 -1
- package/dist/esm/components/app/AppPage_Home.d.ts.map +1 -1
- package/dist/esm/components/app/AppPage_Home.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_StaticContentContainer.labels.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.labels.d.ts.map +1 -1
- package/dist/esm/components/app/PublicLayout_Terms.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.js.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_AuthCallback.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.js.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_ConfirmEmail.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_EnrollmentRequired.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.js.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MagicLinkVerify.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.js.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.js.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_MfaChallenge.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthConsent.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLoggedOut.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.js.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OAuthLogoutConfirm.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.js.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_OneOffSession.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Read_SsoSaml.js.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.d.ts.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/PhoneEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/TotpEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/enrollment/enrollment-method-components.d.ts.map +1 -1
- package/dist/esm/components/auth/enrollment/enrollment-method-components.js.map +1 -1
- package/dist/esm/components/auth/methods/EmailOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/EmailOtpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/MagicLinkAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/MagicLinkAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgOidcAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgOidcAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/PasskeyAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasskeyAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/PasswordAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/PasswordAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/SmsOtpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/SmsOtpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/TotpAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/TotpAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/auth-method-components.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/auth-method-components.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthCallback.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthCallback.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthExchange.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_AuthExchange.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ConfirmEmail.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_EnrollmentRequired.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Invitation.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MagicLinkVerify.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Main.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Main.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_MfaChallenge.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLoggedOut.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OAuthLogoutConfirm.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OneOffSession.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_OneOffSession.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_PasswordLost.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_PasswordLost.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Register.d.ts.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_Register.js.map +1 -1
- package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/AuthSingleFieldFormLayout.js.map +1 -1
- package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/CredentialUsernameAutofillField.js.map +1 -1
- package/dist/esm/components/auth/utils/LabeledDivider.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/LabeledDivider.js.map +1 -1
- package/dist/esm/components/auth/utils/OAuthProvidersSection.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/OAuthProvidersSection.js.map +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.d.ts.map +1 -1
- package/dist/esm/components/auth/utils/resolvePasswordViolationsToLabels.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/DisplayContextKindContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayContextKindContext.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +8 -5
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +6 -2
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
- package/dist/esm/components/data-display/DisplayTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayTemplateContext.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.js.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.js.map +1 -1
- package/dist/esm/components/data-display/chart-echarts.d.ts.map +1 -1
- package/dist/esm/components/data-display/chart-echarts.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayChromeContext.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayChromeContext.js.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolution.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolution.utils.js.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
- package/dist/esm/components/data-display/display-resource-link-trail.d.ts.map +1 -1
- package/dist/esm/components/data-display/display-resource-link-trail.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-json.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-json.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.js.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.js.map +1 -1
- package/dist/esm/components/feedback/empty-display-policy.utils.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-display-policy.utils.js.map +1 -1
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.js.map +1 -1
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts +36 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js +29 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.js.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.js.map +1 -1
- package/dist/esm/components/feedback/notification-center.d.ts +11 -5
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.js +2 -3
- package/dist/esm/components/feedback/notification-center.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
- package/dist/esm/components/feedback/progress.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.js.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
- package/dist/esm/components/feedback/skeleton-text.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton-text.js.map +1 -1
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.js.map +1 -1
- package/dist/esm/components/feedback/toast.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.js.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +41 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.js +207 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts +3 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.d.ts.map +1 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.js +36 -0
- package/dist/esm/components/files/Files_UploadGrantDrop.labels.js.map +1 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts +8 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.d.ts.map +1 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.js +14 -0
- package/dist/esm/components/files/pages/FilesPage_UploadGrant.js.map +1 -0
- package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.js.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +21 -4
- package/dist/esm/components/flows-actors/approval.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.labels.js +5 -0
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.js +1 -1
- package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.labels.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-memory.labels.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts.map +1 -1
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.js +16 -9
- package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +9 -2
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.js +8 -6
- package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
- package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedAssociationRelationshipField.js.map +1 -1
- package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/GeneratedReferenceRelationshipField.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +37 -3
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.d.ts +12 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.d.ts.map +1 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js +26 -0
- package/dist/esm/components/form/automated/autosave-derivation.frontend.utils.js.map +1 -0
- package/dist/esm/components/form/automated/autosave-indicator.d.ts.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.js.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/autosave-indicator.utils.js.map +1 -1
- package/dist/esm/components/form/automated/create-form-default-values.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/create-form-default-values.utils.js.map +1 -1
- package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/form-field-autocomplete.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.helpers.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.helpers.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.shared.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.shared.js.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.utils.d.ts.map +1 -1
- package/dist/esm/components/form/automated/generated-relationship-field.utils.js.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
- package/dist/esm/components/form/chromes/FormChromeContext.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormChromeContext.js.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.js.map +1 -1
- package/dist/esm/components/form/chromes/form-primitives.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitives.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.js.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
- package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.js.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.js.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.js.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.js.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.js.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.js.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.js.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/markdown-editor.labels.js.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.js.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.js.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.d.ts.map +1 -1
- package/dist/esm/components/form/feedback/RemoteChangeNotification.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.js +4 -2
- package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-date.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-datetime.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.js +4 -2
- package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-enum.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.d.ts +15 -5
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.js +21 -18
- package/dist/esm/components/form/fields/form-field-file-provider-constraints.frontend.utils.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.js +139 -2
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +15 -0
- package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.js +4 -2
- package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-phone.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-date.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-datetime.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-number.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +7 -2
- package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.labels.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-time.labels.js.map +1 -1
- package/dist/esm/components/form/fields/useFormField.d.ts.map +1 -1
- package/dist/esm/components/form/fields/useFormField.js.map +1 -1
- package/dist/esm/components/form/form-context.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.js.map +1 -1
- package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.utils.js.map +1 -1
- package/dist/esm/components/form/form-field-types.d.ts +20 -0
- package/dist/esm/components/form/form-field-types.d.ts.map +1 -1
- package/dist/esm/components/form/form-field-types.js.map +1 -1
- package/dist/esm/components/form/useFormSchemaContext.d.ts.map +1 -1
- package/dist/esm/components/form/useFormSchemaContext.js.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/form-error-extraction.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/form-error-extraction.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/form-validation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/form-validation.js.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
- package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useFieldUniquenessValidation.js.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.js.map +1 -1
- package/dist/esm/components/layout/carousel.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.js.map +1 -1
- package/dist/esm/components/layout/divider.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.js.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.js.map +1 -1
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.js.map +1 -1
- package/dist/esm/components/layout/separator.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.js.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts +13 -1
- package/dist/esm/components/navigation/NavigationItemBadge.d.ts.map +1 -1
- package/dist/esm/components/navigation/NavigationItemBadge.js +31 -2
- package/dist/esm/components/navigation/NavigationItemBadge.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ActivityBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_CommandMenu.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_ControlPanel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_MenuUserOrg.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_NotificationCenter.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickSwitcher.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Sidebar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_Toolbar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/component-props.application-level.frontend.schemas.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useActivityBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useActivityBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useControlPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useControlPanelBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts +5 -2
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.js +18 -41
- package/dist/esm/components/navigation/app-level/useNotificationCenterBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickActionButtonBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js +13 -3
- package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useToolbarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useToolbarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +23 -5
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +81 -13
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
- package/dist/esm/components/navigation/command.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.js.map +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.js.map +1 -1
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.js.map +1 -1
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.js.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.js +36 -9
- package/dist/esm/components/overlays/containers/OverlayContainer.js.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/OverlayContainer.labels.js.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.js.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.shared-types.js.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.js.map +1 -1
- package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/navigation-overlay-container.utils.js.map +1 -1
- package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/overlay-container-mode-resolution.utils.js.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.js.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.js.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.js.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.js.map +1 -1
- package/dist/esm/components/overlays/floating/menu.shared-types.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/menu.shared-types.js.map +1 -1
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.js.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.js.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.js.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.labels.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionAchievementBadge.labels.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.d.ts.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
- package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
- package/dist/esm/components/resources/EphemeralFieldsRevealDialog.d.ts.map +1 -1
- package/dist/esm/components/resources/EphemeralFieldsRevealDialog.js.map +1 -1
- package/dist/esm/components/resources/InlineSearchInput.d.ts.map +1 -1
- package/dist/esm/components/resources/InlineSearchInput.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
- package/dist/esm/components/resources/ResourceInPlaceOperationRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceInPlaceOperationRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +9 -0
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Header.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_List_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Pagination.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read_Expandable.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read_Expandable.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.labels.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Update.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionPopover.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationActionPopover.js.map +1 -1
- package/dist/esm/components/resources/ResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOperationSurface.js.map +1 -1
- package/dist/esm/components/resources/ResourceOwnedViewEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceOwnedViewEmbeds.js.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
- package/dist/esm/components/resources/card-action-placement.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/card-action-placement.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-view-mode.frontend.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-view-mode.frontend.js.map +1 -1
- package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/components/resources/component-props.resources-layout.frontend.schemas.js.map +1 -1
- package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ComposedChildrenRegistry.js.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/EmbeddedResourceHostContext.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
- package/dist/esm/components/resources/inserted-resource-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/inserted-resource-view.frontend.utils.js.map +1 -1
- package/dist/esm/components/resources/resource-operation-custom-view.contracts.d.ts.map +1 -1
- package/dist/esm/components/resources/resource-operation-custom-view.contracts.js.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayItemTemplate.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ArrayItemTemplate.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DiscriminatorSwitch.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Divider.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Divider.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldScopeContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldScopeContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormErrorSummarySlot.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayoutSlotContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +12 -0
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +13 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.shared.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.shared.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionHostHeadingContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionPresentationContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SectionPresentationContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SubmitButton.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SubmitButton.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryHeader.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryHeader.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryMeta.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryMeta.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStepFieldsContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.shared.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.shared.js.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
- package/dist/esm/components/resources/useInlineSearch.d.ts.map +1 -1
- package/dist/esm/components/resources/useInlineSearch.js.map +1 -1
- package/dist/esm/components/resources/useLongPress.d.ts.map +1 -1
- package/dist/esm/components/resources/useLongPress.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Search.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldDisplay_ResourceReference.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/ResourceFieldEdit_ResourceReference.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
- package/dist/esm/components/sections/accordion.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.js.map +1 -1
- package/dist/esm/components/sections/card.d.ts.map +1 -1
- package/dist/esm/components/sections/card.js.map +1 -1
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.js.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/pagination.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.js.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.js.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.js.map +1 -1
- package/dist/esm/components/sections/surface.d.ts.map +1 -1
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/sections/table.d.ts.map +1 -1
- package/dist/esm/components/sections/table.js.map +1 -1
- package/dist/esm/components/sections/tabs.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +121 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +386 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +56 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +32 -5
- package/dist/esm/components/settings/SettingsHub.js.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/SettingsSectionNavigationHost.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsSectionNavigationHost.js.map +1 -1
- package/dist/esm/components/typography/heading.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.js.map +1 -1
- package/dist/esm/components/typography/label.d.ts.map +1 -1
- package/dist/esm/components/typography/label.js.map +1 -1
- package/dist/esm/components/typography/link.d.ts.map +1 -1
- package/dist/esm/components/typography/link.js.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/text.js.map +1 -1
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
- package/dist/esm/components/typography/truncated-text.js.map +1 -1
- package/dist/esm/components/views/ViewLayout_Header.d.ts.map +1 -1
- package/dist/esm/components/views/ViewLayout_Header.js.map +1 -1
- package/dist/esm/components/views/ViewNotFound.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.js.map +1 -1
- package/dist/esm/components/views/ViewNotFound.labels.d.ts.map +1 -1
- package/dist/esm/components/views/ViewNotFound.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartEmptyState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartEmptyState.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartErrorState.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartErrorState.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartLoadingSkeleton.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.lazy.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.lazy.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.labels.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/ChartWidget.labels.js.map +1 -1
- package/dist/esm/components/views/chart-view/WildoEChart.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/WildoEChart.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-runtime.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-runtime.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-theme-bridge.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-theme-bridge.js.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/dev/ChartView.example.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/dev/ChartView.example.js.map +1 -1
- package/dist/esm/components/views/chart-view/echarts-setup.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/echarts-setup.js.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/funnel.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/gauge.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/heatmap.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/hierarchical-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/parallel.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/pie-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/radar.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/sankey.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/builders/statistical-family.builder.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
- package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeView.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeView.js.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeViewContext.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/CompositeViewContext.js.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useHostRecordDerivedParentContext.js.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.js.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/execution-view/ExecutionView.labels.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +11 -7
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
- package/dist/esm/components/views/full-custom-view/FullCustomView.d.ts.map +1 -1
- package/dist/esm/components/views/full-custom-view/FullCustomView.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.js +9 -2
- package/dist/esm/components/views/onboarding-view/OnboardingView.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.labels.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/OnboardingView.labels.js.map +1 -1
- package/dist/esm/components/views/onboarding-view/onboarding-view.utils.d.ts.map +1 -1
- package/dist/esm/components/views/onboarding-view/onboarding-view.utils.js.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
- package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +40 -18
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js +0 -5
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.utils.js.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.d.ts +16 -0
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.js +17 -0
- package/dist/esm/core/automated-layout/automated-layout.frontend.schemas.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +31 -11
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +34 -25
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +30 -4
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +233 -17
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/BillingContext.d.ts +36 -0
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +1 -0
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/billing/BillingErrorNotifier.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingErrorNotifier.js.map +1 -1
- package/dist/esm/core/billing/billing-launcher.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-launcher.js +1 -1
- package/dist/esm/core/billing/billing-launcher.js.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
- package/dist/esm/core/billing/useBilling.d.ts.map +1 -1
- package/dist/esm/core/billing/useBilling.js.map +1 -1
- package/dist/esm/core/billing/useBillingAction.d.ts.map +1 -1
- package/dist/esm/core/billing/useBillingAction.js.map +1 -1
- package/dist/esm/core/billing/useSafeBillingActionExecutor.d.ts.map +1 -1
- package/dist/esm/core/billing/useSafeBillingActionExecutor.js.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.d.ts +17 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.js +17 -0
- package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
- package/dist/esm/core/commons/devices.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/devices.frontend.schemas.js.map +1 -1
- package/dist/esm/core/commons/local-storage.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/local-storage.frontend.schemas.js.map +1 -1
- package/dist/esm/core/commons/window-event.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons/window-event.frontend.schemas.js.map +1 -1
- package/dist/esm/core/companion/companion-exports.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/companion/companion-exports.frontend.definitions.js.map +1 -1
- package/dist/esm/core/components-registry/ComponentNotInjected.d.ts.map +1 -1
- package/dist/esm/core/components-registry/ComponentNotInjected.js.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry-loader.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry-loader.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.js +4 -1
- package/dist/esm/core/components-registry/component-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +8 -1
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +188 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +255 -0
- package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -0
- package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.js +2 -0
- package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +76 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +99 -0
- package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -0
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +15 -5
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +44 -7
- package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-level-components.frontend.schemas.js +44 -7
- package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +14 -14
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.js.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.d.ts +0 -49
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +102 -56
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts +5 -3
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js +2 -2
- package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
- package/dist/esm/core/config/full-custom-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/full-custom-view.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +51 -11
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +21 -7
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/onboarding-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/onboarding-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/resource-owned-view-resolution.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +23 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +22 -0
- package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useSettingsHubConfig.js +8 -1
- package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/verify-feature-references.frontend.d.ts +7 -0
- package/dist/esm/core/config/verify-feature-references.frontend.d.ts.map +1 -1
- package/dist/esm/core/config/verify-feature-references.frontend.js +42 -1
- package/dist/esm/core/config/verify-feature-references.frontend.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +9 -2
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
- package/dist/esm/core/config/views-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/views-frontend.schemas.js.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
- package/dist/esm/core/errors/ErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
- package/dist/esm/core/errors/ErrorContext.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
- package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
- package/dist/esm/core/errors/http-error-behavior.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/errors/http-error-behavior.frontend.schemas.js.map +1 -1
- package/dist/esm/core/errors/useError.d.ts.map +1 -1
- package/dist/esm/core/errors/useError.js.map +1 -1
- package/dist/esm/core/errors/withErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/errors/withErrorBoundary.js.map +1 -1
- package/dist/esm/core/events/EventBusContext.d.ts.map +1 -1
- package/dist/esm/core/events/EventBusContext.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts +6 -5
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +41 -39
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/event-bus.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/events/event-bus.frontend.service.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +34 -18
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +22 -1
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/notification-display-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/notification-display-policy.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/toast.d.ts.map +1 -1
- package/dist/esm/core/events/toast.js.map +1 -1
- package/dist/esm/core/events/useEventBus.d.ts.map +1 -1
- package/dist/esm/core/events/useEventBus.js.map +1 -1
- package/dist/esm/core/events/useNotification.d.ts.map +1 -1
- package/dist/esm/core/events/useNotification.js.map +1 -1
- package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionDirtyMarkerScopeContext.js.map +1 -1
- package/dist/esm/core/execution/ExecutionRuntimeContext.d.ts.map +1 -1
- package/dist/esm/core/execution/ExecutionRuntimeContext.js.map +1 -1
- package/dist/esm/core/execution/execution-anchor.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-anchor.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-dirty-markers.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-dirty-markers.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-failure-handling.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-failure-handling.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-outcome-emission.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-outcome-emission.utils.js.map +1 -1
- package/dist/esm/core/execution/execution-participation.utils.d.ts.map +1 -1
- package/dist/esm/core/execution/execution-participation.utils.js.map +1 -1
- package/dist/esm/core/execution/useExecution.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecution.js.map +1 -1
- package/dist/esm/core/execution/useExecutionDirtyBridge.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionDirtyBridge.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationDataPrefetch.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationPrefetch.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationPrefetch.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +77 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js +114 -0
- package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -0
- package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-display-label.frontend.utils.js.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +33 -15
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +27 -21
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts +102 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js +117 -0
- package/dist/esm/core/external-providers/provider-file-selection.frontend.utils.js.map +1 -0
- package/dist/esm/core/features/FeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureGate.js +1 -1
- package/dist/esm/core/features/FeatureGate.js.map +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.d.ts.map +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.js +1 -1
- package/dist/esm/core/features/FeatureRouteGuard.js.map +1 -1
- package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
- package/dist/esm/core/features/FeaturesContext.js.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts +7 -0
- package/dist/esm/core/features/feature-unavailability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/features/feature-unavailability.frontend.utils.js +5 -0
- package/dist/esm/core/features/feature-unavailability.frontend.utils.js.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.d.ts +2 -0
- package/dist/esm/core/features/useFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureAvailability.js +4 -2
- package/dist/esm/core/features/useFeatureAvailability.js.map +1 -1
- package/dist/esm/core/features/useFeatureGate.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatureGate.js.map +1 -1
- package/dist/esm/core/features/useFeatures.d.ts.map +1 -1
- package/dist/esm/core/features/useFeatures.js.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +26 -2
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +60 -3
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/useFlowsActors.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/useFlowsActors.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.js +2 -2
- package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
- package/dist/esm/core/guidance/guidance-audience.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-audience.frontend.utils.js.map +1 -1
- package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.d.ts.map +1 -1
- package/dist/esm/core/guidance/guidance-resource-compiler.shared.utils.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceAnnouncement.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBadge.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceBanner.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceCard.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklistItem.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceModal.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceSurvey.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTooltip.labels.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.labels.d.ts.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceTour.labels.js.map +1 -1
- package/dist/esm/core/guidance/useGuidance.d.ts.map +1 -1
- package/dist/esm/core/guidance/useGuidance.js.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +29 -0
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +76 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
- package/dist/esm/core/hotkey/HotkeyRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyRegistryContext.js +44 -8
- package/dist/esm/core/hotkey/HotkeyRegistryContext.js.map +1 -1
- package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.d.ts.map +1 -1
- package/dist/esm/core/hotkey/HotkeyShortcutsHelpDialog.js.map +1 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts +53 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.js +78 -13
- package/dist/esm/core/hotkey/hotkey-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
- package/dist/esm/core/hotkey/useHotkey.d.ts.map +1 -1
- package/dist/esm/core/hotkey/useHotkey.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +32 -0
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +154 -32
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +51 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +66 -0
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -0
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +22 -2
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.definitions.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/icons/useIconRegistry.d.ts.map +1 -1
- package/dist/esm/core/icons/useIconRegistry.js.map +1 -1
- package/dist/esm/core/loading/AppLoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/AppLoadingGate.js.map +1 -1
- package/dist/esm/core/loading/LoadingBarrier.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingBarrier.js.map +1 -1
- package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingContext.js.map +1 -1
- package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
- package/dist/esm/core/loading/LoadingGate.js +16 -3
- package/dist/esm/core/loading/LoadingGate.js.map +1 -1
- package/dist/esm/core/loading/loading-policy.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-policy.frontend.schemas.js.map +1 -1
- package/dist/esm/core/loading/loading-scope.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-scope.frontend.utils.js.map +1 -1
- package/dist/esm/core/loading/loading-types.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/loading/loading-types.frontend.schemas.js.map +1 -1
- package/dist/esm/core/loading/resolveLoadingPolicy.d.ts.map +1 -1
- package/dist/esm/core/loading/resolveLoadingPolicy.js.map +1 -1
- package/dist/esm/core/loading/useAppLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useAppLoading.js.map +1 -1
- package/dist/esm/core/loading/useComponentLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useComponentLoading.js.map +1 -1
- package/dist/esm/core/loading/useEmitLoadingScope.d.ts.map +1 -1
- package/dist/esm/core/loading/useEmitLoadingScope.js.map +1 -1
- package/dist/esm/core/loading/useLoading.d.ts.map +1 -1
- package/dist/esm/core/loading/useLoading.js.map +1 -1
- package/dist/esm/core/mode/AppModeContext.d.ts.map +1 -1
- package/dist/esm/core/mode/AppModeContext.js.map +1 -1
- package/dist/esm/core/mode/section-visibility.d.ts.map +1 -1
- package/dist/esm/core/mode/section-visibility.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/useAnalytics.d.ts.map +1 -1
- package/dist/esm/core/monitoring/analytics/useAnalytics.js.map +1 -1
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts +97 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.d.ts.map +1 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js +179 -0
- package/dist/esm/core/monitoring/error-monitoring-bridge.frontend.service.js.map +1 -0
- package/dist/esm/core/monitoring/logger.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/monitoring/logger.frontend.service.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +76 -48
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts +12 -0
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +24 -0
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
- package/dist/esm/core/navigation/hosted-pane.constants.d.ts.map +1 -1
- package/dist/esm/core/navigation/hosted-pane.constants.js.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts +1 -1
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +14 -5
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +146 -17
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.d.ts +58 -10
- package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js +1 -1
- package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +2 -2
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +4 -4
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/primary-destination-layout.d.ts.map +1 -1
- package/dist/esm/core/navigation/primary-destination-layout.js.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +1 -1
- package/dist/esm/core/navigation/useIsStackEntryActive.js.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +8 -0
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +26 -6
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationState.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationState.js.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
- package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
- package/dist/esm/core/navigation/useTransactionAwareSyncRetry.d.ts.map +1 -1
- package/dist/esm/core/navigation/useTransactionAwareSyncRetry.js.map +1 -1
- package/dist/esm/core/navigation/view-title-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/view-title-resolution.js.map +1 -1
- package/dist/esm/core/navigation/zone-content-geometry.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-content-geometry.js.map +1 -1
- package/dist/esm/core/navigation/zone-empty-behavior.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-empty-behavior.js.map +1 -1
- package/dist/esm/core/navigation/zone-visible-entry.d.ts +26 -0
- package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-visible-entry.js +76 -0
- package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -0
- package/dist/esm/core/requests/api-readiness-checker.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/api-readiness-checker.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
- package/dist/esm/core/requests/client-instance-id.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/client-instance-id.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/network-backoff.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/requests/network-backoff.frontend.utils.js.map +1 -1
- package/dist/esm/core/requests/offline-replay-policy.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/offline-replay-policy.frontend.js.map +1 -1
- package/dist/esm/core/requests/request-cancellation.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/requests/request-cancellation.frontend.utils.js.map +1 -1
- package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/ConnectionStatusNotifier.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useNotificationBadges.js +32 -19
- package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
- package/dist/esm/core/requests/websockets/useResourceRoom.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useResourceRoom.js.map +1 -1
- package/dist/esm/core/requests/websockets/useWebSocket.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/useWebSocket.js.map +1 -1
- package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +146 -2
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +108 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +3 -2
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +57 -4
- package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +6 -0
- package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js +1 -0
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewContext.js.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceOperationViewProvider.js.map +1 -1
- package/dist/esm/core/resources/ResourceReadCacheBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceReadCacheBridge.js +130 -37
- package/dist/esm/core/resources/ResourceReadCacheBridge.js.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/ephemeral-fields.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/ephemeral-fields.utils.js.map +1 -1
- package/dist/esm/core/resources/file-serve-url.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/file-serve-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/in-place/InPlaceOperationContext.d.ts.map +1 -1
- package/dist/esm/core/resources/in-place/InPlaceOperationContext.js.map +1 -1
- package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-initiator-satisfaction.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-operation-view.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-operation-view.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-path.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-path.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/resource-read-cache.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resource-read-cache.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistryContext.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMRegistryContext.js.map +1 -1
- package/dist/esm/core/resources/rmm/RMMWebSocketBridge.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/RMMWebSocketBridge.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/canonical-read.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/rmm/field-path.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/field-path.utils.js.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-constants.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-constants.js.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-noop-snapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/rmm-noop-snapshot.js.map +1 -1
- package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/types.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useListInvalidation.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useListInvalidation.js.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMEventHandler.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMEventHandler.js.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMSnapshot.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useRMMSnapshot.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.d.ts.map +1 -1
- package/dist/esm/core/resources/useAuthedFileObjectUrl.frontend.hook.js.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
- package/dist/esm/core/resources/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.js +20 -14
- package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/resources/useResourceRegistry.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceRegistry.js.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
- package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
- package/dist/esm/core/runtime/AppRouter.js +2 -1
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +9 -0
- package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +1 -0
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/app-config-overrides.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/env-variable-loader.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/env-variable-loader.frontend.service.js.map +1 -1
- package/dist/esm/core/runtime/frontend-companion-resource-inputs.d.ts.map +1 -1
- package/dist/esm/core/runtime/frontend-companion-resource-inputs.js.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +6 -0
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.js +7 -0
- package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/runtime.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/runtime/runtime.frontend.schemas.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts +38 -0
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +92 -3
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/runtime/useApplication.d.ts.map +1 -1
- package/dist/esm/core/runtime/useApplication.js.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
- package/dist/esm/core/scope/scope.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.frontend.schemas.js.map +1 -1
- package/dist/esm/core/scope/scope.utils.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/scope/scope.utils.frontend.service.js.map +1 -1
- package/dist/esm/core/scope/useAppScope.d.ts.map +1 -1
- package/dist/esm/core/scope/useAppScope.js.map +1 -1
- package/dist/esm/core/security/AnonymousSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AnonymousSessionContext.js.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +97 -13
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/auth-session.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-session.utils.js.map +1 -1
- package/dist/esm/core/security/cross-frontend-handoff.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/security/cross-frontend-handoff.frontend.service.js.map +1 -1
- package/dist/esm/core/security/jwt.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/jwt.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
- package/dist/esm/core/security/session-token-storage.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/security/session-token-storage.frontend.service.js.map +1 -1
- package/dist/esm/core/security/useAuthSession.d.ts.map +1 -1
- package/dist/esm/core/security/useAuthSession.js.map +1 -1
- package/dist/esm/core/security/useResolvedAuthConfig.d.ts.map +1 -1
- package/dist/esm/core/security/useResolvedAuthConfig.js.map +1 -1
- package/dist/esm/core/security/useStepUpAuth.d.ts.map +1 -1
- package/dist/esm/core/security/useStepUpAuth.js.map +1 -1
- package/dist/esm/core/security/useUserOrgs.d.ts.map +1 -1
- package/dist/esm/core/security/useUserOrgs.js.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfaceErrorBoundary.js.map +1 -1
- package/dist/esm/core/ui/SurfacePolicyContext.d.ts.map +1 -1
- package/dist/esm/core/ui/SurfacePolicyContext.js.map +1 -1
- package/dist/esm/core/ui/TypographyScopeContext.d.ts.map +1 -1
- package/dist/esm/core/ui/TypographyScopeContext.js.map +1 -1
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/chart-style-defaults.d.ts.map +1 -1
- package/dist/esm/core/ui/chart-style-defaults.js.map +1 -1
- package/dist/esm/core/ui/cn.d.ts.map +1 -1
- package/dist/esm/core/ui/cn.js.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
- package/dist/esm/core/ui/design-token-class-groups.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token-class-groups.js.map +1 -1
- package/dist/esm/core/ui/design-token-config.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token-config.utils.js.map +1 -1
- package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token.utils.js.map +1 -1
- package/dist/esm/core/ui/material-runtime.d.ts.map +1 -1
- package/dist/esm/core/ui/material-runtime.js.map +1 -1
- package/dist/esm/core/ui/surface-a11y.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/surface-a11y.utils.js.map +1 -1
- package/dist/esm/core/ui/theme-preference-storage.shared.d.ts.map +1 -1
- package/dist/esm/core/ui/theme-preference-storage.shared.js.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -2
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
- package/dist/esm/core/ui/useUI.d.ts.map +1 -1
- package/dist/esm/core/ui/useUI.js.map +1 -1
- package/dist/esm/index.d.ts +7 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +20 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tailwind/index.d.ts.map +1 -1
- package/dist/esm/tailwind/index.js.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +2 -0
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing/mock-factory.d.ts.map +1 -1
- package/dist/esm/testing/mock-factory.js.map +1 -1
- package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
- package/dist/esm/testing/rmm-helpers.js.map +1 -1
- package/dist/esm/testing/test-providers.d.ts.map +1 -1
- package/dist/esm/testing/test-providers.js.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +0 -21
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.js +0 -12
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts +0 -12
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.js +0 -11
- package/dist/esm/components/billing/billing-promotion-code-input.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketEventBridge.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/WebSocketEventBridge.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { WebSocketResourceValidationService } from './websocket-resource-validation.frontend.service';\nimport { \n FrontendEvents, \n FrontendEventResourceOperation, \n FrontendEventBadgeCountChanged,\n FrontendEventResourceEditing,\n FrontendEventResourceCustom,\n FrontendEventNotifyCustom,\n type FrontendEvent_AnalyticsMomentAchieved,\n type FrontendEvent_MilestoneAchieved,\n type FrontendEvent_ProgressionUpdated,\n type FrontendEvent_LifecycleStageChanged,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n AnalyticsTriggerSource,\n CoreResourceOperation,\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceNotificationPayload,\n WS_ResourceUpdatedPayload,\n WS_BadgeUpdatePayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WS_UserNotificationPayload,\n WS_AnalyticsMomentAchievedPayload,\n NotificationLevel,\n ResourceAction,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n OnboardingStatus,\n WebSocketResourceDeliveryTarget,\n type WS_GuidanceStateChangedPayload,\n type WS_MilestoneAchievedPayload,\n type WS_ProgressionUpdatedPayload,\n type WS_LifecycleStageChangedPayload,\n} from '@wildo-ai/saas-models';\nimport { getOperationsForCoreSemantic } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isFrontendOperationAddressableForCurrentContext } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { operationInitiatorParametersSatisfied } from '~wildo-frontend-lib/core/resources/operation-initiator-satisfaction.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForTransport,\n type ContextResourceIdentifiersInput,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\n\n/**\n * WebSocketEventBridge\n * \n * Bridges WebSocket events from the Socket.IO connection to the Frontend EventBus.\n * This component should be mounted once at the app root level, after both\n * WebSocketProvider and EventBusProvider.\n * \n * Events bridged:\n * - resource:notification → RESOURCE_REFRESH, NOTIFY_RESOURCE_*\n * - resource:updated → RESOURCE_REFRESH\n * - resource:deleted → RESOURCE_REFRESH\n * - badge:update → BADGE_COUNT_CHANGED\n * - guidance:state-changed → GUIDANCE_FLOW_ACTIVATED/COMPLETED/DISMISSED\n * \n * Business logic components can then subscribe to EventBus events without\n * knowing the event source (HTTP response, WebSocket, or other).\n */\nexport const WebSocketEventBridge: React.FC = () => {\n const { on, isConnected } = useWebSocket();\n const eventBus = useEventBus();\n const { getResourcesRegistry } = useResourceRegistry();\n const registry = useMemo(() => getResourcesRegistry(), [getResourcesRegistry]);\n\n // Initialize the validation service used by websocket payloads that carry\n // resource-shaped data.\n const validationService = useMemo(() => {\n return new WebSocketResourceValidationService(registry);\n }, [registry]);\n\n useEffect(() => {\n if (!isConnected) {\n return;\n }\n\n // Helper: Map action to default notification level (fallback when notificationLevel not provided)\n const actionToNotificationLevel = (action: ResourceAction | string): NotificationLevel => {\n switch (action) {\n case ResourceAction.CREATED: return NotificationLevel.SUCCESS;\n case ResourceAction.UPDATED: return NotificationLevel.INFO;\n case ResourceAction.DELETED: return NotificationLevel.WARNING;\n default: return NotificationLevel.INFO;\n }\n };\n\n const resolveOperationFromPayload = (params: {\n resourceType: string;\n operationIdentifier: string;\n operationPathKey?: string;\n variantType?: ResourceOperationVariantType;\n isOperationDefault?: boolean;\n isBulkOperation?: boolean;\n variantKey?: string;\n }) => {\n const operations = registry.resourceConfigurations[params.resourceType]?.operations ?? [];\n if (params.operationPathKey) {\n const pathOperation = operations.find((operation) => {\n try {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === params.operationPathKey;\n } catch {\n return false;\n }\n });\n if (pathOperation) {\n return pathOperation;\n }\n }\n\n const matchingOperations = operations.filter((operation) => (\n String(operation.operationIdentifier) === params.operationIdentifier\n && (params.variantType == null || operation.variantType === params.variantType)\n && (params.variantKey == null || operation.variantKey === params.variantKey)\n && (params.isBulkOperation == null || (operation.isBulkOperation === true) === params.isBulkOperation)\n && (\n params.isOperationDefault == null\n || Boolean(operation.isOperationDefault) === params.isOperationDefault\n )\n ));\n\n if (matchingOperations.length === 1) {\n return matchingOperations[0];\n }\n\n if (matchingOperations.length > 1) {\n console.warn('[WebSocketEventBridge] Ambiguous operation identity in notification payload; emitting minimal operation context.', {\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n variantKey: params.variantKey,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n candidateVariants: matchingOperations.map((operation) => ({\n variantType: operation.variantType,\n variantKey: operation.variantKey,\n isOperationDefault: operation.isOperationDefault,\n isBulkOperation: operation.isBulkOperation,\n })),\n });\n }\n\n // Some websocket producers only carry operation identity fields, not the\n // full authored operation object. Rebuild the minimum shape the EventBus\n // contracts expect so downstream consumers can still reason about variant,\n // default-ness, and bulk semantics consistently.\n return {\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n variantKey: params.variantKey,\n };\n };\n\n const emitRefreshPayloads = ({\n resourceType,\n resourceIds,\n contextResourceIdentifiers,\n shouldEmitReadRefresh,\n }: {\n resourceType: string;\n resourceIds?: Array<string | null | undefined>;\n contextResourceIdentifiers?: ContextResourceIdentifiersInput;\n shouldEmitReadRefresh: boolean;\n }): void => {\n const resourceConfig = registry.resourceConfigurations[resourceType];\n const flattenedContextIdentifiers = normalizeContextResourceIdentifiersForTransport(\n contextResourceIdentifiers,\n );\n const normalizedContextIdentifiers = Object.fromEntries(\n Object.entries(flattenedContextIdentifiers).flatMap(([identifierKey, resourceIdentifier]) => {\n const normalizedKey = registry.fieldIdentifierToResourceType?.[identifierKey] ?? identifierKey;\n return normalizedKey === identifierKey\n ? [[identifierKey, resourceIdentifier]]\n : [\n [identifierKey, resourceIdentifier],\n [normalizedKey, resourceIdentifier],\n ];\n }),\n );\n const baseContextIdentifiers = {\n ...normalizedContextIdentifiers,\n };\n delete baseContextIdentifiers[resourceType];\n const baseContextualParameters = FrontendResourceUtils.buildContextualParameters(\n baseContextIdentifiers,\n registry,\n );\n\n // This bridge owns generic cache/list/read invalidation only. It does not\n // try to replay authoritative resource data into local state; richer sync\n // semantics stay in the dedicated RMM websocket bridge. The consumers here\n // are generic RESOURCE_REFRESH listeners such as non-RMM readers, list\n // surfaces, and cache invalidation hooks.\n const listOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.LIST,\n ).filter((listOperation) =>\n operationInitiatorParametersSatisfied({\n operation: listOperation,\n contextResourceIdentifiers: baseContextIdentifiers,\n contextualParameters: baseContextualParameters,\n })\n );\n const listRefreshTargets = listOperations.length > 0\n ? listOperations\n : [null];\n const baseParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n baseContextIdentifiers,\n registry,\n );\n\n for (const listOperation of listRefreshTargets) {\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(listOperation?.operationIdentifier ?? CoreResourceOperation.LIST),\n variantType: listOperation?.variantType,\n isOperationDefault: listOperation?.isOperationDefault ?? true,\n isBulkOperation: listOperation?.isBulkOperation ?? false,\n variantKey: listOperation?.variantKey,\n contextResourceIdentifiers: baseContextIdentifiers,\n parentResourcesRequirements: baseParentResourcesRequirements,\n operation: (listOperation ?? { operationIdentifier: CoreResourceOperation.LIST }) as any,\n });\n }\n\n const validReadResourceIds = Array.from(new Set(\n (resourceIds ?? []).filter((resourceId): resourceId is string => typeof resourceId === 'string' && resourceId.length > 0),\n ));\n\n if (!shouldEmitReadRefresh || validReadResourceIds.length === 0) {\n return;\n }\n\n const readOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.READ,\n {\n requireAddressable: true,\n },\n );\n const emittedReadOperationKeys = new Set<string>();\n\n for (const resourceId of validReadResourceIds) {\n const readContextIdentifiers = {\n ...baseContextIdentifiers,\n [resourceType]: resourceId,\n };\n const readContextualParameters = FrontendResourceUtils.buildContextualParameters(\n readContextIdentifiers,\n registry,\n );\n const readParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n readContextIdentifiers,\n registry,\n );\n const addressableReadOperations = readOperations.filter((readOperation) =>\n resourceConfig\n ? isFrontendOperationAddressableForCurrentContext({\n resourceConfig,\n operation: readOperation,\n registry,\n hasResourceId: true,\n contextResourceIdentifiers: readContextIdentifiers,\n contextualParameters: readContextualParameters,\n })\n : true\n );\n const readRefreshTargets = addressableReadOperations.length > 0\n ? addressableReadOperations\n : [null];\n\n for (const readOperation of readRefreshTargets) {\n const readOperationContext = readOperation\n ?? ({ operationIdentifier: CoreResourceOperation.READ } as any);\n const readOperationKey = [\n resourceId,\n String(readOperationContext.operationIdentifier),\n readOperationContext.variantType ?? '',\n readOperationContext.variantKey ?? '',\n readOperationContext.isBulkOperation ?? false,\n ].join(':');\n if (emittedReadOperationKeys.has(readOperationKey)) {\n continue;\n }\n emittedReadOperationKeys.add(readOperationKey);\n\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(readOperationContext.operationIdentifier ?? CoreResourceOperation.READ),\n variantType: readOperation?.variantType,\n isOperationDefault: readOperation?.isOperationDefault ?? true,\n isBulkOperation: readOperation?.isBulkOperation ?? false,\n variantKey: readOperation?.variantKey,\n contextResourceIdentifiers: readContextIdentifiers,\n parentResourcesRequirements: readParentResourcesRequirements,\n operation: readOperationContext,\n });\n }\n }\n };\n\n // Bridge: resource:notification → EventBus\n const unsubNotification = on<WS_ResourceNotificationPayload>(\n CoreWebSocketEvent.RESOURCE_NOTIFICATION,\n (payload) => {\n const resolvedOperation = resolveOperationFromPayload({\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n operationPathKey: payload.operationPathKey,\n variantType: payload.variantType,\n isOperationDefault: payload.isOperationDefault,\n isBulkOperation: payload.isBulkOperation,\n variantKey: payload.variantKey,\n });\n const eventPayload: FrontendEventResourceOperation = {\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n variantType: resolvedOperation.variantType ?? payload.variantType,\n isOperationDefault: resolvedOperation.isOperationDefault ?? payload.isOperationDefault,\n isBulkOperation: resolvedOperation.isBulkOperation ?? payload.isBulkOperation,\n variantKey: typeof resolvedOperation.variantKey === 'string' ? resolvedOperation.variantKey : payload.variantKey,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n parentResourcesRequirements: [],\n operation: resolvedOperation as any,\n // Include notification context for i18n message resolution\n additionalContext: {\n notificationIdentifier: payload.notificationIdentifier,\n action: payload.action,\n frontendDisplayHints: payload.frontendDisplayHints,\n },\n // Populate resultSummary from WS notification context identifiers\n // (enables analytics RESOURCE_OPERATION filter evaluation)\n resultSummary: payload.contextResourceIdentifiers\n ? { ...payload.contextResourceIdentifiers }\n : undefined,\n };\n\n // Use notificationLevel from payload if provided, otherwise derive from action\n const level = payload.notificationLevel ?? actionToNotificationLevel(payload.action);\n if (level !== NotificationLevel.ERROR) {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.affectedIds,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.affectedIds.length > 0 && !(payload.isBulkOperation ?? false),\n });\n }\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (level) {\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_ERROR, eventPayload);\n break;\n case NotificationLevel.INFO:\n default:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: resource:updated → EventBus RESOURCE_REFRESH\n const unsubUpdated = on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // RESOURCE_UPDATED always triggers generic refresh fan-out here so\n // non-RMM consumers still invalidate list/read surfaces. Resource-room\n // sync replay and authoritative refetch decisions remain owned by\n // RMMWebSocketBridge.\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? payload.affectedIds ?? []\n : [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? (payload.affectedIds?.length ?? 0) > 0\n : Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: resource:deleted → EventBus RESOURCE_REFRESH\n const unsubDeleted = on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: badge:update → EventBus BADGE_COUNT_CHANGED\n const unsubBadge = on<WS_BadgeUpdatePayload>(\n CoreWebSocketEvent.BADGE_UPDATE,\n (payload) => {\n const eventPayload: FrontendEventBadgeCountChanged = {\n badgeReference: payload.badgeReference,\n badgeCount: payload.badgeCount,\n };\n\n eventBus.emit(FrontendEvents.BADGE_COUNT_CHANGED, eventPayload);\n }\n );\n\n // Bridge: resource:editing:start → EventBus RESOURCE_EDITING_START\n const unsubEditingStart = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_START, eventPayload);\n }\n }\n );\n\n // Bridge: resource:editing:end → EventBus RESOURCE_EDITING_END\n const unsubEditingEnd = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_END, eventPayload);\n }\n }\n );\n\n // Bridge: resource:custom → EventBus RESOURCE_CUSTOM_EVENT\n const unsubCustom = on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n // Validate resource data if a custom-event payload includes\n // resource-shaped data. RMM sync-grade replay already validates its\n // dedicated payloads elsewhere.\n let validatedResourceData = payload.resourceData;\n \n // If the custom event carries resource-shaped data, validate that\n // dedicated payload field. `data` remains the event-specific message\n // body and may not share the resource DTO contract.\n if (payload.resourceData && typeof payload.resourceData === 'object' && !Array.isArray(payload.resourceData)) {\n try {\n validatedResourceData = validationService.validateWebSocketResourceData(\n payload.resourceData,\n {\n resourceType: payload.resourceType,\n operationIdentifier: undefined, // Custom events don't have operation identifier\n dataMode: payload.dataMode,\n }\n );\n } catch (error) {\n // If validation fails, log error but don't block the event\n // (backward compatibility - validation is opt-in)\n console.warn('[WebSocketEventBridge] Resource data validation failed:', error);\n // Continue with original data\n validatedResourceData = payload.resourceData;\n }\n }\n\n const eventPayload: FrontendEventResourceCustom = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n eventName: payload.eventName,\n data: payload.data,\n resourceData: validatedResourceData,\n dataMode: payload.dataMode,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_CUSTOM_EVENT, eventPayload);\n }\n );\n\n // Bridge: user:notification → EventBus NOTIFY_CUSTOM_*\n // Handles direct backend-initiated notifications (not tied to resource operations)\n const unsubUserNotification = on<WS_UserNotificationPayload>(\n CoreWebSocketEvent.USER_NOTIFICATION,\n (payload) => {\n const eventPayload: FrontendEventNotifyCustom = {\n identifier: payload.identifier ?? '',\n data: {\n ...payload.data,\n // Mark as backend notification for display policy handling\n _backendNotification: true,\n // Pass display target for NotificationContext to use\n displayTarget: payload.displayTarget,\n // Pass message and title if provided\n message: payload.message,\n title: payload.title,\n organizationId: payload.organizationId,\n },\n };\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (payload.notificationLevel) {\n case NotificationLevel.INFO:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n break;\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_ERROR, eventPayload);\n break;\n default:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: analytics:moment-achieved → EventBus ANALYTICS_MOMENT_ACHIEVED\n const unsubAnalyticsMoment = on<WS_AnalyticsMomentAchievedPayload>(\n CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_AnalyticsMomentAchieved = {\n momentIdentifier: payload.momentIdentifier,\n role: payload.role,\n scope: payload.scope,\n triggerSource: AnalyticsTriggerSource.BACKEND,\n };\n eventBus.emit(FrontendEvents.ANALYTICS_MOMENT_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: guidance:state-changed → EventBus GUIDANCE_FLOW_*\n const unsubGuidance = on<WS_GuidanceStateChangedPayload>(\n CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n (payload) => {\n const eventPayload = {\n flowRef: payload.flowRef,\n triggerSource: payload.triggerSource,\n scope: payload.scope,\n renderMode: payload.renderMode,\n };\n switch (payload.status) {\n case OnboardingStatus.IN_PROGRESS:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_ACTIVATED, eventPayload);\n break;\n case OnboardingStatus.COMPLETED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_COMPLETED, eventPayload);\n break;\n case OnboardingStatus.DISMISSED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_DISMISSED, eventPayload);\n break;\n }\n }\n );\n\n // Bridge: progression:milestone-achieved → EventBus MILESTONE_ACHIEVED\n const unsubMilestone = on<WS_MilestoneAchievedPayload>(\n CoreWebSocketEvent.MILESTONE_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_MilestoneAchieved = {\n milestoneRef: payload.milestoneRef,\n category: payload.category,\n points: payload.points,\n achievedAt: payload.achievedAt,\n scope: payload.scope,\n reward: payload.reward,\n lifecycleTransition: payload.lifecycleTransition,\n totalPoints: payload.totalPoints,\n };\n eventBus.emit(FrontendEvents.MILESTONE_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: progression:updated → EventBus PROGRESSION_UPDATED\n const unsubProgression = on<WS_ProgressionUpdatedPayload>(\n CoreWebSocketEvent.PROGRESSION_UPDATED,\n (payload) => {\n const eventPayload: FrontendEvent_ProgressionUpdated = {\n scope: payload.scope,\n operationCounts: payload.operationCounts,\n totalPoints: payload.totalPoints,\n updatedAt: payload.updatedAt,\n };\n eventBus.emit(FrontendEvents.PROGRESSION_UPDATED, eventPayload);\n }\n );\n\n // Bridge: lifecycle:stage-changed → EventBus LIFECYCLE_STAGE_CHANGED\n const unsubLifecycle = on<WS_LifecycleStageChangedPayload>(\n CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED,\n (payload) => {\n const eventPayload: FrontendEvent_LifecycleStageChanged = {\n previousStage: payload.previousStage,\n newStage: payload.newStage,\n scope: payload.scope,\n trigger: payload.trigger,\n changedAt: payload.changedAt,\n activationCriteriaMet: payload.activationCriteriaMet,\n };\n eventBus.emit(FrontendEvents.LIFECYCLE_STAGE_CHANGED, eventPayload);\n }\n );\n\n // Cleanup\n return () => {\n unsubNotification();\n unsubUpdated();\n unsubDeleted();\n unsubBadge();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n unsubUserNotification();\n unsubAnalyticsMoment();\n unsubGuidance();\n unsubMilestone();\n unsubProgression();\n unsubLifecycle();\n };\n }, [isConnected, on, eventBus, registry, validationService]);\n\n // This component renders nothing\n return null;\n};\n\nexport default WebSocketEventBridge;\n"]}
|
|
1
|
+
{"version":3,"file":"WebSocketEventBridge.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/WebSocketEventBridge.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { WebSocketResourceValidationService } from './websocket-resource-validation.frontend.service';\nimport { \n FrontendEvents, \n FrontendEventResourceOperation, \n FrontendEventBadgeCountChanged,\n FrontendEventResourceEditing,\n FrontendEventResourceCustom,\n FrontendEventNotifyCustom,\n type FrontendEvent_AnalyticsMomentAchieved,\n type FrontendEvent_MilestoneAchieved,\n type FrontendEvent_ProgressionUpdated,\n type FrontendEvent_LifecycleStageChanged,\n} from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport {\n AnalyticsTriggerSource,\n CoreResourceOperation,\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceNotificationPayload,\n WS_ResourceUpdatedPayload,\n WS_BadgeUpdatePayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WS_UserNotificationPayload,\n WS_AnalyticsMomentAchievedPayload,\n NotificationLevel,\n ResourceAction,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n OnboardingStatus,\n WebSocketResourceDeliveryTarget,\n type WS_GuidanceStateChangedPayload,\n type WS_MilestoneAchievedPayload,\n type WS_ProgressionUpdatedPayload,\n type WS_LifecycleStageChangedPayload,\n} from '@wildo-ai/saas-models';\nimport { getOperationsForCoreSemantic } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { frontendResourceUtils, FrontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { isFrontendOperationAddressableForCurrentContext } from '~wildo-frontend-lib/core/resources/resource-addressability.frontend.utils';\nimport { operationInitiatorParametersSatisfied } from '~wildo-frontend-lib/core/resources/operation-initiator-satisfaction.frontend.utils';\nimport {\n normalizeContextResourceIdentifiersForTransport,\n type ContextResourceIdentifiersInput,\n} from '~wildo-frontend-lib/core/resources/context-resource-identifiers.frontend.utils';\n\n/**\n * WebSocketEventBridge\n * \n * Bridges WebSocket events from the Socket.IO connection to the Frontend EventBus.\n * This component should be mounted once at the app root level, after both\n * WebSocketProvider and EventBusProvider.\n * \n * Events bridged:\n * - resource:notification → RESOURCE_REFRESH, NOTIFY_RESOURCE_*\n * - resource:updated → RESOURCE_REFRESH\n * - resource:deleted → RESOURCE_REFRESH\n * - badge:update → BADGE_COUNT_CHANGED\n * - guidance:state-changed → GUIDANCE_FLOW_ACTIVATED/COMPLETED/DISMISSED\n * \n * Business logic components can then subscribe to EventBus events without\n * knowing the event source (HTTP response, WebSocket, or other).\n */\nexport const WebSocketEventBridge: React.FC = () => {\n const { on, isConnected } = useWebSocket();\n const eventBus = useEventBus();\n const { getResourcesRegistry } = useResourceRegistry();\n const registry = useMemo(() => getResourcesRegistry(), [getResourcesRegistry]);\n\n // Initialize the validation service used by websocket payloads that carry\n // resource-shaped data.\n const validationService = useMemo(() => {\n return new WebSocketResourceValidationService(registry);\n }, [registry]);\n\n useEffect(() => {\n if (!isConnected) {\n return;\n }\n\n // Helper: Map action to default notification level (fallback when notificationLevel not provided)\n const actionToNotificationLevel = (action: ResourceAction | string): NotificationLevel => {\n switch (action) {\n case ResourceAction.CREATED: return NotificationLevel.SUCCESS;\n case ResourceAction.UPDATED: return NotificationLevel.INFO;\n case ResourceAction.DELETED: return NotificationLevel.WARNING;\n default: return NotificationLevel.INFO;\n }\n };\n\n const resolveOperationFromPayload = (params: {\n resourceType: string;\n operationIdentifier: string;\n operationPathKey?: string;\n variantType?: ResourceOperationVariantType;\n isOperationDefault?: boolean;\n isBulkOperation?: boolean;\n variantKey?: string;\n }) => {\n const operations = registry.resourceConfigurations[params.resourceType]?.operations ?? [];\n if (params.operationPathKey) {\n const pathOperation = operations.find((operation) => {\n try {\n return ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === params.operationPathKey;\n } catch {\n return false;\n }\n });\n if (pathOperation) {\n return pathOperation;\n }\n }\n\n const matchingOperations = operations.filter((operation) => (\n String(operation.operationIdentifier) === params.operationIdentifier\n && (params.variantType == null || operation.variantType === params.variantType)\n && (params.variantKey == null || operation.variantKey === params.variantKey)\n && (params.isBulkOperation == null || (operation.isBulkOperation === true) === params.isBulkOperation)\n && (\n params.isOperationDefault == null\n || Boolean(operation.isOperationDefault) === params.isOperationDefault\n )\n ));\n\n if (matchingOperations.length === 1) {\n return matchingOperations[0];\n }\n\n if (matchingOperations.length > 1) {\n console.warn('[WebSocketEventBridge] Ambiguous operation identity in notification payload; emitting minimal operation context.', {\n resourceType: params.resourceType,\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n variantKey: params.variantKey,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n candidateVariants: matchingOperations.map((operation) => ({\n variantType: operation.variantType,\n variantKey: operation.variantKey,\n isOperationDefault: operation.isOperationDefault,\n isBulkOperation: operation.isBulkOperation,\n })),\n });\n }\n\n // Some websocket producers only carry operation identity fields, not the\n // full authored operation object. Rebuild the minimum shape the EventBus\n // contracts expect so downstream consumers can still reason about variant,\n // default-ness, and bulk semantics consistently.\n return {\n operationIdentifier: params.operationIdentifier,\n variantType: params.variantType,\n isOperationDefault: params.isOperationDefault,\n isBulkOperation: params.isBulkOperation,\n variantKey: params.variantKey,\n };\n };\n\n const emitRefreshPayloads = ({\n resourceType,\n resourceIds,\n contextResourceIdentifiers,\n shouldEmitReadRefresh,\n }: {\n resourceType: string;\n resourceIds?: Array<string | null | undefined>;\n contextResourceIdentifiers?: ContextResourceIdentifiersInput;\n shouldEmitReadRefresh: boolean;\n }): void => {\n const resourceConfig = registry.resourceConfigurations[resourceType];\n const flattenedContextIdentifiers = normalizeContextResourceIdentifiersForTransport(\n contextResourceIdentifiers,\n );\n const normalizedContextIdentifiers = Object.fromEntries(\n Object.entries(flattenedContextIdentifiers).flatMap(([identifierKey, resourceIdentifier]) => {\n const normalizedKey = registry.fieldIdentifierToResourceType?.[identifierKey] ?? identifierKey;\n return normalizedKey === identifierKey\n ? [[identifierKey, resourceIdentifier]]\n : [\n [identifierKey, resourceIdentifier],\n [normalizedKey, resourceIdentifier],\n ];\n }),\n );\n const baseContextIdentifiers = {\n ...normalizedContextIdentifiers,\n };\n delete baseContextIdentifiers[resourceType];\n const baseContextualParameters = FrontendResourceUtils.buildContextualParameters(\n baseContextIdentifiers,\n registry,\n );\n\n // This bridge owns generic cache/list/read invalidation only. It does not\n // try to replay authoritative resource data into local state; richer sync\n // semantics stay in the dedicated RMM websocket bridge. The consumers here\n // are generic RESOURCE_REFRESH listeners such as non-RMM readers, list\n // surfaces, and cache invalidation hooks.\n const listOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.LIST,\n ).filter((listOperation) =>\n operationInitiatorParametersSatisfied({\n operation: listOperation,\n contextResourceIdentifiers: baseContextIdentifiers,\n contextualParameters: baseContextualParameters,\n })\n );\n const listRefreshTargets = listOperations.length > 0\n ? listOperations\n : [null];\n const baseParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n baseContextIdentifiers,\n registry,\n );\n\n for (const listOperation of listRefreshTargets) {\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(listOperation?.operationIdentifier ?? CoreResourceOperation.LIST),\n variantType: listOperation?.variantType,\n isOperationDefault: listOperation?.isOperationDefault ?? true,\n isBulkOperation: listOperation?.isBulkOperation ?? false,\n variantKey: listOperation?.variantKey,\n contextResourceIdentifiers: baseContextIdentifiers,\n parentResourcesRequirements: baseParentResourcesRequirements,\n operation: (listOperation ?? { operationIdentifier: CoreResourceOperation.LIST }) as any,\n });\n }\n\n const validReadResourceIds = Array.from(new Set(\n (resourceIds ?? []).filter((resourceId): resourceId is string => typeof resourceId === 'string' && resourceId.length > 0),\n ));\n\n if (!shouldEmitReadRefresh || validReadResourceIds.length === 0) {\n return;\n }\n\n const readOperations = getOperationsForCoreSemantic(\n resourceConfig?.operations ?? [],\n CoreResourceOperation.READ,\n {\n requireAddressable: true,\n },\n );\n const emittedReadOperationKeys = new Set<string>();\n\n for (const resourceId of validReadResourceIds) {\n const readContextIdentifiers = {\n ...baseContextIdentifiers,\n [resourceType]: resourceId,\n };\n const readContextualParameters = FrontendResourceUtils.buildContextualParameters(\n readContextIdentifiers,\n registry,\n );\n const readParentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType as any,\n readContextIdentifiers,\n registry,\n );\n const addressableReadOperations = readOperations.filter((readOperation) =>\n resourceConfig\n ? isFrontendOperationAddressableForCurrentContext({\n resourceConfig,\n operation: readOperation,\n registry,\n hasResourceId: true,\n contextResourceIdentifiers: readContextIdentifiers,\n contextualParameters: readContextualParameters,\n })\n : true\n );\n const readRefreshTargets = addressableReadOperations.length > 0\n ? addressableReadOperations\n : [null];\n\n for (const readOperation of readRefreshTargets) {\n const readOperationContext = readOperation\n ?? ({ operationIdentifier: CoreResourceOperation.READ } as any);\n const readOperationKey = [\n resourceId,\n String(readOperationContext.operationIdentifier),\n readOperationContext.variantType ?? '',\n readOperationContext.variantKey ?? '',\n readOperationContext.isBulkOperation ?? false,\n ].join(':');\n if (emittedReadOperationKeys.has(readOperationKey)) {\n continue;\n }\n emittedReadOperationKeys.add(readOperationKey);\n\n eventBus.emit(FrontendEvents.RESOURCE_REFRESH, {\n resourceType,\n operationIdentifier: String(readOperationContext.operationIdentifier ?? CoreResourceOperation.READ),\n variantType: readOperation?.variantType,\n isOperationDefault: readOperation?.isOperationDefault ?? true,\n isBulkOperation: readOperation?.isBulkOperation ?? false,\n variantKey: readOperation?.variantKey,\n contextResourceIdentifiers: readContextIdentifiers,\n parentResourcesRequirements: readParentResourcesRequirements,\n operation: readOperationContext,\n });\n }\n }\n };\n\n // Bridge: resource:notification → EventBus\n const unsubNotification = on<WS_ResourceNotificationPayload>(\n CoreWebSocketEvent.RESOURCE_NOTIFICATION,\n (payload) => {\n const resolvedOperation = resolveOperationFromPayload({\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n operationPathKey: payload.operationPathKey,\n variantType: payload.variantType,\n isOperationDefault: payload.isOperationDefault,\n isBulkOperation: payload.isBulkOperation,\n variantKey: payload.variantKey,\n });\n const eventPayload: FrontendEventResourceOperation = {\n resourceType: payload.resourceType,\n operationIdentifier: payload.operationIdentifier,\n variantType: resolvedOperation.variantType ?? payload.variantType,\n isOperationDefault: resolvedOperation.isOperationDefault ?? payload.isOperationDefault,\n isBulkOperation: resolvedOperation.isBulkOperation ?? payload.isBulkOperation,\n variantKey: typeof resolvedOperation.variantKey === 'string' ? resolvedOperation.variantKey : payload.variantKey,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n parentResourcesRequirements: [],\n operation: resolvedOperation as any,\n // Include notification context for i18n message resolution\n additionalContext: {\n notificationIdentifier: payload.notificationIdentifier,\n action: payload.action,\n frontendDisplayHints: payload.frontendDisplayHints,\n },\n // Populate resultSummary from WS notification context identifiers\n // (enables analytics RESOURCE_OPERATION filter evaluation)\n resultSummary: payload.contextResourceIdentifiers\n ? { ...payload.contextResourceIdentifiers }\n : undefined,\n };\n\n // Use notificationLevel from payload if provided, otherwise derive from action\n const level = payload.notificationLevel ?? actionToNotificationLevel(payload.action);\n if (level !== NotificationLevel.ERROR) {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.affectedIds,\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.affectedIds.length > 0 && !(payload.isBulkOperation ?? false),\n });\n }\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (level) {\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_ERROR, eventPayload);\n break;\n case NotificationLevel.INFO:\n default:\n eventBus.emit(FrontendEvents.NOTIFY_RESOURCE_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: resource:updated → EventBus RESOURCE_REFRESH\n const unsubUpdated = on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // RESOURCE_UPDATED always triggers generic refresh fan-out here so\n // non-RMM consumers still invalidate list/read surfaces. Resource-room\n // sync replay and authoritative refetch decisions remain owned by\n // RMMWebSocketBridge.\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? payload.affectedIds ?? []\n : [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: payload.deliveryTarget === WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION\n ? (payload.affectedIds?.length ?? 0) > 0\n : Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: resource:deleted → EventBus RESOURCE_REFRESH\n const unsubDeleted = on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n emitRefreshPayloads({\n resourceType: payload.resourceType,\n resourceIds: [payload.resourceId],\n contextResourceIdentifiers: payload.contextResourceIdentifiers ?? {},\n shouldEmitReadRefresh: Boolean(payload.resourceId),\n });\n }\n );\n\n // Bridge: badge:update → EventBus BADGE_COUNT_CHANGED\n const unsubBadge = on<WS_BadgeUpdatePayload>(\n CoreWebSocketEvent.BADGE_UPDATE,\n (payload) => {\n const eventPayload: FrontendEventBadgeCountChanged = {\n badgeReference: payload.badgeReference,\n badgeCount: payload.badgeCount,\n };\n\n eventBus.emit(FrontendEvents.BADGE_COUNT_CHANGED, eventPayload);\n }\n );\n\n // Bridge: resource:editing:start → EventBus RESOURCE_EDITING_START\n const unsubEditingStart = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_START, eventPayload);\n }\n }\n );\n\n // Bridge: resource:editing:end → EventBus RESOURCE_EDITING_END\n const unsubEditingEnd = on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.initiatorUserId) {\n const eventPayload: FrontendEventResourceEditing = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_EDITING_END, eventPayload);\n }\n }\n );\n\n // Bridge: resource:custom → EventBus RESOURCE_CUSTOM_EVENT\n const unsubCustom = on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n // Validate resource data if a custom-event payload includes\n // resource-shaped data. RMM sync-grade replay already validates its\n // dedicated payloads elsewhere.\n let validatedResourceData = payload.resourceData;\n \n // If the custom event carries resource-shaped data, validate that\n // dedicated payload field. `data` remains the event-specific message\n // body and may not share the resource DTO contract.\n if (payload.resourceData && typeof payload.resourceData === 'object' && !Array.isArray(payload.resourceData)) {\n try {\n validatedResourceData = validationService.validateWebSocketResourceData(\n payload.resourceData,\n {\n resourceType: payload.resourceType,\n operationIdentifier: undefined, // Custom events don't have operation identifier\n dataMode: payload.dataMode,\n }\n );\n } catch (error) {\n // If validation fails, log error but don't block the event\n // (backward compatibility - validation is opt-in)\n console.warn('[WebSocketEventBridge] Resource data validation failed:', error);\n // Continue with original data\n validatedResourceData = payload.resourceData;\n }\n }\n\n const eventPayload: FrontendEventResourceCustom = {\n resourceType: payload.resourceType,\n resourceId: payload.resourceId,\n eventName: payload.eventName,\n data: payload.data,\n resourceData: validatedResourceData,\n dataMode: payload.dataMode,\n userId: payload.initiatorUserId,\n timestamp: payload.timestamp,\n };\n eventBus.emit(FrontendEvents.RESOURCE_CUSTOM_EVENT, eventPayload);\n }\n );\n\n // Bridge: user:notification → EventBus NOTIFY_CUSTOM_*\n // Handles direct backend-initiated notifications (not tied to resource operations)\n const unsubUserNotification = on<WS_UserNotificationPayload>(\n CoreWebSocketEvent.USER_NOTIFICATION,\n (payload) => {\n const eventPayload: FrontendEventNotifyCustom = {\n identifier: payload.identifier ?? '',\n data: {\n ...payload.data,\n // Mark as backend notification for display policy handling\n _backendNotification: true,\n // Pass display target for NotificationContext to use\n displayTarget: payload.displayTarget,\n // Pass message and title if provided\n message: payload.message,\n title: payload.title,\n organizationId: payload.organizationId,\n },\n };\n\n // Emit notification event with proper typing (use switch to ensure type safety)\n switch (payload.notificationLevel) {\n case NotificationLevel.INFO:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n break;\n case NotificationLevel.SUCCESS:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_SUCCESS, eventPayload);\n break;\n case NotificationLevel.WARNING:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_WARNING, eventPayload);\n break;\n case NotificationLevel.ERROR:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_ERROR, eventPayload);\n break;\n default:\n eventBus.emit(FrontendEvents.NOTIFY_CUSTOM_INFO, eventPayload);\n }\n }\n );\n\n // Bridge: analytics:moment-achieved → EventBus ANALYTICS_MOMENT_ACHIEVED\n const unsubAnalyticsMoment = on<WS_AnalyticsMomentAchievedPayload>(\n CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_AnalyticsMomentAchieved = {\n momentIdentifier: payload.momentIdentifier,\n role: payload.role,\n scope: payload.scope,\n triggerSource: AnalyticsTriggerSource.BACKEND,\n };\n eventBus.emit(FrontendEvents.ANALYTICS_MOMENT_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: guidance:state-changed → EventBus GUIDANCE_FLOW_*\n const unsubGuidance = on<WS_GuidanceStateChangedPayload>(\n CoreWebSocketEvent.GUIDANCE_STATE_CHANGED,\n (payload) => {\n const eventPayload = {\n flowRef: payload.flowRef,\n triggerSource: payload.triggerSource,\n scope: payload.scope,\n renderMode: payload.renderMode,\n };\n switch (payload.status) {\n case OnboardingStatus.IN_PROGRESS:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_ACTIVATED, eventPayload);\n break;\n case OnboardingStatus.COMPLETED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_COMPLETED, eventPayload);\n break;\n case OnboardingStatus.DISMISSED:\n eventBus.emit(FrontendEvents.GUIDANCE_FLOW_DISMISSED, eventPayload);\n break;\n }\n }\n );\n\n // Bridge: progression:milestone-achieved → EventBus MILESTONE_ACHIEVED\n const unsubMilestone = on<WS_MilestoneAchievedPayload>(\n CoreWebSocketEvent.MILESTONE_ACHIEVED,\n (payload) => {\n const eventPayload: FrontendEvent_MilestoneAchieved = {\n milestoneRef: payload.milestoneRef,\n category: payload.category,\n points: payload.points,\n achievedAt: payload.achievedAt,\n scope: payload.scope,\n reward: payload.reward,\n lifecycleTransition: payload.lifecycleTransition,\n totalPoints: payload.totalPoints,\n };\n eventBus.emit(FrontendEvents.MILESTONE_ACHIEVED, eventPayload);\n }\n );\n\n // Bridge: progression:updated → EventBus PROGRESSION_UPDATED\n const unsubProgression = on<WS_ProgressionUpdatedPayload>(\n CoreWebSocketEvent.PROGRESSION_UPDATED,\n (payload) => {\n const eventPayload: FrontendEvent_ProgressionUpdated = {\n scope: payload.scope,\n operationCounts: payload.operationCounts,\n totalPoints: payload.totalPoints,\n updatedAt: payload.updatedAt,\n };\n eventBus.emit(FrontendEvents.PROGRESSION_UPDATED, eventPayload);\n }\n );\n\n // Bridge: lifecycle:stage-changed → EventBus LIFECYCLE_STAGE_CHANGED\n const unsubLifecycle = on<WS_LifecycleStageChangedPayload>(\n CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED,\n (payload) => {\n const eventPayload: FrontendEvent_LifecycleStageChanged = {\n previousStage: payload.previousStage,\n newStage: payload.newStage,\n scope: payload.scope,\n trigger: payload.trigger,\n changedAt: payload.changedAt,\n activationCriteriaMet: payload.activationCriteriaMet,\n };\n eventBus.emit(FrontendEvents.LIFECYCLE_STAGE_CHANGED, eventPayload);\n }\n );\n\n // Cleanup\n return () => {\n unsubNotification();\n unsubUpdated();\n unsubDeleted();\n unsubBadge();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n unsubUserNotification();\n unsubAnalyticsMoment();\n unsubGuidance();\n unsubMilestone();\n unsubProgression();\n unsubLifecycle();\n };\n }, [isConnected, on, eventBus, registry, validationService]);\n\n // This component renders nothing\n return null;\n};\n\nexport default WebSocketEventBridge;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationBadges.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useNotificationBadges.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useNotificationBadges.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,2BAA2B,EAI5B,MAAM,uBAAuB,CAAC;AAO/B,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,6DAA6D;IAC7D,aAAa,EAAE,CAAC,UAAU,EAAE,2BAA2B,KAAK,kBAAkB,CAAC;CAChF;AAED,eAAO,MAAM,qBAAqB,QAAO,2BAyDxC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -3,63 +3,76 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Replaces the retracted dual mechanism (`useBadge`/`useUserBadges` + the
|
|
5
5
|
* launcher's own `badgeCounts` state). Subscribes ONCE to `BADGE_COUNT_CHANGED`
|
|
6
|
-
* and indexes counts by badge
|
|
7
|
-
* `badgeReference`
|
|
8
|
-
* push to the connected user (seed on connect, R6a; recompute on
|
|
9
|
-
* the store never needs the session's own scope ids to receive.
|
|
6
|
+
* and indexes counts by badge KEY — `<scope>:<identifier>`, reduced from the pushed
|
|
7
|
+
* `badgeReference` (`<scope>:<scopeId>:<identifier>`) by `notificationBadgeKeyFromReference`.
|
|
8
|
+
* The backend already scopes every push to the connected user (seed on connect, R6a; recompute on
|
|
9
|
+
* mutation, R5), so the store never needs the session's own scope ids to receive.
|
|
10
|
+
*
|
|
11
|
+
* ## Why the key and not the identifier
|
|
12
|
+
*
|
|
13
|
+
* It used to `split(':')` by hand, take part `[2]`, and index on that — discarding the scope. Two
|
|
14
|
+
* definitions declaring one identifier at different scopes therefore collapsed onto one entry: the
|
|
15
|
+
* second was unreachable and rendered the first's count. The key is the definition's own identity,
|
|
16
|
+
* built by the SAME function `NavigationItemBadge` resolves a `notificationBadgeRef` with and the
|
|
17
|
+
* backend refuses duplicates of at boot, so the store's key and the lookup key cannot drift apart.
|
|
18
|
+
*
|
|
19
|
+
* `scopeId` stays out of the key deliberately: it says WHOSE badge, which a navigation declaration
|
|
20
|
+
* cannot name, and a session only ever receives pushes for its own scope ids.
|
|
10
21
|
*
|
|
11
22
|
* Call it ONCE at a host (e.g. the sidebar behavior) and thread `getBadgeState`
|
|
12
23
|
* down, so there is a single subscription + one shared pulse-timer state.
|
|
13
24
|
*/
|
|
14
25
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
15
|
-
import { NotificationBadgePulse } from '@wildo-ai/saas-models';
|
|
26
|
+
import { NotificationBadgePulse, notificationBadgeIdentityKey, notificationBadgeKeyFromReference, } from '@wildo-ai/saas-models';
|
|
16
27
|
import { FrontendEvents } from '../../../core/events/events.frontend.schemas.js';
|
|
17
28
|
import { useEventBus } from '../../../core/events/useEventBus.js';
|
|
18
29
|
/** How long an `ON_INCREASE` badge visibly pulses after a count rise (ms). */
|
|
19
30
|
const PULSE_WINDOW_MS = 2000;
|
|
20
31
|
export const useNotificationBadges = () => {
|
|
21
32
|
const { on } = useEventBus();
|
|
22
|
-
const [
|
|
23
|
-
// Transient `ON_INCREASE` pulse flags, keyed by
|
|
24
|
-
const [
|
|
33
|
+
const [countsByBadgeKey, setCountsByBadgeKey] = useState({});
|
|
34
|
+
// Transient `ON_INCREASE` pulse flags, keyed by badge key.
|
|
35
|
+
const [pulsingByBadgeKey, setPulsingByBadgeKey] = useState({});
|
|
25
36
|
// Previous counts (ref, not state) so an increase can be detected without
|
|
26
37
|
// re-subscribing on every count change.
|
|
27
38
|
const previousCountsRef = useRef({});
|
|
28
39
|
useEffect(() => {
|
|
29
40
|
return on(FrontendEvents.BADGE_COUNT_CHANGED, (payload) => {
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
// A malformed reference, or one naming a scope no badge resource backs, is dropped rather
|
|
42
|
+
// than indexed under a key nothing can resolve.
|
|
43
|
+
const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);
|
|
44
|
+
if (!badgeKey) {
|
|
32
45
|
return;
|
|
33
46
|
}
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
setCountsByIdentifier((prev) => ({ ...prev, [identifier]: payload.badgeCount }));
|
|
47
|
+
const previous = previousCountsRef.current[badgeKey] ?? 0;
|
|
48
|
+
previousCountsRef.current[badgeKey] = payload.badgeCount;
|
|
49
|
+
setCountsByBadgeKey((prev) => ({ ...prev, [badgeKey]: payload.badgeCount }));
|
|
38
50
|
if (payload.badgeCount > previous) {
|
|
39
|
-
|
|
51
|
+
setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: true }));
|
|
40
52
|
// Clear the transient pulse after the window (fresh render shows a static badge).
|
|
41
53
|
setTimeout(() => {
|
|
42
|
-
|
|
54
|
+
setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: false }));
|
|
43
55
|
}, PULSE_WINDOW_MS);
|
|
44
56
|
}
|
|
45
57
|
});
|
|
46
58
|
}, [on]);
|
|
47
59
|
const getBadgeState = useCallback((definition) => {
|
|
48
|
-
const
|
|
60
|
+
const badgeKey = notificationBadgeIdentityKey(definition);
|
|
61
|
+
const count = countsByBadgeKey[badgeKey] ?? 0;
|
|
49
62
|
let pulse = false;
|
|
50
63
|
switch (definition.display.pulse) {
|
|
51
64
|
case NotificationBadgePulse.WHILE_ACTIVE:
|
|
52
65
|
pulse = count > 0;
|
|
53
66
|
break;
|
|
54
67
|
case NotificationBadgePulse.ON_INCREASE:
|
|
55
|
-
pulse = !!
|
|
68
|
+
pulse = !!pulsingByBadgeKey[badgeKey];
|
|
56
69
|
break;
|
|
57
70
|
case NotificationBadgePulse.NONE:
|
|
58
71
|
default:
|
|
59
72
|
pulse = false;
|
|
60
73
|
}
|
|
61
74
|
return { count, pulse };
|
|
62
|
-
}, [
|
|
75
|
+
}, [countsByBadgeKey, pulsingByBadgeKey]);
|
|
63
76
|
return { getBadgeState };
|
|
64
77
|
};
|
|
65
78
|
export default useNotificationBadges;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationBadges.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useNotificationBadges.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useNotificationBadges.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useNotificationBadges — the single frontend badge-count store (R6b).\n *\n * Replaces the retracted dual mechanism (`useBadge`/`useUserBadges` + the\n * launcher's own `badgeCounts` state). Subscribes ONCE to `BADGE_COUNT_CHANGED`\n * and indexes counts by badge KEY — `<scope>:<identifier>`, reduced from the pushed\n * `badgeReference` (`<scope>:<scopeId>:<identifier>`) by `notificationBadgeKeyFromReference`.\n * The backend already scopes every push to the connected user (seed on connect, R6a; recompute on\n * mutation, R5), so the store never needs the session's own scope ids to receive.\n *\n * ## Why the key and not the identifier\n *\n * It used to `split(':')` by hand, take part `[2]`, and index on that — discarding the scope. Two\n * definitions declaring one identifier at different scopes therefore collapsed onto one entry: the\n * second was unreachable and rendered the first's count. The key is the definition's own identity,\n * built by the SAME function `NavigationItemBadge` resolves a `notificationBadgeRef` with and the\n * backend refuses duplicates of at boot, so the store's key and the lookup key cannot drift apart.\n *\n * `scopeId` stays out of the key deliberately: it says WHOSE badge, which a navigation declaration\n * cannot name, and a session only ever receives pushes for its own scope ids.\n *\n * Call it ONCE at a host (e.g. the sidebar behavior) and thread `getBadgeState`\n * down, so there is a single subscription + one shared pulse-timer state.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport {\n NotificationBadgeDefinition,\n NotificationBadgePulse,\n notificationBadgeIdentityKey,\n notificationBadgeKeyFromReference,\n} from '@wildo-ai/saas-models';\nimport { FrontendEvents, type FrontendEventBadgeCountChanged } from '~wildo-frontend-lib/core/events/events.frontend.schemas';\nimport { useEventBus } from '~wildo-frontend-lib/core/events/useEventBus';\n\n/** How long an `ON_INCREASE` badge visibly pulses after a count rise (ms). */\nconst PULSE_WINDOW_MS = 2000;\n\n/** Resolved, render-ready badge state for one definition. */\nexport interface ResolvedBadgeState {\n /** Current count (0 until the first push for this identifier arrives). */\n count: number;\n /** Already-resolved \"pulse now\", per the definition's pulse trigger. */\n pulse: boolean;\n}\n\nexport interface UseNotificationBadgesResult {\n /** Resolve the live count + pulse for a badge definition. */\n getBadgeState: (definition: NotificationBadgeDefinition) => ResolvedBadgeState;\n}\n\nexport const useNotificationBadges = (): UseNotificationBadgesResult => {\n const { on } = useEventBus();\n\n const [countsByBadgeKey, setCountsByBadgeKey] = useState<Record<string, number>>({});\n // Transient `ON_INCREASE` pulse flags, keyed by badge key.\n const [pulsingByBadgeKey, setPulsingByBadgeKey] = useState<Record<string, boolean>>({});\n // Previous counts (ref, not state) so an increase can be detected without\n // re-subscribing on every count change.\n const previousCountsRef = useRef<Record<string, number>>({});\n\n useEffect(() => {\n return on(FrontendEvents.BADGE_COUNT_CHANGED, (payload: FrontendEventBadgeCountChanged) => {\n // A malformed reference, or one naming a scope no badge resource backs, is dropped rather\n // than indexed under a key nothing can resolve.\n const badgeKey = notificationBadgeKeyFromReference(payload.badgeReference);\n if (!badgeKey) {\n return;\n }\n const previous = previousCountsRef.current[badgeKey] ?? 0;\n previousCountsRef.current[badgeKey] = payload.badgeCount;\n\n setCountsByBadgeKey((prev) => ({ ...prev, [badgeKey]: payload.badgeCount }));\n\n if (payload.badgeCount > previous) {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: true }));\n // Clear the transient pulse after the window (fresh render shows a static badge).\n setTimeout(() => {\n setPulsingByBadgeKey((prev) => ({ ...prev, [badgeKey]: false }));\n }, PULSE_WINDOW_MS);\n }\n });\n }, [on]);\n\n const getBadgeState = useCallback(\n (definition: NotificationBadgeDefinition): ResolvedBadgeState => {\n const badgeKey = notificationBadgeIdentityKey(definition);\n const count = countsByBadgeKey[badgeKey] ?? 0;\n\n let pulse = false;\n switch (definition.display.pulse) {\n case NotificationBadgePulse.WHILE_ACTIVE:\n pulse = count > 0;\n break;\n case NotificationBadgePulse.ON_INCREASE:\n pulse = !!pulsingByBadgeKey[badgeKey];\n break;\n case NotificationBadgePulse.NONE:\n default:\n pulse = false;\n }\n\n return { count, pulse };\n },\n [countsByBadgeKey, pulsingByBadgeKey],\n );\n\n return { getBadgeState };\n};\n\nexport default useNotificationBadges;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceRoom.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useResourceRoom.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAEL,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAE9B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,gCAAgC;IAChC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IAEtB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IAEnB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,gCAAgC;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,mCAAmC;IACnC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,kCAAkC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,sCAAsC;IACtC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrF;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,qBAsRjE,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceRoom.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAKlB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAqD/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA+B,EAAyB,EAAE;IACxF,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,EACP,0BAA0B,EAC1B,aAAa,GAAG,IAAI,EACpB,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,aAAa,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAE1B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAE/D,iCAAiC;IACjC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,MAAM,CAAsB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1E,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;IAEvC,gDAAgD;IAChD,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE;QACjC,CAAC,CAAC,GAAG,YAAY,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;IAE7C;;;OAGG;IACH,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAsB,EAAE;QACzD,IAAI,YAAY;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC;YACxC,QAAQ,EAAE,eAAe,CAAC,OAAO;YACjC,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,OAAO;YACP,0BAA0B;SAC3B,CAAC,CAAC;QAEH,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhC,sDAAsD;QACtD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhG;;OAEG;IACH,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;QACxD,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,EAAE,CAAC,mBAAmB,CAAC;YAC3B,QAAQ,EAAE,eAAe,CAAC,OAAO;YACjC,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,OAAO;YACP,0BAA0B;SAC3B,CAAC,CAAC;QAEH,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,eAAe,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC;IAChG,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IAErC;;OAEG;IACH,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAsB,EAAE;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC;YACpC,YAAY;YACZ,UAAU;YACV,0BAA0B;SAC3B,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,MAAM,WAAW,GAAG,WAAW,CAAC,GAAS,EAAE;QACzC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;YAAE,OAAO;QAEtC,EAAE,CAAC,WAAW,CAAC;YACb,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;QAEH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9C;;OAEG;IACH,MAAM,eAAe,GAAG,WAAW,CAAC,CAClC,SAAiB,EACjB,IAAc,EACd,WAAqB,EACf,EAAE;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,EAAE,CAAC,eAAe,CAAC;YACjB,YAAY;YACZ,UAAU;YACV,SAAS;YACT,IAAI;YACJ,0BAA0B;YAC1B,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAE/D,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CACxB,kBAAkB,CAAC,gBAAgB,EACnC,CAAC,OAAO,EAAE,EAAE;YACV,4CAA4C;YAC5C,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAO;YAClD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;oBAAE,OAAO;gBAC9C,IACE,OAAO,CAAC,cAAc,KAAK,+BAA+B,CAAC,kBAAkB;uBAC1E,OAAO,CAAC,cAAc,KAAK,+BAA+B,CAAC,0BAA0B,EACxF,CAAC;oBACD,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,cAAc,KAAK,+BAA+B,CAAC,uBAAuB,EAAE,CAAC;gBAC9F,OAAO;YACT,CAAC;YAED,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CACF,CAAC;QAEF,gCAAgC;QAChC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CACxB,kBAAkB,CAAC,gBAAgB,EACnC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAO;YAClD,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAAE,OAAO;YAE9C,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CACF,CAAC;QAEF,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAC7B,kBAAkB,CAAC,sBAAsB,EACzC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAO;YAClD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAAE,OAAO;YAE7D,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,EAAE;oBACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAgB,CAAC;wBAAE,OAAO,IAAI,CAAC;oBACzD,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,eAAgB,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC;YAED,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CACF,CAAC;QAEF,yBAAyB;QACzB,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,CAC3B,kBAAkB,CAAC,oBAAoB,EACvC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAO;YAClD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAAE,OAAO;YAE7D,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7E,CAAC;YAED,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CACF,CAAC;QAEF,2BAA2B;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CACvB,kBAAkB,CAAC,eAAe,EAClC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY;gBAAE,OAAO;YAClD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;gBAAE,OAAO;YAE7D,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CACF,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,EAAE;QACF,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,cAAc;QACd,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;IAEH,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;YACrD,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7D,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,YAAY,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;gBACvC,EAAE,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAEnC,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAEjE,OAAO;QACL,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,SAAS;QACT,WAAW;QACX,YAAY;QACZ,WAAW;QACX,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["/**\n * useResourceRoom Hook\n * \n * React hook for subscribing to resource-centric WebSocket rooms.\n * Handles subscription/unsubscription lifecycle automatically.\n * \n * Features:\n * - Subscribe to a specific resource by type+id (for editing, viewing)\n * - Subscribe to a scope/collection (for list views)\n * - Track editing state of other users\n * - Send custom collaboration events\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport {\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceUpdatedPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WebSocketResourceDeliveryTarget,\n} from '@wildo-ai/saas-models';\n\nexport interface UseResourceRoomOptions {\n /** Resource type (e.g., 'todo', 'document') */\n resourceType: string;\n \n /** For single resource subscription */\n resourceId?: string;\n \n /** For collection/scope subscription */\n scopeKey?: string;\n scopeId?: string;\n \n /** Context identifiers for authorization (required) */\n contextResourceIdentifiers: Record<string, string>;\n \n /** Whether to auto-subscribe on mount */\n autoSubscribe?: boolean;\n \n /** Callbacks for room events */\n onUpdated?: (payload: WS_ResourceUpdatedPayload) => void;\n onDeleted?: (payload: WS_ResourceDeletedPayload) => void;\n onEditingStart?: (payload: WS_ResourceEditingPayload) => void;\n onEditingEnd?: (payload: WS_ResourceEditingPayload) => void;\n onCustomEvent?: (payload: WS_ResourceCustomEventPayload) => void;\n}\n\nexport interface UseResourceRoomResult {\n /** Whether currently subscribed to the room */\n isSubscribed: boolean;\n \n /** Whether currently editing */\n isEditing: boolean;\n \n /** List of user IDs currently editing this resource */\n editingUsers: string[];\n \n /** Subscribe to the room */\n subscribe: () => Promise<boolean>;\n \n /** Unsubscribe from the room */\n unsubscribe: () => Promise<void>;\n \n /** Start editing (acquire lock) */\n startEditing: () => Promise<boolean>;\n \n /** Stop editing (release lock) */\n stopEditing: () => void;\n \n /** Send custom collaboration event */\n sendCustomEvent: (eventName: string, data?: unknown, includeSelf?: boolean) => void;\n}\n\nexport const useResourceRoom = (options: UseResourceRoomOptions): UseResourceRoomResult => {\n const {\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n autoSubscribe = true,\n onUpdated,\n onDeleted,\n onEditingStart,\n onEditingEnd,\n onCustomEvent,\n } = options;\n\n const ws = useWebSocket();\n \n const [isSubscribed, setIsSubscribed] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n const [editingUsers, setEditingUsers] = useState<string[]>([]);\n \n // Track if we're the one editing\n const isEditingRef = useRef(false);\n const isSubscribedRef = useRef(false);\n const roomOwnerKeyRef = useRef(`useResourceRoom:${Math.random().toString(36).slice(2)}`);\n const unsubscribeRef = useRef<() => Promise<void>>(async () => undefined);\n isSubscribedRef.current = isSubscribed;\n \n // Build room identifier for dependency tracking\n const roomKey = resourceId \n ? `${resourceType}:${resourceId}` \n : `${resourceType}:${scopeKey}:${scopeId}`;\n\n /**\n * Subscribe to the resource room\n * Also initializes the editing users list from server state\n */\n const subscribe = useCallback(async (): Promise<boolean> => {\n if (isSubscribed) return true;\n \n const result = await ws.claimResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(result.success);\n \n // Initialize editing users from subscription response\n if (result.success && result.editingUsers) {\n setEditingUsers(result.editingUsers);\n }\n \n return result.success;\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n\n /**\n * Unsubscribe from the resource room\n */\n const unsubscribe = useCallback(async (): Promise<void> => {\n if (!isSubscribed) return;\n \n await ws.releaseResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(false);\n setEditingUsers([]);\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n unsubscribeRef.current = unsubscribe;\n\n /**\n * Start editing\n */\n const startEditing = useCallback(async (): Promise<boolean> => {\n if (!resourceId) {\n console.warn('Cannot start editing without resourceId');\n return false;\n }\n \n const success = await ws.startEditing({\n resourceType,\n resourceId,\n contextResourceIdentifiers,\n });\n \n if (success) {\n setIsEditing(true);\n isEditingRef.current = true;\n }\n \n return success;\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n /**\n * Stop editing\n */\n const stopEditing = useCallback((): void => {\n if (!resourceId || !isEditing) return;\n \n ws.stopEditing({\n resourceType,\n resourceId,\n });\n \n setIsEditing(false);\n isEditingRef.current = false;\n }, [ws, resourceType, resourceId, isEditing]);\n\n /**\n * Send custom collaboration event\n */\n const sendCustomEvent = useCallback((\n eventName: string, \n data?: unknown, \n includeSelf?: boolean\n ): void => {\n if (!resourceId) {\n console.warn('Cannot send custom event without resourceId');\n return;\n }\n \n ws.sendCustomEvent({\n resourceType,\n resourceId,\n eventName,\n data,\n contextResourceIdentifiers,\n includeSelf,\n });\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n // Setup event listeners\n useEffect(() => {\n if (!ws.isConnected || !isSubscribed) {\n return;\n }\n\n // Listen for resource updates\n const unsubUpdated = ws.on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // Only handle events for our resource/scope\n if (payload.resourceType !== resourceType) return;\n if (resourceId) {\n if (payload.resourceId !== resourceId) return;\n if (\n payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC\n && payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION\n ) {\n return;\n }\n } else if (payload.deliveryTarget !== WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION) {\n return;\n }\n \n onUpdated?.(payload);\n }\n );\n\n // Listen for resource deletions\n const unsubDeleted = ws.on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId) return;\n if (payload.resourceId !== resourceId) return;\n \n onDeleted?.(payload);\n }\n );\n\n // Listen for editing start\n const unsubEditingStart = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => {\n if (prev.includes(payload.initiatorUserId!)) return prev;\n return [...prev, payload.initiatorUserId!];\n });\n }\n \n onEditingStart?.(payload);\n }\n );\n\n // Listen for editing end\n const unsubEditingEnd = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => prev.filter(id => id !== payload.initiatorUserId));\n }\n \n onEditingEnd?.(payload);\n }\n );\n\n // Listen for custom events\n const unsubCustom = ws.on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n onCustomEvent?.(payload);\n }\n );\n\n return () => {\n unsubUpdated();\n unsubDeleted();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n };\n }, [\n ws, \n isSubscribed, \n resourceType, \n resourceId, \n onUpdated, \n onDeleted, \n onEditingStart, \n onEditingEnd, \n onCustomEvent\n ]);\n\n // Auto-subscribe on mount\n useEffect(() => {\n if (autoSubscribe && ws.isConnected && !isSubscribed) {\n subscribe();\n }\n }, [autoSubscribe, ws.isConnected, isSubscribed, subscribe]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (isEditingRef.current && resourceId) {\n ws.stopEditing({ resourceType, resourceId });\n }\n };\n }, [ws, resourceType, resourceId]);\n\n // Unsubscribe when options change\n useEffect(() => {\n return () => {\n if (isSubscribedRef.current) {\n void unsubscribeRef.current();\n }\n };\n }, [roomKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n isSubscribed,\n isEditing,\n editingUsers,\n subscribe,\n unsubscribe,\n startEditing,\n stopEditing,\n sendCustomEvent,\n };\n};\n\nexport default useResourceRoom;\n"]}
|
|
1
|
+
{"version":3,"file":"useResourceRoom.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useResourceRoom.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useResourceRoom Hook\n * \n * React hook for subscribing to resource-centric WebSocket rooms.\n * Handles subscription/unsubscription lifecycle automatically.\n * \n * Features:\n * - Subscribe to a specific resource by type+id (for editing, viewing)\n * - Subscribe to a scope/collection (for list views)\n * - Track editing state of other users\n * - Send custom collaboration events\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { useWebSocket } from './useWebSocket';\nimport {\n CoreWebSocketEvent,\n WS_ResourceDeletedPayload,\n WS_ResourceUpdatedPayload,\n WS_ResourceEditingPayload,\n WS_ResourceCustomEventPayload,\n WebSocketResourceDeliveryTarget,\n} from '@wildo-ai/saas-models';\n\nexport interface UseResourceRoomOptions {\n /** Resource type (e.g., 'todo', 'document') */\n resourceType: string;\n \n /** For single resource subscription */\n resourceId?: string;\n \n /** For collection/scope subscription */\n scopeKey?: string;\n scopeId?: string;\n \n /** Context identifiers for authorization (required) */\n contextResourceIdentifiers: Record<string, string>;\n \n /** Whether to auto-subscribe on mount */\n autoSubscribe?: boolean;\n \n /** Callbacks for room events */\n onUpdated?: (payload: WS_ResourceUpdatedPayload) => void;\n onDeleted?: (payload: WS_ResourceDeletedPayload) => void;\n onEditingStart?: (payload: WS_ResourceEditingPayload) => void;\n onEditingEnd?: (payload: WS_ResourceEditingPayload) => void;\n onCustomEvent?: (payload: WS_ResourceCustomEventPayload) => void;\n}\n\nexport interface UseResourceRoomResult {\n /** Whether currently subscribed to the room */\n isSubscribed: boolean;\n \n /** Whether currently editing */\n isEditing: boolean;\n \n /** List of user IDs currently editing this resource */\n editingUsers: string[];\n \n /** Subscribe to the room */\n subscribe: () => Promise<boolean>;\n \n /** Unsubscribe from the room */\n unsubscribe: () => Promise<void>;\n \n /** Start editing (acquire lock) */\n startEditing: () => Promise<boolean>;\n \n /** Stop editing (release lock) */\n stopEditing: () => void;\n \n /** Send custom collaboration event */\n sendCustomEvent: (eventName: string, data?: unknown, includeSelf?: boolean) => void;\n}\n\nexport const useResourceRoom = (options: UseResourceRoomOptions): UseResourceRoomResult => {\n const {\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n autoSubscribe = true,\n onUpdated,\n onDeleted,\n onEditingStart,\n onEditingEnd,\n onCustomEvent,\n } = options;\n\n const ws = useWebSocket();\n \n const [isSubscribed, setIsSubscribed] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n const [editingUsers, setEditingUsers] = useState<string[]>([]);\n \n // Track if we're the one editing\n const isEditingRef = useRef(false);\n const isSubscribedRef = useRef(false);\n const roomOwnerKeyRef = useRef(`useResourceRoom:${Math.random().toString(36).slice(2)}`);\n const unsubscribeRef = useRef<() => Promise<void>>(async () => undefined);\n isSubscribedRef.current = isSubscribed;\n \n // Build room identifier for dependency tracking\n const roomKey = resourceId \n ? `${resourceType}:${resourceId}` \n : `${resourceType}:${scopeKey}:${scopeId}`;\n\n /**\n * Subscribe to the resource room\n * Also initializes the editing users list from server state\n */\n const subscribe = useCallback(async (): Promise<boolean> => {\n if (isSubscribed) return true;\n \n const result = await ws.claimResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(result.success);\n \n // Initialize editing users from subscription response\n if (result.success && result.editingUsers) {\n setEditingUsers(result.editingUsers);\n }\n \n return result.success;\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n\n /**\n * Unsubscribe from the resource room\n */\n const unsubscribe = useCallback(async (): Promise<void> => {\n if (!isSubscribed) return;\n \n await ws.releaseResourceRoom({\n ownerKey: roomOwnerKeyRef.current,\n resourceType,\n resourceId,\n scopeKey,\n scopeId,\n contextResourceIdentifiers,\n });\n \n setIsSubscribed(false);\n setEditingUsers([]);\n }, [ws, resourceType, resourceId, scopeKey, scopeId, contextResourceIdentifiers, isSubscribed]);\n unsubscribeRef.current = unsubscribe;\n\n /**\n * Start editing\n */\n const startEditing = useCallback(async (): Promise<boolean> => {\n if (!resourceId) {\n console.warn('Cannot start editing without resourceId');\n return false;\n }\n \n const success = await ws.startEditing({\n resourceType,\n resourceId,\n contextResourceIdentifiers,\n });\n \n if (success) {\n setIsEditing(true);\n isEditingRef.current = true;\n }\n \n return success;\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n /**\n * Stop editing\n */\n const stopEditing = useCallback((): void => {\n if (!resourceId || !isEditing) return;\n \n ws.stopEditing({\n resourceType,\n resourceId,\n });\n \n setIsEditing(false);\n isEditingRef.current = false;\n }, [ws, resourceType, resourceId, isEditing]);\n\n /**\n * Send custom collaboration event\n */\n const sendCustomEvent = useCallback((\n eventName: string, \n data?: unknown, \n includeSelf?: boolean\n ): void => {\n if (!resourceId) {\n console.warn('Cannot send custom event without resourceId');\n return;\n }\n \n ws.sendCustomEvent({\n resourceType,\n resourceId,\n eventName,\n data,\n contextResourceIdentifiers,\n includeSelf,\n });\n }, [ws, resourceType, resourceId, contextResourceIdentifiers]);\n\n // Setup event listeners\n useEffect(() => {\n if (!ws.isConnected || !isSubscribed) {\n return;\n }\n\n // Listen for resource updates\n const unsubUpdated = ws.on<WS_ResourceUpdatedPayload>(\n CoreWebSocketEvent.RESOURCE_UPDATED,\n (payload) => {\n // Only handle events for our resource/scope\n if (payload.resourceType !== resourceType) return;\n if (resourceId) {\n if (payload.resourceId !== resourceId) return;\n if (\n payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC\n && payload.deliveryTarget !== WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION\n ) {\n return;\n }\n } else if (payload.deliveryTarget !== WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION) {\n return;\n }\n \n onUpdated?.(payload);\n }\n );\n\n // Listen for resource deletions\n const unsubDeleted = ws.on<WS_ResourceDeletedPayload>(\n CoreWebSocketEvent.RESOURCE_DELETED,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId) return;\n if (payload.resourceId !== resourceId) return;\n \n onDeleted?.(payload);\n }\n );\n\n // Listen for editing start\n const unsubEditingStart = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_START,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => {\n if (prev.includes(payload.initiatorUserId!)) return prev;\n return [...prev, payload.initiatorUserId!];\n });\n }\n \n onEditingStart?.(payload);\n }\n );\n\n // Listen for editing end\n const unsubEditingEnd = ws.on<WS_ResourceEditingPayload>(\n CoreWebSocketEvent.RESOURCE_EDITING_END,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n if (payload.initiatorUserId) {\n setEditingUsers(prev => prev.filter(id => id !== payload.initiatorUserId));\n }\n \n onEditingEnd?.(payload);\n }\n );\n\n // Listen for custom events\n const unsubCustom = ws.on<WS_ResourceCustomEventPayload>(\n CoreWebSocketEvent.RESOURCE_CUSTOM,\n (payload) => {\n if (payload.resourceType !== resourceType) return;\n if (!resourceId || payload.resourceId !== resourceId) return;\n \n onCustomEvent?.(payload);\n }\n );\n\n return () => {\n unsubUpdated();\n unsubDeleted();\n unsubEditingStart();\n unsubEditingEnd();\n unsubCustom();\n };\n }, [\n ws, \n isSubscribed, \n resourceType, \n resourceId, \n onUpdated, \n onDeleted, \n onEditingStart, \n onEditingEnd, \n onCustomEvent\n ]);\n\n // Auto-subscribe on mount\n useEffect(() => {\n if (autoSubscribe && ws.isConnected && !isSubscribed) {\n subscribe();\n }\n }, [autoSubscribe, ws.isConnected, isSubscribed, subscribe]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (isEditingRef.current && resourceId) {\n ws.stopEditing({ resourceType, resourceId });\n }\n };\n }, [ws, resourceType, resourceId]);\n\n // Unsubscribe when options change\n useEffect(() => {\n return () => {\n if (isSubscribedRef.current) {\n void unsubscribeRef.current();\n }\n };\n }, [roomKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n isSubscribed,\n isEditing,\n editingUsers,\n subscribe,\n unsubscribe,\n startEditing,\n stopEditing,\n sendCustomEvent,\n };\n};\n\nexport default useResourceRoom;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSocket.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useWebSocket.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useWebSocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,oBAM/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWebSocket.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"useWebSocket.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/useWebSocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAA6B,MAAM,oBAAoB,CAAC;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAyB,EAAE;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/**\n * useWebSocket Hook\n * \n * Separated from WebSocketContext.tsx for React Fast Refresh compatibility.\n */\n\nimport { useContext } from 'react';\nimport { WebSocketContext, type WebSocketContextType } from './WebSocketContext';\n\n/**\n * Hook to access the WebSocket context\n * @returns WebSocketContextType with WebSocket connection management\n * @throws Error if used outside of WebSocketProvider\n */\nexport const useWebSocket = (): WebSocketContextType => {\n const context = useContext(WebSocketContext);\n if (!context) {\n throw new Error('useWebSocket must be used within a WebSocketProvider');\n }\n return context;\n};\n\n\n\n"]}
|
package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-resource-validation.frontend.service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"websocket-resource-validation.frontend.service.d.ts","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAEL,QAAQ,EACR,4BAA4B,EAI7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAA2C,MAAM,+DAA+D,CAAC;AAIxJ;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,oBAAoB,CAAC;CAC5D;AAMD;;GAEG;AACH,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,iBAAiB,EAAE,yBAAyB;IAKxD;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,gBAAgB;IAwBxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;;;;;;;OAUG;IACI,6BAA6B,CAAC,KAAK,GAAG,GAAG,EAC9C,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,uBAAuB,GAC/B,KAAK;IAoCR;;;;;;;;OAQG;IACI,kCAAkC,CAAC,KAAK,GAAG,GAAG,EACnD,iBAAiB,EAAE,GAAG,EAAE,EACxB,OAAO,EAAE,uBAAuB,GAC/B,KAAK,EAAE;CA0BX"}
|
package/dist/esm/core/requests/websockets/websocket-resource-validation.frontend.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-resource-validation.frontend.service.js","sourceRoot":"","sources":["../../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * WebSocket Resource Validation Service\n * \n * Provides DTO validation for resource data received via WebSocket messages.\n * Similar to HTTP client validation, but for WebSocket payloads.\n * \n * Note: RMM resource-room sync payloads now do include replay-grade resource\n * data and use this service on a strict canonical-read validation path. Looser\n * websocket consumers such as some custom-event flows may still opt into the\n * older backward-compatible pass-through behavior when they do not request a\n * strict validation target.\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n DataMode,\n ResourceOperationVariantType,\n ResourceOperationsUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ResourcesConfig_OperationPathUtils,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourcesRegistry, FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\n\n/**\n * WebSocket message context for validation\n */\nexport interface WebSocketMessageContext {\n /** Resource type */\n resourceType: string;\n /** Operation identifier */\n operationIdentifier?: string;\n /** Concrete operation variant type when no operation path key is available */\n variantType?: ResourceOperationVariantType;\n /** Concrete named variant when no operation path key is available */\n variantKey?: string;\n /** Concrete defaultness when no operation path key is available */\n isOperationDefault?: boolean;\n /** Concrete bulk flag when no operation path key is available */\n isBulkOperation?: boolean;\n /** Data mode (if available in message) */\n dataMode?: DataMode;\n /** Operation path key (if available) */\n operationPathKey?: string;\n /** Which contract should be used to resolve the validation DTO */\n validationTarget?: 'canonical-read' | 'operation-response';\n}\n\nfunction optionalValue<T>(value: T | null | undefined): T | undefined {\n return value == null ? undefined : value;\n}\n\n/**\n * Service for validating resource data in WebSocket messages\n */\nexport class WebSocketResourceValidationService {\n private resourcesRegistry: FrontendResourcesRegistry;\n private errorBuilder: ErrorBuilderFrontend;\n\n constructor(resourcesRegistry: FrontendResourcesRegistry) {\n this.resourcesRegistry = resourcesRegistry;\n this.errorBuilder = new ErrorBuilderFrontend();\n }\n\n /**\n * Build a WildoError for WebSocket validation failures\n */\n private buildError(\n customMessageReference: ErrorCustomMessageReference,\n context?: WebSocketMessageContext,\n additionalContext?: Record<string, any>\n ): Error {\n const wildoError = this.errorBuilder.buildWildoError_Frontend(\n ErrorType.INTERNAL,\n { \n customMessageReference, \n operationPathKey: context?.operationPathKey,\n context: {\n ...additionalContext,\n resourceType: context?.resourceType,\n operationIdentifier: context?.operationIdentifier,\n }\n }\n );\n // Attach the WildoError to the Error for downstream handling\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Find an operation in the registry based on context\n */\n private findOperation(\n context: WebSocketMessageContext,\n ): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n if (!context.operationIdentifier) {\n // If no operation identifier, return null (can't determine operation)\n return null;\n }\n\n const matchingOperations = resourceConfig.operations.filter((op) => (\n String(op.operationIdentifier) === context.operationIdentifier\n && (optionalValue(context.variantType) === undefined || op.variantType === context.variantType)\n && (optionalValue(context.variantKey) === undefined || op.variantKey === context.variantKey)\n && (optionalValue(context.isOperationDefault) === undefined || Boolean(op.isOperationDefault) === context.isOperationDefault)\n && (optionalValue(context.isBulkOperation) === undefined || (op.isBulkOperation === true) === context.isBulkOperation)\n ));\n if (matchingOperations.length === 1) {\n return matchingOperations[0]!;\n }\n\n const defaultNonBulkOperations = matchingOperations.filter((op) => (\n op.isOperationDefault === true && op.isBulkOperation !== true\n ));\n if (defaultNonBulkOperations.length === 1) {\n return defaultNonBulkOperations[0]!;\n }\n\n return null;\n }\n\n private findOperationByPathKey(\n resourceType: string,\n operationPathKey?: string,\n ): FrontendResourceConfiguration_Operation | null {\n if (!operationPathKey) {\n return null;\n }\n\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n try {\n return resourceConfig.operations.find((operation) => (\n ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === operationPathKey\n )) ?? null;\n } catch {\n return null;\n }\n }\n\n private resolveOperation(context: WebSocketMessageContext): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n const operationFromPath = this.findOperationByPathKey(context.resourceType, context.operationPathKey);\n if (operationFromPath) {\n if (\n context.validationTarget === 'canonical-read'\n && ResourceOperationsUtils.getCoreResourceOperationFromOperation(operationFromPath) !== CoreResourceOperation.READ\n ) {\n return null;\n }\n return operationFromPath;\n }\n\n if (context.validationTarget === 'canonical-read') {\n return null;\n }\n\n return this.findOperation(context);\n }\n\n /**\n * Select the appropriate response DTO based on dataMode\n * @param operation - The operation configuration\n * @param dataMode - The data mode (RAW, SUMMARY, CONTEXT)\n * @returns The selected Zod schema for validation, or null if no DTO is available\n */\n private selectResponseDto(\n operation: FrontendResourceConfiguration_Operation,\n dataMode?: DataMode\n ): z.ZodSchema<any> | null {\n return ResourcesConfigOperationsDtosBuilderUtils.selectResponseDto(operation, dataMode);\n }\n\n /**\n * Validate resource data against the selected DTO\n * @param resourceData - The resource data to validate\n * @param schema - The Zod schema to validate against\n * @param context - WebSocket message context for error reporting\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n private validateResourceData<TData>(\n resourceData: any,\n schema: z.ZodSchema<any> | null,\n context?: WebSocketMessageContext\n ): TData {\n // If no schema is available, return data as-is (backward compatibility)\n if (!schema) {\n return resourceData as TData;\n }\n\n try {\n return schema.parse(resourceData) as TData;\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n validationErrors: error.issues,\n resourceData: resourceData\n }\n );\n }\n throw error;\n }\n }\n\n /**\n * Validate resource data from a WebSocket message\n * \n * This method should be called when resource data is included in WebSocket payloads\n * (e.g., in custom events or when Phase 7.1 is implemented).\n * \n * @param resourceData - The resource data to validate\n * @param context - WebSocket message context\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceData<TData = any>(\n resourceData: any,\n context: WebSocketMessageContext\n ): TData {\n const operation = this.resolveOperation(context);\n const requiresStrictValidation = context.validationTarget != null;\n\n if (!operation) {\n if (requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation operation',\n resourceData,\n },\n );\n }\n return resourceData as TData;\n }\n\n // Select appropriate DTO based on dataMode\n const responseDto = this.selectResponseDto(operation, context.dataMode);\n if (!responseDto && requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation DTO',\n resourceData,\n operationIdentifier: operation.operationIdentifier,\n },\n );\n }\n\n // Validate and return\n return this.validateResourceData<TData>(resourceData, responseDto, context);\n }\n\n /**\n * Validate resource data array from a WebSocket message\n * Useful for bulk operations or list updates\n * \n * @param resourceDataArray - Array of resource data to validate\n * @param context - WebSocket message context\n * @returns Validated array of resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceDataArray<TData = any>(\n resourceDataArray: any[],\n context: WebSocketMessageContext\n ): TData[] {\n return resourceDataArray.map((item, index) => {\n try {\n return this.validateWebSocketResourceData<TData>(item, context);\n } catch (error) {\n // Enhance error with array index context\n if (error instanceof Error && (error as any).wildoError) {\n const enhancedContext: WebSocketMessageContext = {\n ...context,\n operationPathKey: context.operationPathKey \n ? `${context.operationPathKey}[${index}]`\n : `[${index}]`\n };\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n enhancedContext,\n {\n arrayIndex: index,\n originalError: error\n }\n );\n }\n throw error;\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"websocket-resource-validation.frontend.service.js","sourceRoot":"","sources":["../../../../../src/core/requests/websockets/websocket-resource-validation.frontend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * WebSocket Resource Validation Service\n * \n * Provides DTO validation for resource data received via WebSocket messages.\n * Similar to HTTP client validation, but for WebSocket payloads.\n * \n * Note: RMM resource-room sync payloads now do include replay-grade resource\n * data and use this service on a strict canonical-read validation path. Looser\n * websocket consumers such as some custom-event flows may still opt into the\n * older backward-compatible pass-through behavior when they do not request a\n * strict validation target.\n */\n\nimport { z } from 'zod';\nimport {\n CoreResourceOperation,\n DataMode,\n ResourceOperationVariantType,\n ResourceOperationsUtils,\n ResourcesConfigOperationsDtosBuilderUtils,\n ResourcesConfig_OperationPathUtils,\n} from '@wildo-ai/saas-models';\nimport type { FrontendResourcesRegistry, FrontendResourceConfiguration_Operation } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { ErrorBuilderFrontend } from '~wildo-frontend-lib/core/errors/errors-builder.frontend.services';\nimport { ErrorType, ErrorCustomMessageReference } from '@wildo-ai/saas-models';\n\n/**\n * WebSocket message context for validation\n */\nexport interface WebSocketMessageContext {\n /** Resource type */\n resourceType: string;\n /** Operation identifier */\n operationIdentifier?: string;\n /** Concrete operation variant type when no operation path key is available */\n variantType?: ResourceOperationVariantType;\n /** Concrete named variant when no operation path key is available */\n variantKey?: string;\n /** Concrete defaultness when no operation path key is available */\n isOperationDefault?: boolean;\n /** Concrete bulk flag when no operation path key is available */\n isBulkOperation?: boolean;\n /** Data mode (if available in message) */\n dataMode?: DataMode;\n /** Operation path key (if available) */\n operationPathKey?: string;\n /** Which contract should be used to resolve the validation DTO */\n validationTarget?: 'canonical-read' | 'operation-response';\n}\n\nfunction optionalValue<T>(value: T | null | undefined): T | undefined {\n return value == null ? undefined : value;\n}\n\n/**\n * Service for validating resource data in WebSocket messages\n */\nexport class WebSocketResourceValidationService {\n private resourcesRegistry: FrontendResourcesRegistry;\n private errorBuilder: ErrorBuilderFrontend;\n\n constructor(resourcesRegistry: FrontendResourcesRegistry) {\n this.resourcesRegistry = resourcesRegistry;\n this.errorBuilder = new ErrorBuilderFrontend();\n }\n\n /**\n * Build a WildoError for WebSocket validation failures\n */\n private buildError(\n customMessageReference: ErrorCustomMessageReference,\n context?: WebSocketMessageContext,\n additionalContext?: Record<string, any>\n ): Error {\n const wildoError = this.errorBuilder.buildWildoError_Frontend(\n ErrorType.INTERNAL,\n { \n customMessageReference, \n operationPathKey: context?.operationPathKey,\n context: {\n ...additionalContext,\n resourceType: context?.resourceType,\n operationIdentifier: context?.operationIdentifier,\n }\n }\n );\n // Attach the WildoError to the Error for downstream handling\n const error = new Error(customMessageReference);\n (error as any).wildoError = wildoError;\n return error;\n }\n\n /**\n * Find an operation in the registry based on context\n */\n private findOperation(\n context: WebSocketMessageContext,\n ): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n if (!context.operationIdentifier) {\n // If no operation identifier, return null (can't determine operation)\n return null;\n }\n\n const matchingOperations = resourceConfig.operations.filter((op) => (\n String(op.operationIdentifier) === context.operationIdentifier\n && (optionalValue(context.variantType) === undefined || op.variantType === context.variantType)\n && (optionalValue(context.variantKey) === undefined || op.variantKey === context.variantKey)\n && (optionalValue(context.isOperationDefault) === undefined || Boolean(op.isOperationDefault) === context.isOperationDefault)\n && (optionalValue(context.isBulkOperation) === undefined || (op.isBulkOperation === true) === context.isBulkOperation)\n ));\n if (matchingOperations.length === 1) {\n return matchingOperations[0]!;\n }\n\n const defaultNonBulkOperations = matchingOperations.filter((op) => (\n op.isOperationDefault === true && op.isBulkOperation !== true\n ));\n if (defaultNonBulkOperations.length === 1) {\n return defaultNonBulkOperations[0]!;\n }\n\n return null;\n }\n\n private findOperationByPathKey(\n resourceType: string,\n operationPathKey?: string,\n ): FrontendResourceConfiguration_Operation | null {\n if (!operationPathKey) {\n return null;\n }\n\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n try {\n return resourceConfig.operations.find((operation) => (\n ResourcesConfig_OperationPathUtils.createOperationPathKeyFromOperation(operation) === operationPathKey\n )) ?? null;\n } catch {\n return null;\n }\n }\n\n private resolveOperation(context: WebSocketMessageContext): FrontendResourceConfiguration_Operation | null {\n const resourceConfig = this.resourcesRegistry.resourceConfigurations[context.resourceType];\n if (!resourceConfig) {\n return null;\n }\n\n const operationFromPath = this.findOperationByPathKey(context.resourceType, context.operationPathKey);\n if (operationFromPath) {\n if (\n context.validationTarget === 'canonical-read'\n && ResourceOperationsUtils.getCoreResourceOperationFromOperation(operationFromPath) !== CoreResourceOperation.READ\n ) {\n return null;\n }\n return operationFromPath;\n }\n\n if (context.validationTarget === 'canonical-read') {\n return null;\n }\n\n return this.findOperation(context);\n }\n\n /**\n * Select the appropriate response DTO based on dataMode\n * @param operation - The operation configuration\n * @param dataMode - The data mode (RAW, SUMMARY, CONTEXT)\n * @returns The selected Zod schema for validation, or null if no DTO is available\n */\n private selectResponseDto(\n operation: FrontendResourceConfiguration_Operation,\n dataMode?: DataMode\n ): z.ZodSchema<any> | null {\n return ResourcesConfigOperationsDtosBuilderUtils.selectResponseDto(operation, dataMode);\n }\n\n /**\n * Validate resource data against the selected DTO\n * @param resourceData - The resource data to validate\n * @param schema - The Zod schema to validate against\n * @param context - WebSocket message context for error reporting\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n private validateResourceData<TData>(\n resourceData: any,\n schema: z.ZodSchema<any> | null,\n context?: WebSocketMessageContext\n ): TData {\n // If no schema is available, return data as-is (backward compatibility)\n if (!schema) {\n return resourceData as TData;\n }\n\n try {\n return schema.parse(resourceData) as TData;\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n validationErrors: error.issues,\n resourceData: resourceData\n }\n );\n }\n throw error;\n }\n }\n\n /**\n * Validate resource data from a WebSocket message\n * \n * This method should be called when resource data is included in WebSocket payloads\n * (e.g., in custom events or when Phase 7.1 is implemented).\n * \n * @param resourceData - The resource data to validate\n * @param context - WebSocket message context\n * @returns Validated resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceData<TData = any>(\n resourceData: any,\n context: WebSocketMessageContext\n ): TData {\n const operation = this.resolveOperation(context);\n const requiresStrictValidation = context.validationTarget != null;\n\n if (!operation) {\n if (requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation operation',\n resourceData,\n },\n );\n }\n return resourceData as TData;\n }\n\n // Select appropriate DTO based on dataMode\n const responseDto = this.selectResponseDto(operation, context.dataMode);\n if (!responseDto && requiresStrictValidation) {\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n context,\n {\n message: 'Unable to resolve websocket validation DTO',\n resourceData,\n operationIdentifier: operation.operationIdentifier,\n },\n );\n }\n\n // Validate and return\n return this.validateResourceData<TData>(resourceData, responseDto, context);\n }\n\n /**\n * Validate resource data array from a WebSocket message\n * Useful for bulk operations or list updates\n * \n * @param resourceDataArray - Array of resource data to validate\n * @param context - WebSocket message context\n * @returns Validated array of resource data\n * @throws Error if validation fails\n */\n public validateWebSocketResourceDataArray<TData = any>(\n resourceDataArray: any[],\n context: WebSocketMessageContext\n ): TData[] {\n return resourceDataArray.map((item, index) => {\n try {\n return this.validateWebSocketResourceData<TData>(item, context);\n } catch (error) {\n // Enhance error with array index context\n if (error instanceof Error && (error as any).wildoError) {\n const enhancedContext: WebSocketMessageContext = {\n ...context,\n operationPathKey: context.operationPathKey \n ? `${context.operationPathKey}[${index}]`\n : `[${index}]`\n };\n throw this.buildError(\n ErrorCustomMessageReference.FRONTEND_RESOURCE_RESPONSE_VALIDATION_FAILED,\n enhancedContext,\n {\n arrayIndex: index,\n originalError: error\n }\n );\n }\n throw error;\n }\n });\n }\n}\n"]}
|