@wildo-ai/saas-frontend-lib 1.1.9 → 1.1.11
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/companion-exports.d.ts +2 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js +2 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/components/actions/action-bar.d.ts +45 -1
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +84 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -1
- package/dist/esm/components/actions/button.d.ts +22 -0
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.js +45 -0
- package/dist/esm/components/actions/button.js.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts +109 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.js +22 -0
- package/dist/esm/components/ai-elements/chat/conversation-thread.js.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval.d.ts +103 -7
- 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/tool.d.ts +6 -0
- 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 +60 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.js +26 -0
- package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts +39 -4
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.js +18 -0
- package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts +6 -0
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +29 -8
- package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
- package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts +17 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts.map +1 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.js +24 -0
- package/dist/esm/components/app/AppLayout_DecisionInbox.js.map +1 -0
- package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
- package/dist/esm/components/app/AppLayout_MainContainer.js +3 -0
- package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
- package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts +15 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.js +219 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.js.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts +3 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts.map +1 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js +49 -0
- package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js.map +1 -0
- package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.js +3 -2
- package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
- package/dist/esm/components/auth/Auth_Invitation.labels.js +2 -2
- package/dist/esm/components/auth/Auth_Invitation.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 +40 -7
- 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 +9 -0
- package/dist/esm/components/auth/Auth_Main.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 +3 -2
- package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
- package/dist/esm/components/auth/Auth_PasswordLost.labels.js +2 -2
- 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 +8 -1
- package/dist/esm/components/auth/Auth_Register.js.map +1 -1
- package/dist/esm/components/auth/Auth_Register.labels.js +2 -2
- package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.d.ts +1 -1
- package/dist/esm/components/auth/StepUpAuthDialog.js +3 -3
- 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 +94 -6
- 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 +21 -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 +16 -13
- package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
- package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js +3 -3
- 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 +1 -1
- package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js +3 -4
- package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts +11 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts.map +1 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js +25 -0
- package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js.map +1 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts +39 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts.map +1 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js +45 -0
- package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js.map +1 -0
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js +1 -1
- package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js +2 -1
- package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/AutomaticDisplayer.js +21 -35
- package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayField.js +98 -70
- package/dist/esm/components/data-display/DisplayField.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditable.js +48 -8
- package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +3 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayFieldEditableArray.js +30 -4
- 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 +2 -2
- package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
- package/dist/esm/components/data-display/DisplayValueDispatcher.js +45 -94
- 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 +14 -8
- package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +41 -3
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js +49 -5
- package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
- package/dist/esm/components/data-display/SummaryContext.d.ts +2 -2
- package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
- package/dist/esm/components/data-display/automatic-displayer.utils.d.ts +22 -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 +29 -0
- package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts +9 -0
- 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/chromes/DisplayFieldChrome.d.ts +14 -2
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +42 -12
- package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts +10 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js +18 -0
- package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts +38 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.js +30 -0
- package/dist/esm/components/data-display/chromes/field-tile-boundaries.js.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts +22 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.js +52 -0
- package/dist/esm/components/data-display/chromes/field-tiles.utils.js.map +1 -0
- package/dist/esm/components/data-display/display-field-resolved-props.d.ts +4 -0
- 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-layout-template.utils.d.ts +18 -0
- package/dist/esm/components/data-display/display-layout-template.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/display-layout-template.utils.js +18 -0
- package/dist/esm/components/data-display/display-layout-template.utils.js.map +1 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts +44 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.js +61 -0
- package/dist/esm/components/data-display/display-value-emptiness.utils.js.map +1 -0
- package/dist/esm/components/data-display/empty-value-mark.d.ts +31 -0
- package/dist/esm/components/data-display/empty-value-mark.d.ts.map +1 -0
- package/dist/esm/components/data-display/empty-value-mark.js +49 -0
- package/dist/esm/components/data-display/empty-value-mark.js.map +1 -0
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +3 -2
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +4 -4
- package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +6 -3
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +22 -12
- package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +2 -2
- package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
- package/dist/esm/components/data-display/reference-display-target.d.ts +98 -0
- package/dist/esm/components/data-display/reference-display-target.d.ts.map +1 -0
- package/dist/esm/components/data-display/reference-display-target.js +154 -0
- package/dist/esm/components/data-display/reference-display-target.js.map +1 -0
- package/dist/esm/components/data-display/summary-value-naming.context.d.ts +15 -0
- package/dist/esm/components/data-display/summary-value-naming.context.d.ts.map +1 -0
- package/dist/esm/components/data-display/summary-value-naming.context.js +18 -0
- package/dist/esm/components/data-display/summary-value-naming.context.js.map +1 -0
- package/dist/esm/components/data-display/tone-marker.d.ts +38 -0
- package/dist/esm/components/data-display/tone-marker.d.ts.map +1 -0
- package/dist/esm/components/data-display/tone-marker.js +56 -0
- package/dist/esm/components/data-display/tone-marker.js.map +1 -0
- package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
- package/dist/esm/components/data-display/useFileActivation.js +2 -9
- package/dist/esm/components/data-display/useFileActivation.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 +12 -4
- package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts +8 -0
- 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/files/Files_UploadGrantDrop.d.ts +0 -5
- package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
- package/dist/esm/components/files/Files_UploadGrantDrop.js +5 -17
- package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
- package/dist/esm/components/flows-actors/actor.d.ts +21 -4
- package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/actor.js +114 -192
- 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 +5 -10
- package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js +1 -1
- package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js +1 -0
- package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/approval.d.ts +26 -16
- package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/approval.js +208 -70
- 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 +67 -22
- package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/artifact-browser.labels.js +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 +19 -7
- package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/execution-plan.js +55 -41
- 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 +25 -8
- package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/execution-usage.d.ts +69 -0
- package/dist/esm/components/flows-actors/execution-usage.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.js +189 -0
- package/dist/esm/components/flows-actors/execution-usage.js.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.d.ts +3 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.js +27 -0
- package/dist/esm/components/flows-actors/execution-usage.labels.js.map +1 -0
- package/dist/esm/components/flows-actors/flow-execution.d.ts +23 -6
- package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-execution.js +56 -208
- 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 +3 -10
- package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts +54 -21
- package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/flow-node-badges.js +80 -6
- package/dist/esm/components/flows-actors/flow-node-badges.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 +0 -8
- package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/flow-step-visuals.d.ts +31 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.js +98 -0
- package/dist/esm/components/flows-actors/flow-step-visuals.js.map +1 -0
- package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts +18 -19
- 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 +18 -19
- 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 +27 -42
- 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 +28 -43
- 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 +15 -10
- 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 +16 -42
- package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
- package/dist/esm/components/flows-actors/graph-viewer.d.ts +112 -0
- package/dist/esm/components/flows-actors/graph-viewer.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.js +431 -0
- package/dist/esm/components/flows-actors/graph-viewer.js.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts +3 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.js +67 -0
- package/dist/esm/components/flows-actors/graph-viewer.labels.js.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.d.ts +16 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.js +18 -0
- package/dist/esm/components/flows-actors/graph-viewer.models.js.map +1 -0
- package/dist/esm/components/flows-actors/human-decision-form.d.ts +57 -0
- package/dist/esm/components/flows-actors/human-decision-form.d.ts.map +1 -0
- package/dist/esm/components/flows-actors/human-decision-form.js +128 -0
- package/dist/esm/components/flows-actors/human-decision-form.js.map +1 -0
- package/dist/esm/components/flows-actors/system-catalog.d.ts +6 -1
- package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/system-catalog.js +22 -20
- 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 +3 -2
- package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.d.ts +17 -3
- package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
- package/dist/esm/components/flows-actors/task-detail.js +32 -25
- package/dist/esm/components/flows-actors/task-detail.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 +3 -2
- package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
- package/dist/esm/components/form/Form.d.ts +2 -0
- package/dist/esm/components/form/Form.d.ts.map +1 -1
- package/dist/esm/components/form/Form.js +4 -0
- package/dist/esm/components/form/Form.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +16 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedArrayField.js +101 -21
- package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.d.ts +19 -2
- package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutomatedForm.js +40 -6
- package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts +22 -1
- package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/AutosaveContext.js +53 -0
- package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts +1 -1
- package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormField.js +127 -53
- package/dist/esm/components/form/automated/FormField.js.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormFieldComposite.js +12 -10
- 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 +16 -7
- package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts +27 -0
- package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
- package/dist/esm/components/form/automated/FormTemplateContext.js +0 -48
- package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +4 -3
- package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js +616 -149
- package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
- package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +105 -5
- 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 +225 -6
- package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
- package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts +59 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts.map +1 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.js +77 -0
- package/dist/esm/components/form/automated/bulk-field-clear-context.js.map +1 -0
- package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
- package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts +19 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts.map +1 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.js +13 -0
- package/dist/esm/components/form/automated/unplaced-request-fields.context.js.map +1 -0
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts +7 -0
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js +10 -2
- package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
- package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts +16 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts.map +1 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.js +66 -0
- package/dist/esm/components/form/automated/useReferenceRecordLabels.js.map +1 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts +18 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts.map +1 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.js +107 -0
- package/dist/esm/components/form/automated/useRequestFieldOffer.js.map +1 -0
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts +7 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/FormFieldChrome.js +6 -3
- package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
- 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 +21 -0
- 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 +9 -0
- 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 +9 -0
- 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-range-picker.d.ts +1 -0
- 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 +10 -0
- 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/toggle-group.d.ts +14 -10
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.js +14 -6
- package/dist/esm/components/form/controls/enum/toggle-group.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 +7 -3
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
- package/dist/esm/components/form/controls/string/chips-input.d.ts +65 -0
- package/dist/esm/components/form/controls/string/chips-input.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/chips-input.js +9 -0
- package/dist/esm/components/form/controls/string/chips-input.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.js +7 -5
- package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js +1 -1
- package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-bigdecimal.js +2 -2
- package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-boolean.js +2 -2
- package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-code.labels.js +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 +16 -11
- package/dist/esm/components/form/fields/form-field-date.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 +10 -5
- package/dist/esm/components/form/fields/form-field-datetime.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 +5 -7
- 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 +8 -2
- 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 +31 -31
- package/dist/esm/components/form/fields/form-field-enum.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 +13 -12
- package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-file.labels.js +6 -6
- 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 +5 -4
- 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 +8 -2
- package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-number.js +2 -2
- package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-bigdecimal.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 +7 -2
- package/dist/esm/components/form/fields/form-field-range-date.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 +5 -2
- package/dist/esm/components/form/fields/form-field-range-datetime.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 +6 -19
- 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 +8 -2
- 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.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-range-time.js +2 -2
- package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-resource-reference.d.ts +56 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.d.ts.map +1 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.js +51 -0
- package/dist/esm/components/form/fields/form-field-resource-reference.js.map +1 -0
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +36 -6
- package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string-organization-role.js +30 -11
- package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.d.ts +5 -0
- package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
- package/dist/esm/components/form/fields/form-field-string.js +9 -7
- package/dist/esm/components/form/fields/form-field-string.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 +6 -3
- package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
- package/dist/esm/components/form/fields/themed-native-select.d.ts +29 -0
- package/dist/esm/components/form/fields/themed-native-select.d.ts.map +1 -0
- package/dist/esm/components/form/fields/themed-native-select.js +36 -0
- package/dist/esm/components/form/fields/themed-native-select.js.map +1 -0
- package/dist/esm/components/form/form-context.d.ts +11 -0
- package/dist/esm/components/form/form-context.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.js +11 -0
- package/dist/esm/components/form/form-context.js.map +1 -1
- package/dist/esm/components/form/form-context.utils.d.ts +2 -0
- package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
- package/dist/esm/components/form/form-context.utils.js +6 -2
- package/dist/esm/components/form/form-context.utils.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 +17 -15
- package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
- package/dist/esm/components/form/validation-errors/field-reveal.d.ts +41 -0
- package/dist/esm/components/form/validation-errors/field-reveal.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/field-reveal.js +108 -0
- package/dist/esm/components/form/validation-errors/field-reveal.js.map +1 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts +3 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.js +37 -0
- package/dist/esm/components/form/validation-errors/form-level-error-recheck.js.map +1 -0
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts +6 -0
- package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/getFieldError.js +9 -2
- 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 +8 -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 +46 -3
- package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.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 +8 -3
- package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts +32 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts.map +1 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js +60 -0
- package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js.map +1 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +10 -0
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +12 -3
- package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
- package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts +7 -0
- 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_UtilityPanel.d.ts +6 -0
- 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/SidebarResourceBrowser.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +11 -28
- package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts +46 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.js +165 -0
- package/dist/esm/components/navigation/app-level/engine-launcher-entries.js.map +1 -0
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +8 -3
- package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.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 +41 -20
- package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts +1 -2
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js +1 -15
- package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts +32 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js +91 -0
- package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js.map +1 -0
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js +3 -1
- package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts +18 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +66 -9
- package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +15 -10
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +89 -12
- package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js +2 -2
- package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts +39 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts.map +1 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.js +21 -0
- package/dist/esm/components/resources/CollectionSelectAllCheckbox.js.map +1 -0
- package/dist/esm/components/resources/CollectionSelectionControls.d.ts +4 -3
- 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/ResourceCollectionBody_Table.d.ts +7 -2
- package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js +38 -14
- package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts +4 -4
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +20 -13
- package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts +4 -3
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +40 -6
- package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +65 -23
- package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceCollectionToolbar.js +73 -10
- package/dist/esm/components/resources/ResourceCollectionToolbar.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 +5 -0
- package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts +18 -0
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +57 -48
- package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +7 -1
- package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Create.js +3 -4
- 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 +10 -0
- package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts +5 -3
- package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js +4 -3
- package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +8 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js +83 -11
- package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js +1 -1
- package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts +5 -8
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_FiltersControl.js +68 -19
- 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 +150 -44
- package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_InsertedViews.js +62 -40
- 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 +68 -70
- 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 +4 -10
- package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts +8 -9
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js +67 -25
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js +8 -8
- package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts +8 -2
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.js +12 -7
- 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 +11 -6
- package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts +2 -0
- package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Read.js +23 -5
- package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +5 -3
- package/dist/esm/components/resources/ResourceLayout_ReadSummary.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 +18 -7
- package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts +56 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.js +184 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.js.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts +3 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js +106 -0
- package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js.map +1 -0
- package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_Search.js +55 -42
- 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 +0 -6
- package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts +8 -0
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +2 -3
- 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 +3 -2
- package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts +29 -5
- package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceListItemRenderer.js +123 -41
- package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts +6 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
- package/dist/esm/components/resources/ResourceViewModeToggle.js +9 -7
- package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts +37 -15
- package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/collection-card-layout.utils.js +37 -15
- package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
- package/dist/esm/components/resources/collection-selection-bar-density.d.ts +113 -0
- package/dist/esm/components/resources/collection-selection-bar-density.d.ts.map +1 -0
- package/dist/esm/components/resources/collection-selection-bar-density.js +175 -0
- package/dist/esm/components/resources/collection-selection-bar-density.js.map +1 -0
- package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts +2 -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/RelatedResourceSections.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js +14 -2
- package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +61 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js +151 -15
- package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts +11 -0
- 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 +13 -0
- package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts +24 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js +47 -3
- package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts +35 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts.map +1 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js +36 -0
- package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js.map +1 -0
- package/dist/esm/components/resources/resource-header-geometry.d.ts +19 -0
- package/dist/esm/components/resources/resource-header-geometry.d.ts.map +1 -0
- package/dist/esm/components/resources/resource-header-geometry.js +19 -0
- package/dist/esm/components/resources/resource-header-geometry.js.map +1 -0
- package/dist/esm/components/resources/resourceLayout.utils.d.ts +28 -2
- package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
- package/dist/esm/components/resources/resourceLayout.utils.js +45 -12
- 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 +10 -0
- package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts +20 -4
- package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/DisplayLayout.js +19 -2
- package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/FieldTiles.d.ts +48 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.d.ts.map +1 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.js +51 -0
- package/dist/esm/components/resources/skeleton/FieldTiles.js.map +1 -0
- package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js +2 -1
- package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Group.js +5 -2
- package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +77 -14
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +98 -25
- package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.d.ts +7 -0
- package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/Section.js +9 -3
- package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
- package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts +3 -3
- package/dist/esm/components/resources/skeleton/SummaryLayout.js +3 -3
- package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +7 -5
- package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayout.js +176 -65
- package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts +9 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js +7 -0
- package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/resources/skeleton/WizardStep.js +9 -5
- package/dist/esm/components/resources/skeleton/WizardStep.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 +31 -2
- package/dist/esm/components/resources/skeleton/section-consolidation.utils.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 +176 -61
- 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 +14 -7
- 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 +18 -1
- package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
- package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +8 -0
- 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 +3 -0
- 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 +48 -17
- 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 +226 -74
- 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 +2 -3
- package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts +2 -2
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.d.ts +19 -0
- package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
- package/dist/esm/components/sections/section-grouping.shared.js +24 -0
- package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
- package/dist/esm/components/sections/section-legend-voice.context.d.ts +19 -0
- package/dist/esm/components/sections/section-legend-voice.context.d.ts.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.context.js +21 -0
- package/dist/esm/components/sections/section-legend-voice.context.js.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.d.ts +41 -0
- package/dist/esm/components/sections/section-legend-voice.d.ts.map +1 -0
- package/dist/esm/components/sections/section-legend-voice.js +67 -0
- package/dist/esm/components/sections/section-legend-voice.js.map +1 -0
- package/dist/esm/components/sections/stepper.d.ts +14 -0
- 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 +10 -2
- package/dist/esm/components/sections/surface.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts +39 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js +187 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js +34 -0
- package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +8 -8
- package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts +43 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js +142 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js +62 -0
- package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +25 -8
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +275 -71
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +91 -14
- package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts +13 -8
- package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
- package/dist/esm/components/settings/AppPage_InvitationsSettings.js +95 -23
- 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 +25 -2
- package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts +67 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js +177 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js +45 -0
- package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts +35 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js +137 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts +3 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts.map +1 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js +38 -0
- package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js.map +1 -0
- package/dist/esm/components/settings/SettingsHub.d.ts +3 -3
- package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
- package/dist/esm/components/settings/SettingsHub.js +98 -48
- 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 +2 -0
- 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 +21 -1
- package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +24 -5
- package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
- package/dist/esm/components/settings/useOwnerProviderConnections.js +67 -9
- package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
- package/dist/esm/components/views/chart-view/ChartView.js +3 -3
- package/dist/esm/components/views/chart-view/ChartView.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 +2 -9
- package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
- package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts +1 -0
- 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 +10 -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 +8 -6
- 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 +10 -8
- 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.js +2 -2
- 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.js +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/line-family.builder.js +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/scatter-family.builder.js +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/chart-type-builder.interface.d.ts +6 -0
- 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 +3 -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 +4 -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 +0 -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/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js +24 -1
- package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts +29 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts.map +1 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js +104 -0
- package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js.map +1 -0
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts +16 -5
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +219 -230
- 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 +5 -0
- 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 +15 -13
- package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts +13 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts.map +1 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js +44 -0
- package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js.map +1 -0
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +6 -2
- package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts +64 -9
- package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
- package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
- package/dist/esm/core/app-shell/hosted-components.utils.d.ts +11 -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 +25 -0
- package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
- package/dist/esm/core/app-shell/shell-layout.d.ts +138 -0
- package/dist/esm/core/app-shell/shell-layout.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-layout.js +143 -0
- package/dist/esm/core/app-shell/shell-layout.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts +13 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js +49 -0
- package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts +95 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js +316 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts +217 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js +197 -0
- package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts +46 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js +139 -0
- package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts +108 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts.map +1 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js +423 -0
- package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js.map +1 -0
- package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
- package/dist/esm/core/app-shell/useAppShellLayout.js +6 -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 +11 -4
- package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +18 -1
- 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 +26 -4
- package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js +3 -22
- package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +19 -3
- 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 +100 -13
- package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
- package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts +67 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts.map +1 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.js +100 -0
- package/dist/esm/core/automated-layout/summary-value-naming.utils.js.map +1 -0
- package/dist/esm/core/billing/BillingContext.d.ts +0 -17
- package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
- package/dist/esm/core/billing/BillingContext.js +6 -1
- package/dist/esm/core/billing/BillingContext.js.map +1 -1
- package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts +2 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts.map +1 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.js +78 -0
- package/dist/esm/core/branding/OrganizationBrandingPublisher.js.map +1 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts +21 -0
- package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandIdentity.js +31 -5
- package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.d.ts +5 -0
- package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
- package/dist/esm/core/branding/useBrandPresentation.js +1 -0
- package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
- package/dist/esm/core/branding/useDisplayableImageUrl.d.ts +4 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.d.ts.map +1 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.js +66 -0
- package/dist/esm/core/branding/useDisplayableImageUrl.js.map +1 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts +2 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts.map +1 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.js +23 -0
- package/dist/esm/core/branding/useOrganizationDocumentTitle.js.map +1 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts +16 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js +35 -0
- package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js.map +1 -0
- 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 +8 -0
- package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.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 +34 -5
- package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
- package/dist/esm/core/components-registry/register-framework-layouts.js +4 -0
- package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +36 -0
- package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/app-configuration-frontend.schemas.js +29 -2
- 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 +10 -16
- 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 +10 -16
- 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 +12 -8
- package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/chart-view.frontend.schemas.js +10 -0
- package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/composite-view.schemas.d.ts +2 -2
- package/dist/esm/core/config/config-merge-utilities.d.ts +31 -3
- package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
- package/dist/esm/core/config/config-merge-utilities.js +61 -7
- package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts +83 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js +100 -0
- package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts +69 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js +65 -0
- package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/engine-settings-destinations.d.ts +13 -1
- package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
- package/dist/esm/core/config/engine-settings-destinations.js +588 -155
- package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.d.ts +17 -3
- package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/execution-view.schemas.js +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 +12 -2
- package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js +13 -1
- package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts +12 -11
- package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/inserted-view-launcher.schemas.js +14 -13
- package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +77 -27
- package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/launcher-items.frontend.schemas.js +18 -13
- package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts +79 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js +95 -0
- package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js.map +1 -0
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +19 -7
- 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 +45 -10
- package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts +2 -2
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js +38 -5
- package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +94 -10
- package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/config/settings-hub.frontend.schemas.js +40 -3
- 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 +4 -1
- package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts +2 -2
- package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js +7 -8
- package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
- package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-launcher-content.js +64 -4
- package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.d.ts +4 -0
- package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
- package/dist/esm/core/config/verify-settings-hub-content.js +34 -0
- package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.d.ts +16 -23
- package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
- package/dist/esm/core/enums/common-enum-registry.js +26 -29
- package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
- package/dist/esm/core/errors/GlobalErrorHandler.js +71 -9
- package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.d.ts +0 -4
- package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/errors/error-management.frontend.service.js +5 -8
- package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
- package/dist/esm/core/errors/errors.frontend.schemas.d.ts +21 -10
- 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/user-facing-error-message.frontend.utils.d.ts +35 -0
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +44 -5
- package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
- package/dist/esm/core/events/EventBusContext.js.map +1 -1
- package/dist/esm/core/events/NotificationContext.d.ts +13 -1
- package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
- package/dist/esm/core/events/NotificationContext.js +89 -22
- package/dist/esm/core/events/NotificationContext.js.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.d.ts +68 -4
- package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/events/events.frontend.schemas.js +67 -3
- package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
- package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts +9 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts.map +1 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.js +50 -0
- package/dist/esm/core/events/useNotificationPreferenceKinds.js.map +1 -0
- package/dist/esm/core/execution/useExecution.js +1 -1
- package/dist/esm/core/execution/useExecution.js.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionParticipationRMM.js +4 -0
- package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +3 -3
- package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts +52 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts.map +1 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js +88 -0
- package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js.map +1 -0
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +20 -2
- 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 +18 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +7 -5
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +9 -6
- package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
- package/dist/esm/core/features/FeaturesContext.d.ts +9 -1
- package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
- package/dist/esm/core/features/FeaturesContext.js +38 -12
- package/dist/esm/core/features/FeaturesContext.js.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
- package/dist/esm/core/features/useOperationFeatureAvailability.js +4 -0
- package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +90 -33
- package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/FlowsActorsContext.js +153 -100
- package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
- package/dist/esm/core/flows-actors/conversation-history.model.d.ts +41 -0
- package/dist/esm/core/flows-actors/conversation-history.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/conversation-history.model.js +65 -0
- package/dist/esm/core/flows-actors/conversation-history.model.js.map +1 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.d.ts +144 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.js +315 -0
- package/dist/esm/core/flows-actors/conversation-thread.model.js.map +1 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts +29 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js +67 -0
- package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.layout.d.ts +77 -0
- package/dist/esm/core/flows-actors/graph-view.layout.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.layout.js +169 -0
- package/dist/esm/core/flows-actors/graph-view.layout.js.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.model.d.ts +245 -0
- package/dist/esm/core/flows-actors/graph-view.model.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/graph-view.model.js +414 -0
- package/dist/esm/core/flows-actors/graph-view.model.js.map +1 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts +12 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js +20 -0
- package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js.map +1 -0
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +36 -11
- package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
- package/dist/esm/core/flows-actors/usePendingDecisions.js +114 -29
- package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
- package/dist/esm/core/guidance/GuidanceContext.js +1 -2
- package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js +2 -2
- package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +3 -9
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +3 -15
- package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts +2 -2
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js +2 -2
- package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
- package/dist/esm/core/i18n/I18nContext.d.ts +52 -3
- package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
- package/dist/esm/core/i18n/I18nContext.js +80 -7
- package/dist/esm/core/i18n/I18nContext.js.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +82 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +121 -6
- package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
- package/dist/esm/core/i18n/useI18n.d.ts +3 -1
- package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
- package/dist/esm/core/i18n/useI18n.js +3 -1
- package/dist/esm/core/i18n/useI18n.js.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.d.ts +38 -4
- package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
- package/dist/esm/core/icons/IconRegistryBridge.js +103 -63
- 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 +41 -0
- package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts +44 -0
- package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js +46 -0
- package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +2 -2
- package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts +64 -20
- package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContentAreas.js +82 -51
- package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationContext.js +130 -23
- package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts +4 -0
- package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js +17 -1
- package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
- package/dist/esm/core/navigation/ZoneChromeContext.d.ts +80 -0
- package/dist/esm/core/navigation/ZoneChromeContext.d.ts.map +1 -0
- package/dist/esm/core/navigation/ZoneChromeContext.js +130 -0
- package/dist/esm/core/navigation/ZoneChromeContext.js.map +1 -0
- package/dist/esm/core/navigation/launcher-resolution.d.ts +102 -2
- package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-resolution.js +194 -9
- package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +35 -5
- package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
- package/dist/esm/core/navigation/launcher-runtime-availability.js +147 -18
- package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.d.ts +44 -14
- package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-cascade.js +87 -19
- package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
- package/dist/esm/core/navigation/navigation-commit.d.ts +45 -0
- package/dist/esm/core/navigation/navigation-commit.d.ts.map +1 -0
- package/dist/esm/core/navigation/navigation-commit.js +68 -0
- package/dist/esm/core/navigation/navigation-commit.js.map +1 -0
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts +54 -3
- package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation-controller-internals.js +91 -3
- package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
- package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +3 -3
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js +3 -3
- package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.d.ts +95 -22
- package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
- package/dist/esm/core/navigation/navigation.utils.js +190 -63
- package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
- package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts +64 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts.map +1 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js +212 -0
- package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js.map +1 -0
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
- package/dist/esm/core/navigation/useLauncherResolutionContext.js +17 -2
- package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.d.ts +1 -0
- package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationController.js +51 -67
- package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.js +17 -1
- package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts +17 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts.map +1 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js +32 -0
- package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js.map +1 -0
- package/dist/esm/core/navigation/zone-collapse.d.ts +2 -1
- package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
- package/dist/esm/core/navigation/zone-collapse.js +2 -1
- package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
- package/dist/esm/core/navigation/zone-entry-organization.d.ts +34 -0
- package/dist/esm/core/navigation/zone-entry-organization.d.ts.map +1 -0
- package/dist/esm/core/navigation/zone-entry-organization.js +77 -0
- package/dist/esm/core/navigation/zone-entry-organization.js.map +1 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts +15 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js +24 -0
- package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
- package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts +74 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts.map +1 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.js +52 -0
- package/dist/esm/core/requests/automatic-resend-safety.frontend.js.map +1 -0
- package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
- package/dist/esm/core/requests/websockets/WebSocketContext.js +31 -0
- 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 +2 -0
- package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
- package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +162 -98
- 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 +283 -157
- 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 +9 -13
- 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 +45 -97
- 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 +25 -5
- 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 +56 -11
- package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js +1 -2
- package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts +14 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js +29 -0
- package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts +23 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.js +26 -0
- package/dist/esm/core/resources/caller-identity-record.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +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 +34 -16
- package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts +54 -11
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js +131 -63
- package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts +58 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.js +70 -0
- package/dist/esm/core/resources/date-filter-window.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/frontend-resource.utils.d.ts +146 -7
- package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/frontend-resource.utils.js +194 -22
- package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts +18 -4
- package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
- package/dist/esm/core/resources/hooks/useOperationEnabled.js +26 -6
- package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +95 -2
- package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js +126 -13
- package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts +45 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js +46 -0
- package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts +46 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js +86 -0
- package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js.map +1 -0
- 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 +5 -1
- package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts +28 -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 +43 -3
- package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts +26 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.js +37 -0
- package/dist/esm/core/resources/resource-discriminators.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +40 -8
- package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/resources/resources-repository.frontend.service.js +333 -73
- package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts +175 -65
- package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/resources/resources.frontend.schemas.js +245 -75
- package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts +9 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/HttpTransportAdapter.js +57 -22
- 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 +1 -0
- package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts +3 -0
- package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js +94 -35
- package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/types.d.ts +58 -6
- package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/types.js +17 -0
- package/dist/esm/core/resources/rmm/types.js.map +1 -1
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +43 -6
- 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 +49 -6
- package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js +2 -0
- package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +2 -0
- package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
- package/dist/esm/core/resources/rmm/useResourceRMM.js +10 -3
- package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts +22 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js +31 -0
- package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts +36 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js +88 -0
- package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js.map +1 -0
- package/dist/esm/core/resources/useBulkJobProgress.d.ts +6 -0
- package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
- package/dist/esm/core/resources/useBulkJobProgress.js +1 -0
- package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
- package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts +14 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts.map +1 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.js +29 -0
- package/dist/esm/core/resources/useCollectionFilterPresetScope.js.map +1 -0
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts +7 -6
- package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
- package/dist/esm/core/resources/useHostlessResourceNavigation.js +35 -21
- package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
- package/dist/esm/core/resources/useOperationDirectExecution.js +25 -10
- package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
- package/dist/esm/core/resources/useRecordSharing.d.ts +58 -0
- package/dist/esm/core/resources/useRecordSharing.d.ts.map +1 -0
- package/dist/esm/core/resources/useRecordSharing.js +220 -0
- package/dist/esm/core/resources/useRecordSharing.js.map +1 -0
- package/dist/esm/core/resources/useResourceLabels.d.ts +4 -1
- package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceLabels.js +31 -32
- package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.d.ts +23 -4
- package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationActions.js +219 -51
- package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts +10 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js +7 -2
- package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts +5 -5
- package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
- package/dist/esm/core/resources/useResourceOperationSurface.js +5 -4
- package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
- package/dist/esm/core/resources/useResourceSelection.d.ts +6 -0
- 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 +47 -0
- 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 +117 -4
- 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 +5 -2
- package/dist/esm/core/runtime/AppRouter.js.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts +10 -1
- package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
- package/dist/esm/core/runtime/ApplicationMainContext.js +17 -2
- package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +5 -0
- package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js +4 -2
- package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +19 -3
- package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
- package/dist/esm/core/runtime/routes.frontend.definitions.js +23 -7
- package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js +3 -1
- package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.d.ts +7 -2
- package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
- package/dist/esm/core/scope/AppScopeContext.js +56 -10
- package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
- package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts +23 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts.map +1 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.js +27 -0
- package/dist/esm/core/security/ApplicationRoleTablesContext.js.map +1 -0
- package/dist/esm/core/security/AuthSessionContext.d.ts +26 -8
- package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
- package/dist/esm/core/security/AuthSessionContext.js +81 -17
- package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
- package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts +13 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts.map +1 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.js +12 -0
- package/dist/esm/core/security/RouteOrganizationDecisionContext.js.map +1 -0
- package/dist/esm/core/security/StepUpAuthContext.js +5 -5
- package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.d.ts +13 -0
- package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
- package/dist/esm/core/security/UserOrgsContext.js +272 -103
- package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts +1 -0
- package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/auth-redirect.frontend.utils.js +3 -2
- package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts +43 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts.map +1 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.js +73 -0
- package/dist/esm/core/security/effective-permissions.frontend.utils.js.map +1 -0
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +175 -5
- package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
- package/dist/esm/core/security/route-organization-access.frontend.utils.js +147 -6
- package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.d.ts +17 -5
- package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/security/security.frontend.schemas.js +0 -5
- package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
- package/dist/esm/core/security/useApplicationRoleTables.d.ts +3 -0
- package/dist/esm/core/security/useApplicationRoleTables.d.ts.map +1 -0
- package/dist/esm/core/security/useApplicationRoleTables.js +11 -0
- package/dist/esm/core/security/useApplicationRoleTables.js.map +1 -0
- package/dist/esm/core/security/useRouteOrganizationAccess.d.ts +9 -0
- package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationAccess.js +31 -10
- package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
- package/dist/esm/core/security/useRouteOrganizationFollow.d.ts +24 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.d.ts.map +1 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.js +76 -0
- package/dist/esm/core/security/useRouteOrganizationFollow.js.map +1 -0
- package/dist/esm/core/ui/UIContext.d.ts +25 -2
- package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
- package/dist/esm/core/ui/UIContext.js +49 -37
- package/dist/esm/core/ui/UIContext.js.map +1 -1
- package/dist/esm/core/ui/design-token.utils.d.ts +0 -11
- package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
- package/dist/esm/core/ui/design-token.utils.js +51 -83
- package/dist/esm/core/ui/design-token.utils.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 +151 -59
- package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
- package/dist/esm/core/ui/themes/focus-indicator.d.ts +221 -0
- package/dist/esm/core/ui/themes/focus-indicator.d.ts.map +1 -0
- package/dist/esm/core/ui/themes/focus-indicator.js +229 -0
- package/dist/esm/core/ui/themes/focus-indicator.js.map +1 -0
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -0
- package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
- package/dist/esm/core/ui/useThemePreferenceControl.js +1 -2
- package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +45 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tailwind/index.d.ts.map +1 -1
- package/dist/esm/tailwind/index.js +3 -0
- package/dist/esm/tailwind/index.js.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
- package/dist/esm/testing/app-shell-placement-coverage.js +6 -2
- package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
- package/dist/esm/testing/mock-builders.d.ts +13 -1
- package/dist/esm/testing/mock-builders.d.ts.map +1 -1
- package/dist/esm/testing/mock-builders.js +35 -1
- package/dist/esm/testing/mock-builders.js.map +1 -1
- package/dist/esm/testing/rmm-helpers.d.ts +5 -3
- package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
- package/dist/esm/testing/rmm-helpers.js +3 -0
- 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 +3 -0
- package/dist/esm/testing/test-providers.js.map +1 -1
- package/package.json +7 -6
- package/dist/esm/components/flows-actors/flow-node.d.ts +0 -28
- package/dist/esm/components/flows-actors/flow-node.d.ts.map +0 -1
- package/dist/esm/components/flows-actors/flow-node.js +0 -115
- package/dist/esm/components/flows-actors/flow-node.js.map +0 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts +0 -30
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +0 -1
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.js +0 -17
- package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsResourceOperationPanel.js","sourceRoot":"","sources":["../../../../../src/components/settings/SettingsResourceOperationPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * SettingsResourceOperationPanel — renders an auto-generated resource surface\n * inside a Settings Hub section.\n *\n * This is the `RESOURCE_OPERATION` target renderer. It produces the exact same\n * `FrontendResourceOperationContext` a routed resource page would, but sources\n * the scope identifiers from live `AppScope` instead of URL params — that is the\n * whole reason org-scoped resources (members, API keys, billing) can render here\n * without a `/organizations/:organizationId/...` route. The recipe mirrors\n * `ResourcePageWrapper` (core/runtime/AppRouter.tsx) minus URL handling:\n *\n * 1. resolve the resource config + the operation object from the registry\n * 2. build `contextResourceIdentifiers` via the SAME\n * `ScopeUtilsService.buildResourceOperationContextIdentifiers` routed pages\n * use — primary-scope defaults injected from `currentOrganizationId` /\n * `currentUserId`, so an `ORGANIZATIONS`-scoped resource gets\n * `{ organizations: <id> }` automatically\n * 3. derive `parentResourcesRequirements` from those identifiers (the\n * context-identifier variant, since there are no route params to walk)\n * 4. build the operation context and hand it to `SettingsSectionNavigationHost`\n * as the section's ROOT surface\n *\n * The host wraps the surface in a per-section navigation stack so related actions\n * (view/edit/create + their back/post-action) drill WITHIN the panel instead of\n * escaping the hub to the global zones. The hub is overlay content, so the\n * surfaces run in the OVERLAY navigation zone, but the host's scoped controller\n * intercepts their navigation — see `SettingsSectionNavigationHost`.\n *\n * @see SettingsSectionNavigationHost.tsx — the per-section navigation stack\n * @see settings-hub.frontend.schemas.ts — `SettingsResourceOperationTarget`\n * @see core/runtime/AppRouter.tsx — `ResourcePageWrapper`, the routed counterpart\n */\nimport React, { useContext, useMemo } from 'react';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport { ApplicationContext } from '~wildo-frontend-lib/core/runtime/ApplicationContext.shared';\nimport { ScopeUtilsService } from '~wildo-frontend-lib/core/scope/scope.utils.frontend.service';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { SettingsSectionNavigationHost } from './SettingsSectionNavigationHost';\n\nexport interface SettingsResourceOperationPanelProps {\n /** Registry resource type (e.g. `organizationMembers`). */\n resourceType: string;\n /** Operation identifier to render (e.g. `list`, `read`). */\n operation: string;\n /** Disambiguates when several operations share the identifier (variant key). */\n operationVariant?: string;\n}\n\n/**\n * Select the operation object matching `operationIdentifier` (+ optional\n * `variantKey`) from a resource config. Mirrors the resolution in\n * `launcher-resolution.ts` (`resolveResourceOperation`): an explicit variant key\n * wins; otherwise prefer the single default, then the single match, else\n * ambiguous → undefined.\n */\nfunction findResourceConfigOperation(\n config: AnyFrontendResourceConfiguration,\n operationIdentifier: string,\n variantKey?: string,\n): FrontendResourceConfiguration_Operation | undefined {\n const operations = Array.isArray(config.operations) ? config.operations : [];\n const matching = operations.filter(op => String(op.operationIdentifier) === operationIdentifier);\n if (matching.length === 0) return undefined;\n\n if (variantKey) {\n return matching.find(op => op.variantKey === variantKey);\n }\n\n const defaults = matching.filter(op => op.isOperationDefault === true);\n if (defaults.length === 1) return defaults[0];\n if (matching.length === 1) return matching[0];\n return undefined;\n}\n\n/** Boundary guard — a misconfigured section must not crash the whole hub. */\nfunction SettingsResourceUnavailable({ message }: { message: string }): React.JSX.Element {\n return <div className=\"p-card text-sm text-muted-foreground\">{message}</div>;\n}\n\nexport function SettingsResourceOperationPanel({\n resourceType,\n operation,\n operationVariant,\n}: SettingsResourceOperationPanelProps): React.JSX.Element {\n const { registry } = useResourceRegistry();\n const appScope = useAppScopeSafe();\n /*\n * The application id comes from APP CONFIG, not from the scope.\n *\n * `AppScopeContext` derives `currentApplicationId` by decoding the access token, and the token's\n * claims carry `userId` and no `applicationId` (measured on the running stack, issue #283), so\n * that value is null in every session. The comment below this hook has always said it injects\n * \"(org/user/app)\" identifiers; the app third never had a value to inject.\n *\n * That was invisible while nothing application-scoped was placed in the hub, and it stops being\n * invisible the moment something is: `primaryScopeToContextIdentifiers` turns the id into the\n * `{ applications: <id> }` context identifier, which is what `buildParentResourcesRequirements`\n * needs to build an APPLICATION-scoped resource's parent edge. Without it the section renders a\n * query with no scope — the section exists, and shows nothing that belongs to this application.\n *\n * Read through `useContext` rather than `useApplication()` because that hook THROWS outside its\n * provider, and a settings panel must not crash the tree that hosts it. The scope value stays as\n * a fallback so adding the claim to the token later needs no second edit here.\n */\n const applicationContext = useContext(ApplicationContext);\n const currentApplicationId = applicationContext?.appIdentity?.applicationId\n ?? appScope?.currentApplicationId\n ?? null;\n\n const resourceContext = useMemo(() => {\n const config = registry.resourceConfigurations[resourceType] as\n | AnyFrontendResourceConfiguration\n | undefined;\n if (!config) return undefined;\n\n const resolvedOperation = findResourceConfigOperation(config, operation, operationVariant);\n if (!resolvedOperation) return undefined;\n\n // Inject the live primary-scope identifiers (org/user/app) so an org-scoped\n // resource resolves to the current organization without a URL param.\n const contextResourceIdentifiers = ScopeUtilsService.buildResourceOperationContextIdentifiers({\n currentUserId: appScope?.currentUserId,\n currentOrganizationId: appScope?.currentOrganizationId,\n currentApplicationId,\n currentAnonymousUserId: appScope?.currentAnonymousUserId,\n primaryScope: config.resourcePrimaryScope,\n liveAppScopeContextResourceIdentifiers: appScope?.buildContextResourceIdentifiers?.(),\n explicitContextResourceIdentifiers: {},\n });\n\n // Derive parent requirements from the injected identifiers (no route params\n // to walk here), so the scoped LIST/READ query carries its org parent edge.\n const parentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType,\n contextResourceIdentifiers,\n registry,\n );\n\n return frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType,\n operation: resolvedOperation,\n contextResourceIdentifiers,\n parentResourcesRequirements,\n });\n }, [registry, resourceType, operation, operationVariant, appScope, currentApplicationId]);\n\n if (!resourceContext) {\n return (\n <SettingsResourceUnavailable\n message={`Settings surface unavailable for ${resourceType} (${operation}).`}\n />\n );\n }\n\n // Host the surface inside the section's own navigation stack, so related\n // actions (view/edit/create + their back/post-action) drill WITHIN this panel\n // instead of escaping the hub to the global zones (and 404-ing on org-scoped\n // routes that aren't registered). The host installs a scoped navigation\n // controller; the surface beneath renders the current stack level.\n //\n // Keyed on what the root ADDRESSES — the scope ids and the operation — because the host seeds its\n // stack from `rootContext` once. The root is rebuilt when the application identity arrives after\n // the hub has mounted (`currentApplicationId` falls back to null until it does), and without a key\n // stack[0] kept the context it mounted with: an application-scoped section querying with no\n // application. Keyed on VALUES, not object identity, so an unrelated re-render never resets a\n // section the reader has drilled into.\n const hostKey = [\n resourceType,\n operation,\n operationVariant ?? '',\n appScope?.currentOrganizationId ?? '',\n appScope?.currentUserId ?? '',\n currentApplicationId ?? '',\n ].join('|');\n return <SettingsSectionNavigationHost key={hostKey} rootContext={resourceContext} />;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SettingsResourceOperationPanel.js","sourceRoot":"","sources":["../../../../../src/components/settings/SettingsResourceOperationPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * SettingsResourceOperationPanel — renders an auto-generated resource surface\n * inside a Settings Hub section.\n *\n * This is the `RESOURCE_OPERATION` target renderer. It produces the exact same\n * `FrontendResourceOperationContext` a routed resource page would, but sources\n * the scope identifiers from live `AppScope` instead of URL params — that is the\n * whole reason org-scoped resources (members, API keys, billing) can render here\n * without a `/organizations/:organizationId/...` route. The recipe mirrors\n * `ResourcePageWrapper` (core/runtime/AppRouter.tsx) minus URL handling:\n *\n * 1. resolve the resource config + the operation object from the registry\n * 2. build `contextResourceIdentifiers` via the SAME\n * `ScopeUtilsService.buildResourceOperationContextIdentifiers` routed pages\n * use — primary-scope defaults injected from `currentOrganizationId` /\n * `currentUserId`, so an `ORGANIZATIONS`-scoped resource gets\n * `{ organizations: <id> }` automatically\n * 3. derive `parentResourcesRequirements` from those identifiers (the\n * context-identifier variant, since there are no route params to walk)\n * 4. build the operation context and hand it to `SettingsSectionNavigationHost`\n * as the section's ROOT surface\n *\n * The host wraps the surface in a per-section navigation stack so related actions\n * (view/edit/create + their back/post-action) drill WITHIN the panel instead of\n * escaping the hub to the global zones. The hub is overlay content, so the\n * surfaces run in the OVERLAY navigation zone, but the host's scoped controller\n * intercepts their navigation — see `SettingsSectionNavigationHost`.\n *\n * @see SettingsSectionNavigationHost.tsx — the per-section navigation stack\n * @see settings-hub.frontend.schemas.ts — `SettingsResourceOperationTarget`\n * @see core/runtime/AppRouter.tsx — `ResourcePageWrapper`, the routed counterpart\n */\nimport React, { useContext, useMemo } from 'react';\nimport { CoreResourceType } from '@wildo-ai/saas-models';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport { useAppScopeSafe } from '~wildo-frontend-lib/core/scope/useAppScope';\nimport { ApplicationContext } from '~wildo-frontend-lib/core/runtime/ApplicationContext.shared';\nimport { ScopeUtilsService } from '~wildo-frontend-lib/core/scope/scope.utils.frontend.service';\nimport { frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { operationAddressesOneRecord } from '~wildo-frontend-lib/core/resources/operation-semantics.frontend.utils';\nimport { isCallerIdentityRecordResource } from '~wildo-frontend-lib/core/resources/caller-identity-record.frontend.utils';\nimport type {\n AnyFrontendResourceConfiguration,\n FrontendResourceConfiguration_Operation,\n} from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport { SettingsSectionNavigationHost } from './SettingsSectionNavigationHost';\n\nexport interface SettingsResourceOperationPanelProps {\n /** Registry resource type (e.g. `organizationMembers`). */\n resourceType: string;\n /** Operation identifier to render (e.g. `list`, `read`). */\n operation: string;\n /** Disambiguates when several operations share the identifier (variant key). */\n operationVariant?: string;\n}\n\n/**\n * Select the operation object matching `operationIdentifier` (+ optional\n * `variantKey`) from a resource config. Mirrors the resolution in\n * `launcher-resolution.ts` (`resolveResourceOperation`): an explicit variant key\n * wins; otherwise prefer the single default, then the single match, else\n * ambiguous → undefined.\n */\nfunction findResourceConfigOperation(\n config: AnyFrontendResourceConfiguration,\n operationIdentifier: string,\n variantKey?: string,\n): FrontendResourceConfiguration_Operation | undefined {\n const operations = Array.isArray(config.operations) ? config.operations : [];\n const matching = operations.filter(op => String(op.operationIdentifier) === operationIdentifier);\n if (matching.length === 0) return undefined;\n\n if (variantKey) {\n return matching.find(op => op.variantKey === variantKey);\n }\n\n const defaults = matching.filter(op => op.isOperationDefault === true);\n if (defaults.length === 1) return defaults[0];\n if (matching.length === 1) return matching[0];\n return undefined;\n}\n\n/** Boundary guard — a misconfigured section must not crash the whole hub. */\nfunction SettingsResourceUnavailable({ message }: { message: string }): React.JSX.Element {\n return <div className=\"p-card text-sm text-muted-foreground\">{message}</div>;\n}\n\nexport function SettingsResourceOperationPanel({\n resourceType,\n operation,\n operationVariant,\n}: SettingsResourceOperationPanelProps): React.JSX.Element {\n const { registry } = useResourceRegistry();\n const appScope = useAppScopeSafe();\n /*\n * The application id comes from APP CONFIG, not from the scope.\n *\n * `AppScopeContext` derives `currentApplicationId` by decoding the access token, and the token's\n * claims carry `userId` and no `applicationId` (measured on the running stack, issue #283), so\n * that value is null in every session. The comment below this hook has always said it injects\n * \"(org/user/app)\" identifiers; the app third never had a value to inject.\n *\n * That was invisible while nothing application-scoped was placed in the hub, and it stops being\n * invisible the moment something is: `primaryScopeToContextIdentifiers` turns the id into the\n * `{ applications: <id> }` context identifier, which is what `buildParentResourcesRequirements`\n * needs to build an APPLICATION-scoped resource's parent edge. Without it the section renders a\n * query with no scope — the section exists, and shows nothing that belongs to this application.\n *\n * Read through `useContext` rather than `useApplication()` because that hook THROWS outside its\n * provider, and a settings panel must not crash the tree that hosts it. The scope value stays as\n * a fallback so adding the claim to the token later needs no second edit here.\n */\n const applicationContext = useContext(ApplicationContext);\n const currentApplicationId = applicationContext?.appIdentity?.applicationId\n ?? appScope?.currentApplicationId\n ?? null;\n\n const resourceContext = useMemo(() => {\n const config = registry.resourceConfigurations[resourceType] as\n | AnyFrontendResourceConfiguration\n | undefined;\n if (!config) return undefined;\n\n const resolvedOperation = findResourceConfigOperation(config, operation, operationVariant);\n if (!resolvedOperation) return undefined;\n\n // Inject the live primary-scope identifiers (org/user/app) so an org-scoped\n // resource resolves to the current organization without a URL param.\n const scopeContextResourceIdentifiers = ScopeUtilsService.buildResourceOperationContextIdentifiers({\n currentUserId: appScope?.currentUserId,\n currentOrganizationId: appScope?.currentOrganizationId,\n currentApplicationId,\n currentAnonymousUserId: appScope?.currentAnonymousUserId,\n primaryScope: config.resourcePrimaryScope,\n liveAppScopeContextResourceIdentifiers: appScope?.buildContextResourceIdentifiers?.(),\n explicitContextResourceIdentifiers: {},\n });\n\n // The record's OWN id, when the record IS the signed-in principal (#2324). A routed page reads it from its URL;\n // here there is none, and the scope identifiers name the principal under its scope type (`users`), not under\n // this resource's own (`user_self`), so an operation on that one record (`deactivate_account`) could not\n // address it and its form failed to load.\n //\n // The record IS the caller's account when `isCallerIdentityRecordResource` says so (its key names the caller and\n // its field identifier is the user's own). Its id is then the caller's user id from the scope, reused, never\n // invented. `users` is never it, so an administrator's pane on another user is never handed the caller's id. A\n // collection verb, or a context that already names the record, is left as it is.\n const ownRecordId = isCallerIdentityRecordResource(config, registry.allResourceFieldIdentifiers)\n && operationAddressesOneRecord(resolvedOperation)\n && scopeContextResourceIdentifiers[resourceType] === undefined\n ? scopeContextResourceIdentifiers[CoreResourceType.USERS]\n : undefined;\n const contextResourceIdentifiers = typeof ownRecordId === 'string'\n ? { ...scopeContextResourceIdentifiers, [resourceType]: ownRecordId }\n : scopeContextResourceIdentifiers;\n\n // Derive parent requirements from the injected identifiers (no route params\n // to walk here), so the scoped LIST/READ query carries its org parent edge.\n const parentResourcesRequirements = frontendResourceUtils.buildParentResourcesRequirements(\n resourceType,\n contextResourceIdentifiers,\n registry,\n );\n\n return frontendResourceUtils.createFrontendResourceOperationContextFromOperation({\n resourceType,\n operation: resolvedOperation,\n contextResourceIdentifiers,\n parentResourcesRequirements,\n });\n }, [registry, resourceType, operation, operationVariant, appScope, currentApplicationId]);\n\n if (!resourceContext) {\n return (\n <SettingsResourceUnavailable\n message={`Settings surface unavailable for ${resourceType} (${operation}).`}\n />\n );\n }\n\n // Host the surface inside the section's own navigation stack, so related\n // actions (view/edit/create + their back/post-action) drill WITHIN this panel\n // instead of escaping the hub to the global zones (and 404-ing on org-scoped\n // routes that aren't registered). The host installs a scoped navigation\n // controller; the surface beneath renders the current stack level.\n //\n // Keyed on what the root ADDRESSES — the scope ids and the operation — because the host seeds its\n // stack from `rootContext` once. The root is rebuilt when the application identity arrives after\n // the hub has mounted (`currentApplicationId` falls back to null until it does), and without a key\n // stack[0] kept the context it mounted with: an application-scoped section querying with no\n // application. Keyed on VALUES, not object identity, so an unrelated re-render never resets a\n // section the reader has drilled into.\n const hostKey = [\n resourceType,\n operation,\n operationVariant ?? '',\n appScope?.currentOrganizationId ?? '',\n appScope?.currentUserId ?? '',\n currentApplicationId ?? '',\n ].join('|');\n return <SettingsSectionNavigationHost key={hostKey} rootContext={resourceContext} />;\n}\n"]}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* vendor that accepts a withdrawal (#545). A bespoke disconnect route would have to repeat each of those, and the first
|
|
19
19
|
* one it forgot would be the gap. One grant is one row for a granted connection, so a disconnect ends one grant.
|
|
20
20
|
*/
|
|
21
|
-
import { CoreResourceType, type LinkedProviderConnectionView } from '@wildo-ai/saas-models';
|
|
21
|
+
import { CoreResourceOperation, CoreResourceType, type LinkedProviderConnectionView } from '@wildo-ai/saas-models';
|
|
22
22
|
import { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';
|
|
23
23
|
import type { ResourceRegistryContextType } from '../../core/resources/ResourceRegistryContext';
|
|
24
24
|
import { frontendResourceUtils } from '../../core/resources/frontend-resource.utils';
|
|
@@ -27,16 +27,19 @@ import { frontendResourceUtils } from '../../core/resources/frontend-resource.ut
|
|
|
27
27
|
* APPLICATION's credential is authored in the deployment environment and has no rows, so it has no resource here.
|
|
28
28
|
*/
|
|
29
29
|
export declare function credentialResourceTypeForOwner(ownerScope: ExternalProvider_Connection_OwnerScope): CoreResourceType | undefined;
|
|
30
|
+
/** The two verbs the connections list calls on one credential row: DELETE to disconnect, UPDATE to enable or disable. */
|
|
31
|
+
export type CredentialRowOperation = CoreResourceOperation.DELETE | CoreResourceOperation.UPDATE;
|
|
30
32
|
/**
|
|
31
|
-
* The resource
|
|
32
|
-
* resources client builds its URL from. `undefined` when the resource or its default API
|
|
33
|
-
* this frontend, which the caller reports rather than guessing a URL.
|
|
33
|
+
* The resource call that acts on ONE credential row of this owner — the operation path and the parameters the
|
|
34
|
+
* resources client builds its URL from. `undefined` when the resource or its default API variant of `operation` is not
|
|
35
|
+
* registered in this frontend, which the caller reports rather than guessing a URL.
|
|
34
36
|
*/
|
|
35
|
-
export declare function
|
|
37
|
+
export declare function buildCredentialRowCall(input: {
|
|
36
38
|
readonly registry: ResourceRegistryContextType['registry'];
|
|
37
39
|
readonly ownerScope: ExternalProvider_Connection_OwnerScope;
|
|
38
40
|
readonly ownerId: string;
|
|
39
41
|
readonly credentialId: string;
|
|
42
|
+
readonly operation: CredentialRowOperation;
|
|
40
43
|
}): {
|
|
41
44
|
operationPathKey: string;
|
|
42
45
|
contextualParameters: Record<string, string | number>;
|
|
@@ -54,6 +57,22 @@ export interface OwnerProviderConnections {
|
|
|
54
57
|
* listing again. Rejects when a row could not be deleted — the caller reports it; rows already deleted stay deleted.
|
|
55
58
|
*/
|
|
56
59
|
readonly disconnect: (connection: LinkedProviderConnectionView) => Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Turn one connection off or back on (#2319): set `enabled` on every row it is made of through the credential
|
|
62
|
+
* resource's own UPDATE, then read the listing again. A disabled row resolves as absent, so every feature the
|
|
63
|
+
* connection serves stops using it while the grant and its answers are kept. Rejects when a row could not be updated.
|
|
64
|
+
*/
|
|
65
|
+
readonly setEnabled: (connection: LinkedProviderConnectionView, enabled: boolean) => Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Write one stored row's free-text description through the credential resource's own UPDATE (#2474), then read the
|
|
68
|
+
* listing again. An empty text clears it. Rejects when the row could not be updated.
|
|
69
|
+
*/
|
|
70
|
+
readonly setCredentialDescription: (credentialId: string, description: string) => Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Remove ONE stored row of a connection made of several (#2474) through the credential resource's own DELETE, then
|
|
73
|
+
* read the listing again. The connection keeps its other rows; ending it whole is `disconnect`.
|
|
74
|
+
*/
|
|
75
|
+
readonly removeCredential: (credentialId: string) => Promise<void>;
|
|
57
76
|
}
|
|
58
77
|
export declare function useOwnerProviderConnections(ownerScope: ExternalProvider_Connection_OwnerScope, ownerId: string | null): OwnerProviderConnections;
|
|
59
78
|
//# sourceMappingURL=useOwnerProviderConnections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOwnerProviderConnections.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/useOwnerProviderConnections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"useOwnerProviderConnections.d.ts","sourceRoot":"","sources":["../../../../../src/components/settings/useOwnerProviderConnections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAIhB,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AAG9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAC;AAE9G,OAAO,EAAyB,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AAI1H;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,sCAAsC,GAAG,gBAAgB,GAAG,SAAS,CAS/H;AAED,yHAAyH;AACzH,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAEjG;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;CAC5C,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAAC,2BAA2B,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,gCAAgC,CAAC,CAAA;CAAE,GAAG,SAAS,CA2B1M;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,4BAA4B,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,sCAAsC,EAClD,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,wBAAwB,CAyH1B"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* vendor that accepts a withdrawal (#545). A bespoke disconnect route would have to repeat each of those, and the first
|
|
19
19
|
* one it forgot would be the gap. One grant is one row for a granted connection, so a disconnect ends one grant.
|
|
20
20
|
*/
|
|
21
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
21
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
22
22
|
import { CoreResourceOperation, CoreResourceType, ResourceOperationVariantType, ResourcesConfig_OperationPathUtils, isWildoBackendError, } from '@wildo-ai/saas-models';
|
|
23
23
|
import { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';
|
|
24
24
|
import { useResourceRegistry } from '../../core/resources/useResourceRegistry.js';
|
|
@@ -41,18 +41,18 @@ export function credentialResourceTypeForOwner(ownerScope) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* The resource
|
|
45
|
-
* resources client builds its URL from. `undefined` when the resource or its default API
|
|
46
|
-
* this frontend, which the caller reports rather than guessing a URL.
|
|
44
|
+
* The resource call that acts on ONE credential row of this owner — the operation path and the parameters the
|
|
45
|
+
* resources client builds its URL from. `undefined` when the resource or its default API variant of `operation` is not
|
|
46
|
+
* registered in this frontend, which the caller reports rather than guessing a URL.
|
|
47
47
|
*/
|
|
48
|
-
export function
|
|
48
|
+
export function buildCredentialRowCall(input) {
|
|
49
49
|
const resourceType = credentialResourceTypeForOwner(input.ownerScope);
|
|
50
50
|
if (resourceType === undefined)
|
|
51
51
|
return undefined;
|
|
52
52
|
const config = input.registry.resourceConfigurations[resourceType];
|
|
53
53
|
if (!config)
|
|
54
54
|
return undefined;
|
|
55
|
-
const operation = config.operations.find((candidate) => candidate.operationIdentifier ===
|
|
55
|
+
const operation = config.operations.find((candidate) => candidate.operationIdentifier === input.operation
|
|
56
56
|
&& candidate.isOperationDefault === true
|
|
57
57
|
&& candidate.isBulkOperation !== true
|
|
58
58
|
&& candidate.variantType === ResourceOperationVariantType.API_CALL);
|
|
@@ -80,14 +80,29 @@ export function useOwnerProviderConnections(ownerScope, ownerId) {
|
|
|
80
80
|
const [loading, setLoading] = useState(true);
|
|
81
81
|
const [failed, setFailed] = useState(false);
|
|
82
82
|
const [generation, setGeneration] = useState(0);
|
|
83
|
+
/**
|
|
84
|
+
* The owner the listing belongs to (set when its fetch starts). `loading` means "nothing to show yet", so it is raised
|
|
85
|
+
* only when the owner changes: a reload after a disconnect or a turn-off keeps the current list (and the focus on it)
|
|
86
|
+
* until the fresh one arrives, instead of swapping the whole list for a loading line (#2319). On an owner change the
|
|
87
|
+
* previous owner's rows are dropped at once: left on screen while the new owner's fetch runs, or after it fails,
|
|
88
|
+
* their buttons would act on the new owner's scope with the old owner's credential ids.
|
|
89
|
+
*/
|
|
90
|
+
const shownOwnerRef = useRef(null);
|
|
83
91
|
useEffect(() => {
|
|
84
92
|
if (ownerId === null) {
|
|
85
93
|
setConnections([]);
|
|
86
94
|
setLoading(false);
|
|
95
|
+
shownOwnerRef.current = null;
|
|
87
96
|
return undefined;
|
|
88
97
|
}
|
|
89
98
|
let cancelled = false;
|
|
90
|
-
|
|
99
|
+
const owner = `${ownerScope}:${ownerId}`;
|
|
100
|
+
if (shownOwnerRef.current !== owner) {
|
|
101
|
+
setConnections([]);
|
|
102
|
+
setFailed(false);
|
|
103
|
+
setLoading(true);
|
|
104
|
+
shownOwnerRef.current = owner;
|
|
105
|
+
}
|
|
91
106
|
(async () => {
|
|
92
107
|
try {
|
|
93
108
|
const answer = await getManualCallsHttpClient().listLinkedProviderConnections({ ownerScope, ownerId });
|
|
@@ -115,7 +130,7 @@ export function useOwnerProviderConnections(ownerScope, ownerId) {
|
|
|
115
130
|
return;
|
|
116
131
|
try {
|
|
117
132
|
for (const credential of connection.credentials) {
|
|
118
|
-
const call =
|
|
133
|
+
const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId: credential.credentialId, operation: CoreResourceOperation.DELETE });
|
|
119
134
|
if (call === undefined) {
|
|
120
135
|
throw new Error(`No DELETE operation is registered for the ${ownerScope} credential resource in this frontend.`);
|
|
121
136
|
}
|
|
@@ -131,6 +146,49 @@ export function useOwnerProviderConnections(ownerScope, ownerId) {
|
|
|
131
146
|
reload();
|
|
132
147
|
}
|
|
133
148
|
}, [doOperation, ownerId, ownerScope, registry, reload]);
|
|
134
|
-
|
|
149
|
+
const setEnabled = useCallback(async (connection, enabled) => {
|
|
150
|
+
if (ownerId === null)
|
|
151
|
+
return;
|
|
152
|
+
try {
|
|
153
|
+
for (const credential of connection.credentials) {
|
|
154
|
+
const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId: credential.credentialId, operation: CoreResourceOperation.UPDATE });
|
|
155
|
+
if (call === undefined) {
|
|
156
|
+
throw new Error(`No UPDATE operation is registered for the ${ownerScope} credential resource in this frontend.`);
|
|
157
|
+
}
|
|
158
|
+
await doOperation(call.operationPathKey, {
|
|
159
|
+
contextualParameters: call.contextualParameters,
|
|
160
|
+
parentResourcesRequirements: call.parentResourcesRequirements,
|
|
161
|
+
requestData: { enabled },
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
reload();
|
|
167
|
+
}
|
|
168
|
+
}, [doOperation, ownerId, ownerScope, registry, reload]);
|
|
169
|
+
/** One stored row, through the credential resource's own operation: the door both acts below share. */
|
|
170
|
+
const actOnCredential = useCallback(async (credentialId, operation, requestData) => {
|
|
171
|
+
if (ownerId === null)
|
|
172
|
+
return;
|
|
173
|
+
try {
|
|
174
|
+
const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId, operation });
|
|
175
|
+
if (call === undefined) {
|
|
176
|
+
throw new Error(`No ${operation} operation is registered for the ${ownerScope} credential resource in this frontend.`);
|
|
177
|
+
}
|
|
178
|
+
await doOperation(call.operationPathKey, {
|
|
179
|
+
contextualParameters: call.contextualParameters,
|
|
180
|
+
parentResourcesRequirements: call.parentResourcesRequirements,
|
|
181
|
+
...(requestData === undefined ? {} : { requestData }),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
reload();
|
|
186
|
+
}
|
|
187
|
+
}, [doOperation, ownerId, ownerScope, registry, reload]);
|
|
188
|
+
const setCredentialDescription = useCallback(
|
|
189
|
+
// `null` clears the field; an empty string would store an empty note.
|
|
190
|
+
(credentialId, description) => actOnCredential(credentialId, CoreResourceOperation.UPDATE, { description: description.trim() === '' ? null : description.trim() }), [actOnCredential]);
|
|
191
|
+
const removeCredential = useCallback((credentialId) => actOnCredential(credentialId, CoreResourceOperation.DELETE), [actOnCredential]);
|
|
192
|
+
return { connections, loading, failed, reload, disconnect, setEnabled, setCredentialDescription, removeCredential };
|
|
135
193
|
}
|
|
136
194
|
//# sourceMappingURL=useOwnerProviderConnections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOwnerProviderConnections.js","sourceRoot":"","sources":["../../../../../src/components/settings/useOwnerProviderConnections.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The connections one owner holds, and the one way this screen ends one (#1727).\n *\n * Separated from `AppPage_ConnectedAccountsSettings.tsx` so the component file keeps exporting components (React Fast\n * Refresh) and so the two acts — listing and disconnecting — can be read and pinned apart from the rendering.\n *\n * ## Listed per CONNECTION\n *\n * `GET /connections/linked` answers one entry per connection, not per ref: a vendor served by several refs holds one\n * grant (#1670, #1725), and the credential resource's rows expose only the ref that CREATED each row, which is how a\n * person came to see one Microsoft account per ref.\n *\n * ## Disconnected through the credential resource's OWN delete — never a second door\n *\n * Each row the listing names is deleted with the credential resource's DELETE operation, resolved from the resource\n * registry exactly as any resource surface resolves it. That door already authorizes, asks for step-up where the\n * operation requires it (the resources client's step-up handler), records who revoked the grant, and withdraws it at a\n * vendor that accepts a withdrawal (#545). A bespoke disconnect route would have to repeat each of those, and the first\n * one it forgot would be the gap. One grant is one row for a granted connection, so a disconnect ends one grant.\n */\n\nimport { useCallback, useEffect, useState } from 'react';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n isWildoBackendError,\n type LinkedProviderConnectionView,\n} from '@wildo-ai/saas-models';\nimport { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport type { ResourceRegistryContextType } from '~wildo-frontend-lib/core/resources/ResourceRegistryContext';\nimport { ScopeUtilsService } from '~wildo-frontend-lib/core/scope/scope.utils.frontend.service';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { clearProviderScopeReauthorizationOffer } from '~wildo-frontend-lib/core/external-providers/provider-scope-reauthorization-offers.frontend';\n\n/**\n * The credential resource that holds an owner's rows. Total over the two scopes a person can hold connections at; the\n * APPLICATION's credential is authored in the deployment environment and has no rows, so it has no resource here.\n */\nexport function credentialResourceTypeForOwner(ownerScope: ExternalProvider_Connection_OwnerScope): CoreResourceType | undefined {\n switch (ownerScope) {\n case ExternalProvider_Connection_OwnerScope.USER:\n return CoreResourceType.USER_PROVIDER_CREDENTIALS;\n case ExternalProvider_Connection_OwnerScope.ORGANIZATION:\n return CoreResourceType.ORG_PROVIDER_CREDENTIALS;\n case ExternalProvider_Connection_OwnerScope.APPLICATION:\n return undefined;\n }\n}\n\n/**\n * The resource DELETE call that removes ONE credential row of this owner — the operation path and the parameters the\n * resources client builds its URL from. `undefined` when the resource or its default API DELETE is not registered in\n * this frontend, which the caller reports rather than guessing a URL.\n */\nexport function buildCredentialDeleteCall(input: {\n readonly registry: ResourceRegistryContextType['registry'];\n readonly ownerScope: ExternalProvider_Connection_OwnerScope;\n readonly ownerId: string;\n readonly credentialId: string;\n}): { operationPathKey: string; contextualParameters: Record<string, string | number>; parentResourcesRequirements: ReturnType<typeof frontendResourceUtils.buildParentResourcesRequirements> } | undefined {\n const resourceType = credentialResourceTypeForOwner(input.ownerScope);\n if (resourceType === undefined) return undefined;\n const config = input.registry.resourceConfigurations[resourceType];\n if (!config) return undefined;\n const operation = config.operations.find((candidate) =>\n candidate.operationIdentifier === CoreResourceOperation.DELETE\n && candidate.isOperationDefault === true\n && candidate.isBulkOperation !== true\n && candidate.variantType === ResourceOperationVariantType.API_CALL);\n if (!operation) return undefined;\n\n // The owner is the scope the row lives under, then the row itself — the same identifiers a resource surface of this\n // owner carries, built by the same scope utility.\n const contextResourceIdentifiers = {\n ...ScopeUtilsService.buildResourceOperationContextIdentifiers({\n ...(input.ownerScope === ExternalProvider_Connection_OwnerScope.USER ? { currentUserId: input.ownerId } : { currentOrganizationId: input.ownerId }),\n primaryScope: config.resourcePrimaryScope,\n explicitContextResourceIdentifiers: {},\n }),\n [resourceType]: input.credentialId,\n };\n return {\n operationPathKey: ResourcesConfig_OperationPathUtils.buildOperationPathKeyFromOperation(operation),\n contextualParameters: FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, input.registry),\n parentResourcesRequirements: frontendResourceUtils.buildParentResourcesRequirements(resourceType, contextResourceIdentifiers, input.registry),\n };\n}\n\nexport interface OwnerProviderConnections {\n readonly connections: readonly LinkedProviderConnectionView[];\n readonly loading: boolean;\n /** The listing could not be read — a distinct state from \"nothing connected\". */\n readonly failed: boolean;\n /** Read the listing again, after anything that changed it. */\n readonly reload: () => void;\n /**\n * End one connection: delete every row it is made of through the credential resource's DELETE, then read the\n * listing again. Rejects when a row could not be deleted — the caller reports it; rows already deleted stay deleted.\n */\n readonly disconnect: (connection: LinkedProviderConnectionView) => Promise<void>;\n}\n\nexport function useOwnerProviderConnections(\n ownerScope: ExternalProvider_Connection_OwnerScope,\n ownerId: string | null,\n): OwnerProviderConnections {\n const { registry, doOperation } = useResourceRegistry();\n const [connections, setConnections] = useState<readonly LinkedProviderConnectionView[]>([]);\n const [loading, setLoading] = useState(true);\n const [failed, setFailed] = useState(false);\n const [generation, setGeneration] = useState(0);\n\n useEffect(() => {\n if (ownerId === null) {\n setConnections([]);\n setLoading(false);\n return undefined;\n }\n let cancelled = false;\n setLoading(true);\n (async () => {\n try {\n const answer = await getManualCallsHttpClient().listLinkedProviderConnections({ ownerScope, ownerId });\n if (!cancelled) {\n setConnections(answer.connections ?? []);\n setFailed(false);\n }\n } catch (error: unknown) {\n if (isWildoBackendError(error)) throw error;\n if (!cancelled) setFailed(true);\n } finally {\n if (!cancelled) setLoading(false);\n }\n })();\n return () => { cancelled = true; };\n }, [ownerScope, ownerId, generation]);\n\n const reload = useCallback(() => setGeneration((value) => value + 1), []);\n\n const disconnect = useCallback(async (connection: LinkedProviderConnectionView) => {\n if (ownerId === null) return;\n try {\n for (const credential of connection.credentials) {\n const call = buildCredentialDeleteCall({ registry, ownerScope, ownerId, credentialId: credential.credentialId });\n if (call === undefined) {\n throw new Error(`No DELETE operation is registered for the ${ownerScope} credential resource in this frontend.`);\n }\n await doOperation(call.operationPathKey, {\n contextualParameters: call.contextualParameters,\n parentResourcesRequirements: call.parentResourcesRequirements,\n });\n }\n // An offer to grow a grant that no longer exists is an offer nobody can take.\n clearProviderScopeReauthorizationOffer({ ownerScope, ownerId }, connection.connectionRef);\n } finally {\n reload();\n }\n }, [doOperation, ownerId, ownerScope, registry, reload]);\n\n return { connections, loading, failed, reload, disconnect };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useOwnerProviderConnections.js","sourceRoot":"","sources":["../../../../../src/components/settings/useOwnerProviderConnections.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The connections one owner holds, and the one way this screen ends one (#1727).\n *\n * Separated from `AppPage_ConnectedAccountsSettings.tsx` so the component file keeps exporting components (React Fast\n * Refresh) and so the two acts — listing and disconnecting — can be read and pinned apart from the rendering.\n *\n * ## Listed per CONNECTION\n *\n * `GET /connections/linked` answers one entry per connection, not per ref: a vendor served by several refs holds one\n * grant (#1670, #1725), and the credential resource's rows expose only the ref that CREATED each row, which is how a\n * person came to see one Microsoft account per ref.\n *\n * ## Disconnected through the credential resource's OWN delete — never a second door\n *\n * Each row the listing names is deleted with the credential resource's DELETE operation, resolved from the resource\n * registry exactly as any resource surface resolves it. That door already authorizes, asks for step-up where the\n * operation requires it (the resources client's step-up handler), records who revoked the grant, and withdraws it at a\n * vendor that accepts a withdrawal (#545). A bespoke disconnect route would have to repeat each of those, and the first\n * one it forgot would be the gap. One grant is one row for a granted connection, so a disconnect ends one grant.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n CoreResourceOperation,\n CoreResourceType,\n ResourceOperationVariantType,\n ResourcesConfig_OperationPathUtils,\n isWildoBackendError,\n type LinkedProviderConnectionView,\n} from '@wildo-ai/saas-models';\nimport { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';\n\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\nimport type { ResourceRegistryContextType } from '~wildo-frontend-lib/core/resources/ResourceRegistryContext';\nimport { ScopeUtilsService } from '~wildo-frontend-lib/core/scope/scope.utils.frontend.service';\nimport { FrontendResourceUtils, frontendResourceUtils } from '~wildo-frontend-lib/core/resources/frontend-resource.utils';\nimport { getManualCallsHttpClient } from '~wildo-frontend-lib/core/requests/wildo-http-client-manual-calls.frontend.service';\nimport { clearProviderScopeReauthorizationOffer } from '~wildo-frontend-lib/core/external-providers/provider-scope-reauthorization-offers.frontend';\n\n/**\n * The credential resource that holds an owner's rows. Total over the two scopes a person can hold connections at; the\n * APPLICATION's credential is authored in the deployment environment and has no rows, so it has no resource here.\n */\nexport function credentialResourceTypeForOwner(ownerScope: ExternalProvider_Connection_OwnerScope): CoreResourceType | undefined {\n switch (ownerScope) {\n case ExternalProvider_Connection_OwnerScope.USER:\n return CoreResourceType.USER_PROVIDER_CREDENTIALS;\n case ExternalProvider_Connection_OwnerScope.ORGANIZATION:\n return CoreResourceType.ORG_PROVIDER_CREDENTIALS;\n case ExternalProvider_Connection_OwnerScope.APPLICATION:\n return undefined;\n }\n}\n\n/** The two verbs the connections list calls on one credential row: DELETE to disconnect, UPDATE to enable or disable. */\nexport type CredentialRowOperation = CoreResourceOperation.DELETE | CoreResourceOperation.UPDATE;\n\n/**\n * The resource call that acts on ONE credential row of this owner — the operation path and the parameters the\n * resources client builds its URL from. `undefined` when the resource or its default API variant of `operation` is not\n * registered in this frontend, which the caller reports rather than guessing a URL.\n */\nexport function buildCredentialRowCall(input: {\n readonly registry: ResourceRegistryContextType['registry'];\n readonly ownerScope: ExternalProvider_Connection_OwnerScope;\n readonly ownerId: string;\n readonly credentialId: string;\n readonly operation: CredentialRowOperation;\n}): { operationPathKey: string; contextualParameters: Record<string, string | number>; parentResourcesRequirements: ReturnType<typeof frontendResourceUtils.buildParentResourcesRequirements> } | undefined {\n const resourceType = credentialResourceTypeForOwner(input.ownerScope);\n if (resourceType === undefined) return undefined;\n const config = input.registry.resourceConfigurations[resourceType];\n if (!config) return undefined;\n const operation = config.operations.find((candidate) =>\n candidate.operationIdentifier === input.operation\n && candidate.isOperationDefault === true\n && candidate.isBulkOperation !== true\n && candidate.variantType === ResourceOperationVariantType.API_CALL);\n if (!operation) return undefined;\n\n // The owner is the scope the row lives under, then the row itself — the same identifiers a resource surface of this\n // owner carries, built by the same scope utility.\n const contextResourceIdentifiers = {\n ...ScopeUtilsService.buildResourceOperationContextIdentifiers({\n ...(input.ownerScope === ExternalProvider_Connection_OwnerScope.USER ? { currentUserId: input.ownerId } : { currentOrganizationId: input.ownerId }),\n primaryScope: config.resourcePrimaryScope,\n explicitContextResourceIdentifiers: {},\n }),\n [resourceType]: input.credentialId,\n };\n return {\n operationPathKey: ResourcesConfig_OperationPathUtils.buildOperationPathKeyFromOperation(operation),\n contextualParameters: FrontendResourceUtils.buildContextualParameters(contextResourceIdentifiers, input.registry),\n parentResourcesRequirements: frontendResourceUtils.buildParentResourcesRequirements(resourceType, contextResourceIdentifiers, input.registry),\n };\n}\n\nexport interface OwnerProviderConnections {\n readonly connections: readonly LinkedProviderConnectionView[];\n readonly loading: boolean;\n /** The listing could not be read — a distinct state from \"nothing connected\". */\n readonly failed: boolean;\n /** Read the listing again, after anything that changed it. */\n readonly reload: () => void;\n /**\n * End one connection: delete every row it is made of through the credential resource's DELETE, then read the\n * listing again. Rejects when a row could not be deleted — the caller reports it; rows already deleted stay deleted.\n */\n readonly disconnect: (connection: LinkedProviderConnectionView) => Promise<void>;\n /**\n * Turn one connection off or back on (#2319): set `enabled` on every row it is made of through the credential\n * resource's own UPDATE, then read the listing again. A disabled row resolves as absent, so every feature the\n * connection serves stops using it while the grant and its answers are kept. Rejects when a row could not be updated.\n */\n readonly setEnabled: (connection: LinkedProviderConnectionView, enabled: boolean) => Promise<void>;\n /**\n * Write one stored row's free-text description through the credential resource's own UPDATE (#2474), then read the\n * listing again. An empty text clears it. Rejects when the row could not be updated.\n */\n readonly setCredentialDescription: (credentialId: string, description: string) => Promise<void>;\n /**\n * Remove ONE stored row of a connection made of several (#2474) through the credential resource's own DELETE, then\n * read the listing again. The connection keeps its other rows; ending it whole is `disconnect`.\n */\n readonly removeCredential: (credentialId: string) => Promise<void>;\n}\n\nexport function useOwnerProviderConnections(\n ownerScope: ExternalProvider_Connection_OwnerScope,\n ownerId: string | null,\n): OwnerProviderConnections {\n const { registry, doOperation } = useResourceRegistry();\n const [connections, setConnections] = useState<readonly LinkedProviderConnectionView[]>([]);\n const [loading, setLoading] = useState(true);\n const [failed, setFailed] = useState(false);\n const [generation, setGeneration] = useState(0);\n /**\n * The owner the listing belongs to (set when its fetch starts). `loading` means \"nothing to show yet\", so it is raised\n * only when the owner changes: a reload after a disconnect or a turn-off keeps the current list (and the focus on it)\n * until the fresh one arrives, instead of swapping the whole list for a loading line (#2319). On an owner change the\n * previous owner's rows are dropped at once: left on screen while the new owner's fetch runs, or after it fails,\n * their buttons would act on the new owner's scope with the old owner's credential ids.\n */\n const shownOwnerRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (ownerId === null) {\n setConnections([]);\n setLoading(false);\n shownOwnerRef.current = null;\n return undefined;\n }\n let cancelled = false;\n const owner = `${ownerScope}:${ownerId}`;\n if (shownOwnerRef.current !== owner) {\n setConnections([]);\n setFailed(false);\n setLoading(true);\n shownOwnerRef.current = owner;\n }\n (async () => {\n try {\n const answer = await getManualCallsHttpClient().listLinkedProviderConnections({ ownerScope, ownerId });\n if (!cancelled) {\n setConnections(answer.connections ?? []);\n setFailed(false);\n }\n } catch (error: unknown) {\n if (isWildoBackendError(error)) throw error;\n if (!cancelled) setFailed(true);\n } finally {\n if (!cancelled) setLoading(false);\n }\n })();\n return () => { cancelled = true; };\n }, [ownerScope, ownerId, generation]);\n\n const reload = useCallback(() => setGeneration((value) => value + 1), []);\n\n const disconnect = useCallback(async (connection: LinkedProviderConnectionView) => {\n if (ownerId === null) return;\n try {\n for (const credential of connection.credentials) {\n const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId: credential.credentialId, operation: CoreResourceOperation.DELETE });\n if (call === undefined) {\n throw new Error(`No DELETE operation is registered for the ${ownerScope} credential resource in this frontend.`);\n }\n await doOperation(call.operationPathKey, {\n contextualParameters: call.contextualParameters,\n parentResourcesRequirements: call.parentResourcesRequirements,\n });\n }\n // An offer to grow a grant that no longer exists is an offer nobody can take.\n clearProviderScopeReauthorizationOffer({ ownerScope, ownerId }, connection.connectionRef);\n } finally {\n reload();\n }\n }, [doOperation, ownerId, ownerScope, registry, reload]);\n\n const setEnabled = useCallback(async (connection: LinkedProviderConnectionView, enabled: boolean) => {\n if (ownerId === null) return;\n try {\n for (const credential of connection.credentials) {\n const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId: credential.credentialId, operation: CoreResourceOperation.UPDATE });\n if (call === undefined) {\n throw new Error(`No UPDATE operation is registered for the ${ownerScope} credential resource in this frontend.`);\n }\n await doOperation(call.operationPathKey, {\n contextualParameters: call.contextualParameters,\n parentResourcesRequirements: call.parentResourcesRequirements,\n requestData: { enabled },\n });\n }\n } finally {\n reload();\n }\n }, [doOperation, ownerId, ownerScope, registry, reload]);\n\n /** One stored row, through the credential resource's own operation: the door both acts below share. */\n const actOnCredential = useCallback(async (\n credentialId: string,\n operation: CredentialRowOperation,\n requestData?: Record<string, unknown>,\n ) => {\n if (ownerId === null) return;\n try {\n const call = buildCredentialRowCall({ registry, ownerScope, ownerId, credentialId, operation });\n if (call === undefined) {\n throw new Error(`No ${operation} operation is registered for the ${ownerScope} credential resource in this frontend.`);\n }\n await doOperation(call.operationPathKey, {\n contextualParameters: call.contextualParameters,\n parentResourcesRequirements: call.parentResourcesRequirements,\n ...(requestData === undefined ? {} : { requestData }),\n });\n } finally {\n reload();\n }\n }, [doOperation, ownerId, ownerScope, registry, reload]);\n\n const setCredentialDescription = useCallback(\n // `null` clears the field; an empty string would store an empty note.\n (credentialId: string, description: string) => actOnCredential(credentialId, CoreResourceOperation.UPDATE, { description: description.trim() === '' ? null : description.trim() }),\n [actOnCredential],\n );\n const removeCredential = useCallback(\n (credentialId: string) => actOnCredential(credentialId, CoreResourceOperation.DELETE),\n [actOnCredential],\n );\n\n return { connections, loading, failed, reload, disconnect, setEnabled, setCredentialDescription, removeCredential };\n}\n"]}
|
|
@@ -42,7 +42,7 @@ export const ChartView = ({ viewRef, document: documentProp, viewDefinition: vie
|
|
|
42
42
|
const { registry } = useResourceRegistry();
|
|
43
43
|
const { getChartStylePreset, isDark } = useUI();
|
|
44
44
|
const chartStylePreset = getChartStylePreset();
|
|
45
|
-
const { t, isReady } = useI18n({ component: FrontendComponentType.HIGH_LEVEL_VIEWS_CHART });
|
|
45
|
+
const { t, isReady, resolvedRegionalPreferences } = useI18n({ component: FrontendComponentType.HIGH_LEVEL_VIEWS_CHART });
|
|
46
46
|
const resizeObserverRef = useRef(null);
|
|
47
47
|
const echartsRef = useRef(null);
|
|
48
48
|
// Register/update chart theme with current style preset
|
|
@@ -136,8 +136,8 @@ export const ChartView = ({ viewRef, document: documentProp, viewDefinition: vie
|
|
|
136
136
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
137
|
[definition, registry, isDark, tResourceFieldEnumValue, isResourceLabelsReady]);
|
|
138
138
|
const option = useMemo(() => (definition && data && data.data.length > 0)
|
|
139
|
-
? buildEChartsOption(definition, data, undefined, chartStylePreset, t, dimensionEnumMeta)
|
|
140
|
-
: null, [definition, data, chartStylePreset, t, dimensionEnumMeta]);
|
|
139
|
+
? buildEChartsOption(definition, data, undefined, chartStylePreset, t, dimensionEnumMeta, resolvedRegionalPreferences.locale)
|
|
140
|
+
: null, [definition, data, chartStylePreset, t, dimensionEnumMeta, resolvedRegionalPreferences.locale]);
|
|
141
141
|
// Not found
|
|
142
142
|
if (!definition) {
|
|
143
143
|
return _jsx(ViewNotFound, { viewKind: "chart", viewRef: viewRef });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartView.js","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/ChartView.tsx"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartView — ECharts-based chart component\n *\n * Fetches data from backend via POST /api/charts/:chartRef/data,\n * combines with the visual encoding from the chart definition,\n * and renders via ECharts.\n *\n * This file is lazy-loaded via React.lazy() in AppRouter.\n * ────────────────────────────────────────────────────────────── */\n\nimport React, { useRef, useCallback, useMemo } from 'react';\nimport type { ChartDefinition, ChartInputValues } from '@wildo-ai/saas-models';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { ViewNotFound } from '~wildo-frontend-lib/components/views/ViewNotFound';\nimport { useChartData } from './chart-view.utils';\nimport { useResolvedChartRuntimeDescriptor } from './chart-runtime.utils';\nimport { useChartTheme, getWildoThemeName } from './chart-theme-bridge';\nimport { buildDimensionEnumMeta } from './enum-color-bridge';\nimport { buildEChartsOption } from './option-builder/echarts-option-builder';\nimport { ChartLoadingSkeleton } from './ChartLoadingSkeleton';\nimport { ChartErrorState } from './ChartErrorState';\nimport { ChartEmptyState } from './ChartEmptyState';\nimport {\n buildResolvedInsertedChartDescriptor,\n resolveInsertedChartView,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type {\n InsertedChartDeclaration,\n ResolvedInsertedChartDescriptor,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\n\n// Direct ECharts binding. Replaces `echarts-for-react`, whose `'finished'`-gated\n// double-init hangs on ECharts 6.0.0 (see WildoEChart for the full analysis).\n// ECharts stays behind this file's app-level React.lazy boundary via WildoEChart's\n// static `echarts-setup` import.\nimport { WildoEChart } from './WildoEChart';\n\nexport interface ChartViewProps {\n /** View reference — resolved from UIContext internally. */\n viewRef?: string;\n /** Pre-resolved bare chart definition. Useful for dev previews and direct renderers. */\n document?: ChartDefinition;\n /** Pre-resolved chart surface definition. When provided, `viewRef` is ignored. */\n viewDefinition?: InsertedChartDeclaration;\n /** Pre-resolved runtime descriptor for inserted or already-bound charts. */\n runtimeDescriptor?: ResolvedInsertedChartDescriptor;\n /** Explicit navigation-time or host-time context bindings. */\n contextResourceIdentifiers?: Record<string, string>;\n /** Explicit standalone-route URL param values for URL_PARAM chart bindings. */\n urlParamValues?: Record<string, string>;\n /** Explicit chart input overrides. These win over binding/default-derived values. */\n inputs?: ChartInputValues;\n /** Custom class name */\n className?: string;\n /** Width */\n width?: string | number;\n /** Height */\n height?: string | number;\n /**\n * When true, a data-fetch failure degrades LOCALLY (this chart card shows the\n * error, with retry) WITHOUT raising the global error toast. Set by EMBEDDED\n * hosts (composite tiles, detail-page charts) so one sub-surface's 403/5xx does\n * not read as a page-level failure. Standalone chart pages leave it `false` and\n * keep the global error pipeline. The error is still emitted/logged either way.\n */\n localErrorOnly?: boolean;\n}\n\n/**\n * ChartView — renders an ECharts chart from a ChartDefinition.\n *\n * Data flow:\n * 1. Resolve definition from UIContext or props\n * 2. Fetch aggregated data from backend\n * 3. Build ECharts option from definition + data\n * 4. Render with echarts-for-react\n */\nexport const ChartView: React.FC<ChartViewProps> = ({\n viewRef,\n document: documentProp,\n viewDefinition: viewDefinitionProp,\n runtimeDescriptor,\n contextResourceIdentifiers,\n urlParamValues,\n inputs,\n className = '',\n width = '100%',\n height = 400,\n localErrorOnly = false,\n}) => {\n const { registry } = useResourceRegistry();\n const { getChartStylePreset, isDark } = useUI();\n const chartStylePreset = getChartStylePreset();\n const { t, isReady } = useI18n({ component: FrontendComponentType.HIGH_LEVEL_VIEWS_CHART });\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const echartsRef = useRef<any>(null);\n\n // Register/update chart theme with current style preset\n useChartTheme(chartStylePreset);\n\n const resolvedInsertedChart = useMemo(\n () => (viewDefinitionProp ? undefined : resolveInsertedChartView({ viewRef, registry })),\n [viewDefinitionProp, viewRef, registry],\n );\n const viewDefinition = viewDefinitionProp ?? resolvedInsertedChart?.chartView;\n const effectiveRuntimeDescriptor = useMemo(\n () => runtimeDescriptor ?? (\n resolvedInsertedChart\n ? buildResolvedInsertedChartDescriptor({\n identity: resolvedInsertedChart.identity,\n chartView: resolvedInsertedChart.chartView,\n contextResourceIdentifiers: contextResourceIdentifiers ?? {},\n })\n : undefined\n ),\n [runtimeDescriptor, resolvedInsertedChart, contextResourceIdentifiers],\n );\n const runtime = useResolvedChartRuntimeDescriptor({\n surfaceDefinition: viewDefinition,\n chartDefinition: documentProp,\n runtimeDescriptor: effectiveRuntimeDescriptor,\n explicitContextResourceIdentifiers: contextResourceIdentifiers,\n explicitInputs: inputs,\n urlParamValues,\n });\n const definition = runtime?.chartDefinition;\n\n // Fetch chart data\n const { data, loading, error, refetch } = useChartData(\n definition,\n runtime?.executionChartRef,\n runtime?.resolvedInputs,\n runtime?.contextResourceIdentifiers,\n urlParamValues,\n localErrorOnly,\n );\n\n // ResizeObserver for container.\n //\n // ECharts reflows to the container natively via `instance.resize()`; we do NOT\n // rebuild the ECharts `option` on resize. An earlier implementation pushed the\n // observed size into React state (a `containerSize` that fed `buildEChartsOption`\n // and sat in the `option` useMemo deps), so every resize tick produced a brand-new\n // option object. Combined with `notMerge`+`lazyUpdate` below, that scheduled a\n // frame-deferred atomic option replacement that raced the in-flight `resize()`\n // relayout — surfacing as `Cannot read properties of undefined (reading 'group')`\n // in ECharts' `CartesianAxisView.render` one frame late, plus the tell-tale\n // \"ResizeObserver loop completed with undelivered notifications\" (the observer\n // callback's state update re-triggered layout). `containerSize` was in any case\n // dead context — no chart-type builder reads it — so dropping the rebuild is\n // behaviour-preserving. Native resize is the whole job here.\n // The observer must arm when the REAL container mounts, which happens strictly\n // AFTER the loading/error/empty early returns below stop short-circuiting —\n // i.e. potentially many renders after the initial mount. A mount-time\n // `useEffect(…, [])` reading a plain ref (the previous implementation) ran\n // exactly once, while the container was still null (the first render always\n // takes the loading/skeleton branch), so the observer NEVER armed and charts\n // never reflowed to container resizes. A callback ref is the structural fix:\n // React invokes it at the moment the container node attaches (and with `null`\n // when it detaches, including unmount), so arming/disarming exactly tracks the\n // real DOM node regardless of which render branch produced it.\n const containerRefCallback = useCallback((el: HTMLDivElement | null) => {\n resizeObserverRef.current?.disconnect();\n resizeObserverRef.current = null;\n if (!el) return;\n\n const observer = new ResizeObserver(() => {\n const instance = echartsRef.current?.getEchartsInstance?.();\n // Guard against a disposed instance: on theme toggle the chart remounts\n // (see the `key` prop below) and the observer closure can fire against an\n // instance that ECharts has already torn down — `resize()` would throw.\n if (instance && !instance.isDisposed?.()) {\n instance.resize();\n }\n });\n\n observer.observe(el);\n resizeObserverRef.current = observer;\n }, []);\n\n // Save echarts instance ref\n const onChartReady = useCallback((instance: unknown) => {\n echartsRef.current = { getEchartsInstance: () => instance };\n }, []);\n\n // Build ECharts option — memoized, placed before early returns to respect Rules of Hooks.\n // Deliberately NOT keyed on container size: the option carries no size-dependent\n // fields (no builder reads `containerSize`), and rebuilding it on resize is what\n // raced the native `resize()` into the `CartesianAxisView` crash (see the observer\n // above). The option now rebuilds only on genuine content/appearance changes.\n // Enum coherence: when a chart dimension is an enum, resolve — once, from the\n // resource registry's decorated schema — both the value→color map (slices/bars\n // match the value's badge) and the enum's declared member order (categories sort\n // by declaration order, not the backend's alphabetical order). Keyed on `isDark`\n // because the colors resolve live CSS vars (`--info`, `--muted-foreground`, …)\n // that flip with the theme; ChartView does not remount on toggle (only its child\n // chart does), so without this the memo would keep the previous mode's colors.\n // See `enum-color-bridge.ts`.\n //\n // Labels ride the same pass: an enum dimension's values are DISPLAYED through the i18n tree (axis\n // categories, slice and split names) while the data stays keyed on the raw value. The resource's\n // label bundle is requested here so its enum labels are loaded before the chart renders.\n const { tResourceFieldEnumValue, isReady: isResourceLabelsReady } = useI18n({ resource: definition?.dataQuery.mainResourceType });\n const dimensionEnumMeta = useMemo(\n () => (definition\n ? buildDimensionEnumMeta(definition, (type) => registry.resourceConfigurations[type], tResourceFieldEnumValue)\n : { colors: {}, order: {}, labels: {} }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [definition, registry, isDark, tResourceFieldEnumValue, isResourceLabelsReady],\n );\n\n const option = useMemo(\n () => (definition && data && data.data.length > 0)\n ? buildEChartsOption(definition, data, undefined, chartStylePreset, t, dimensionEnumMeta)\n : null,\n [definition, data, chartStylePreset, t, dimensionEnumMeta],\n );\n\n // Not found\n if (!definition) {\n return <ViewNotFound viewKind=\"chart\" viewRef={viewRef} />;\n }\n\n // Loading\n if (loading && !data) {\n return <ChartLoadingSkeleton height={height} />;\n }\n\n // Error\n if (error) {\n return <ChartErrorState error={error} onRetry={refetch} />;\n }\n\n // Empty\n if (!option) {\n return <ChartEmptyState />;\n }\n\n if (!isReady || !isResourceLabelsReady) return null;\n\n return (\n <div\n ref={containerRefCallback}\n className={cn('chart-view', className)}\n style={{ width, height, position: 'relative' }}\n >\n <WildoEChart\n // Remount on dark-mode toggle: the theme name is stable but its content\n // is re-registered, and ECharts bakes the theme at init time.\n key={isDark ? 'dark' : 'light'}\n option={option}\n theme={getWildoThemeName()}\n style={{ width: '100%', height: '100%' }}\n notMerge={true}\n // lazyUpdate MUST stay false. With lazyUpdate={true}, ECharts 6 defers\n // the setOption flush to its next animation frame (`_onframe`); ECharts\n // 6.0.0 then crashes on that deferred path for cartesian charts —\n // `CartesianAxisView.render` dereferences `axisModel.axis.axisBuilder\n // .group` while `axisBuilder` is still undefined (ECharts 6 \"promoted\"\n // axis-element building to the coordinate-system resize stage, but the\n // deferred-flush ordering skips it). Symptom: `TypeError: Cannot read\n // properties of undefined (reading 'group')`. A synchronous flush runs\n // the full resize→render pipeline in order and renders cleanly with\n // animation intact.\n lazyUpdate={false}\n onChartReady={onChartReady}\n />\n </div>\n );\n};\n\nexport default ChartView;\n"]}
|
|
1
|
+
{"version":3,"file":"ChartView.js","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/ChartView.tsx"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartView — ECharts-based chart component\n *\n * Fetches data from backend via POST /api/charts/:chartRef/data,\n * combines with the visual encoding from the chart definition,\n * and renders via ECharts.\n *\n * This file is lazy-loaded via React.lazy() in AppRouter.\n * ────────────────────────────────────────────────────────────── */\n\nimport React, { useRef, useCallback, useMemo } from 'react';\nimport type { ChartDefinition, ChartInputValues } from '@wildo-ai/saas-models';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { ViewNotFound } from '~wildo-frontend-lib/components/views/ViewNotFound';\nimport { useChartData } from './chart-view.utils';\nimport { useResolvedChartRuntimeDescriptor } from './chart-runtime.utils';\nimport { useChartTheme, getWildoThemeName } from './chart-theme-bridge';\nimport { buildDimensionEnumMeta } from './enum-color-bridge';\nimport { buildEChartsOption } from './option-builder/echarts-option-builder';\nimport { ChartLoadingSkeleton } from './ChartLoadingSkeleton';\nimport { ChartErrorState } from './ChartErrorState';\nimport { ChartEmptyState } from './ChartEmptyState';\nimport {\n buildResolvedInsertedChartDescriptor,\n resolveInsertedChartView,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport type {\n InsertedChartDeclaration,\n ResolvedInsertedChartDescriptor,\n} from '~wildo-frontend-lib/core/config/chart-view.frontend.schemas';\nimport { useResourceRegistry } from '~wildo-frontend-lib/core/resources/useResourceRegistry';\n\n// Direct ECharts binding. Replaces `echarts-for-react`, whose `'finished'`-gated\n// double-init hangs on ECharts 6.0.0 (see WildoEChart for the full analysis).\n// ECharts stays behind this file's app-level React.lazy boundary via WildoEChart's\n// static `echarts-setup` import.\nimport { WildoEChart } from './WildoEChart';\n\nexport interface ChartViewProps {\n /** View reference — resolved from UIContext internally. */\n viewRef?: string;\n /** Pre-resolved bare chart definition. Useful for dev previews and direct renderers. */\n document?: ChartDefinition;\n /** Pre-resolved chart surface definition. When provided, `viewRef` is ignored. */\n viewDefinition?: InsertedChartDeclaration;\n /** Pre-resolved runtime descriptor for inserted or already-bound charts. */\n runtimeDescriptor?: ResolvedInsertedChartDescriptor;\n /** Explicit navigation-time or host-time context bindings. */\n contextResourceIdentifiers?: Record<string, string>;\n /** Explicit standalone-route URL param values for URL_PARAM chart bindings. */\n urlParamValues?: Record<string, string>;\n /** Explicit chart input overrides. These win over binding/default-derived values. */\n inputs?: ChartInputValues;\n /** Custom class name */\n className?: string;\n /** Width */\n width?: string | number;\n /** Height */\n height?: string | number;\n /**\n * When true, a data-fetch failure degrades LOCALLY (this chart card shows the\n * error, with retry) WITHOUT raising the global error toast. Set by EMBEDDED\n * hosts (composite tiles, detail-page charts) so one sub-surface's 403/5xx does\n * not read as a page-level failure. Standalone chart pages leave it `false` and\n * keep the global error pipeline. The error is still emitted/logged either way.\n */\n localErrorOnly?: boolean;\n}\n\n/**\n * ChartView — renders an ECharts chart from a ChartDefinition.\n *\n * Data flow:\n * 1. Resolve definition from UIContext or props\n * 2. Fetch aggregated data from backend\n * 3. Build ECharts option from definition + data\n * 4. Render with echarts-for-react\n */\nexport const ChartView: React.FC<ChartViewProps> = ({\n viewRef,\n document: documentProp,\n viewDefinition: viewDefinitionProp,\n runtimeDescriptor,\n contextResourceIdentifiers,\n urlParamValues,\n inputs,\n className = '',\n width = '100%',\n height = 400,\n localErrorOnly = false,\n}) => {\n const { registry } = useResourceRegistry();\n const { getChartStylePreset, isDark } = useUI();\n const chartStylePreset = getChartStylePreset();\n const { t, isReady, resolvedRegionalPreferences } = useI18n({ component: FrontendComponentType.HIGH_LEVEL_VIEWS_CHART });\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const echartsRef = useRef<any>(null);\n\n // Register/update chart theme with current style preset\n useChartTheme(chartStylePreset);\n\n const resolvedInsertedChart = useMemo(\n () => (viewDefinitionProp ? undefined : resolveInsertedChartView({ viewRef, registry })),\n [viewDefinitionProp, viewRef, registry],\n );\n const viewDefinition = viewDefinitionProp ?? resolvedInsertedChart?.chartView;\n const effectiveRuntimeDescriptor = useMemo(\n () => runtimeDescriptor ?? (\n resolvedInsertedChart\n ? buildResolvedInsertedChartDescriptor({\n identity: resolvedInsertedChart.identity,\n chartView: resolvedInsertedChart.chartView,\n contextResourceIdentifiers: contextResourceIdentifiers ?? {},\n })\n : undefined\n ),\n [runtimeDescriptor, resolvedInsertedChart, contextResourceIdentifiers],\n );\n const runtime = useResolvedChartRuntimeDescriptor({\n surfaceDefinition: viewDefinition,\n chartDefinition: documentProp,\n runtimeDescriptor: effectiveRuntimeDescriptor,\n explicitContextResourceIdentifiers: contextResourceIdentifiers,\n explicitInputs: inputs,\n urlParamValues,\n });\n const definition = runtime?.chartDefinition;\n\n // Fetch chart data\n const { data, loading, error, refetch } = useChartData(\n definition,\n runtime?.executionChartRef,\n runtime?.resolvedInputs,\n runtime?.contextResourceIdentifiers,\n urlParamValues,\n localErrorOnly,\n );\n\n // ResizeObserver for container.\n //\n // ECharts reflows to the container natively via `instance.resize()`; we do NOT\n // rebuild the ECharts `option` on resize. An earlier implementation pushed the\n // observed size into React state (a `containerSize` that fed `buildEChartsOption`\n // and sat in the `option` useMemo deps), so every resize tick produced a brand-new\n // option object. Combined with `notMerge`+`lazyUpdate` below, that scheduled a\n // frame-deferred atomic option replacement that raced the in-flight `resize()`\n // relayout — surfacing as `Cannot read properties of undefined (reading 'group')`\n // in ECharts' `CartesianAxisView.render` one frame late, plus the tell-tale\n // \"ResizeObserver loop completed with undelivered notifications\" (the observer\n // callback's state update re-triggered layout). `containerSize` was in any case\n // dead context — no chart-type builder reads it — so dropping the rebuild is\n // behaviour-preserving. Native resize is the whole job here.\n // The observer must arm when the REAL container mounts, which happens strictly\n // AFTER the loading/error/empty early returns below stop short-circuiting —\n // i.e. potentially many renders after the initial mount. A mount-time\n // `useEffect(…, [])` reading a plain ref (the previous implementation) ran\n // exactly once, while the container was still null (the first render always\n // takes the loading/skeleton branch), so the observer NEVER armed and charts\n // never reflowed to container resizes. A callback ref is the structural fix:\n // React invokes it at the moment the container node attaches (and with `null`\n // when it detaches, including unmount), so arming/disarming exactly tracks the\n // real DOM node regardless of which render branch produced it.\n const containerRefCallback = useCallback((el: HTMLDivElement | null) => {\n resizeObserverRef.current?.disconnect();\n resizeObserverRef.current = null;\n if (!el) return;\n\n const observer = new ResizeObserver(() => {\n const instance = echartsRef.current?.getEchartsInstance?.();\n // Guard against a disposed instance: on theme toggle the chart remounts\n // (see the `key` prop below) and the observer closure can fire against an\n // instance that ECharts has already torn down — `resize()` would throw.\n if (instance && !instance.isDisposed?.()) {\n instance.resize();\n }\n });\n\n observer.observe(el);\n resizeObserverRef.current = observer;\n }, []);\n\n // Save echarts instance ref\n const onChartReady = useCallback((instance: unknown) => {\n echartsRef.current = { getEchartsInstance: () => instance };\n }, []);\n\n // Build ECharts option — memoized, placed before early returns to respect Rules of Hooks.\n // Deliberately NOT keyed on container size: the option carries no size-dependent\n // fields (no builder reads `containerSize`), and rebuilding it on resize is what\n // raced the native `resize()` into the `CartesianAxisView` crash (see the observer\n // above). The option now rebuilds only on genuine content/appearance changes.\n // Enum coherence: when a chart dimension is an enum, resolve — once, from the\n // resource registry's decorated schema — both the value→color map (slices/bars\n // match the value's badge) and the enum's declared member order (categories sort\n // by declaration order, not the backend's alphabetical order). Keyed on `isDark`\n // because the colors resolve live CSS vars (`--info`, `--muted-foreground`, …)\n // that flip with the theme; ChartView does not remount on toggle (only its child\n // chart does), so without this the memo would keep the previous mode's colors.\n // See `enum-color-bridge.ts`.\n //\n // Labels ride the same pass: an enum dimension's values are DISPLAYED through the i18n tree (axis\n // categories, slice and split names) while the data stays keyed on the raw value. The resource's\n // label bundle is requested here so its enum labels are loaded before the chart renders.\n const { tResourceFieldEnumValue, isReady: isResourceLabelsReady } = useI18n({ resource: definition?.dataQuery.mainResourceType });\n const dimensionEnumMeta = useMemo(\n () => (definition\n ? buildDimensionEnumMeta(definition, (type) => registry.resourceConfigurations[type], tResourceFieldEnumValue)\n : { colors: {}, order: {}, labels: {} }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [definition, registry, isDark, tResourceFieldEnumValue, isResourceLabelsReady],\n );\n\n const option = useMemo(\n () => (definition && data && data.data.length > 0)\n ? buildEChartsOption(definition, data, undefined, chartStylePreset, t, dimensionEnumMeta, resolvedRegionalPreferences.locale)\n : null,\n [definition, data, chartStylePreset, t, dimensionEnumMeta, resolvedRegionalPreferences.locale],\n );\n\n // Not found\n if (!definition) {\n return <ViewNotFound viewKind=\"chart\" viewRef={viewRef} />;\n }\n\n // Loading\n if (loading && !data) {\n return <ChartLoadingSkeleton height={height} />;\n }\n\n // Error\n if (error) {\n return <ChartErrorState error={error} onRetry={refetch} />;\n }\n\n // Empty\n if (!option) {\n return <ChartEmptyState />;\n }\n\n if (!isReady || !isResourceLabelsReady) return null;\n\n return (\n <div\n ref={containerRefCallback}\n className={cn('chart-view', className)}\n style={{ width, height, position: 'relative' }}\n >\n <WildoEChart\n // Remount on dark-mode toggle: the theme name is stable but its content\n // is re-registered, and ECharts bakes the theme at init time.\n key={isDark ? 'dark' : 'light'}\n option={option}\n theme={getWildoThemeName()}\n style={{ width: '100%', height: '100%' }}\n notMerge={true}\n // lazyUpdate MUST stay false. With lazyUpdate={true}, ECharts 6 defers\n // the setOption flush to its next animation frame (`_onframe`); ECharts\n // 6.0.0 then crashes on that deferred path for cartesian charts —\n // `CartesianAxisView.render` dereferences `axisModel.axis.axisBuilder\n // .group` while `axisBuilder` is still undefined (ECharts 6 \"promoted\"\n // axis-element building to the coordinate-system resize stage, but the\n // deferred-flush ordering skips it). Symptom: `TypeError: Cannot read\n // properties of undefined (reading 'group')`. A synchronous flush runs\n // the full resize→render pipeline in order and renders cleanly with\n // animation intact.\n lazyUpdate={false}\n onChartReady={onChartReady}\n />\n </div>\n );\n};\n\nexport default ChartView;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-export.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/chart-export.utils.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE;AAEpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"chart-export.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/chart-export.utils.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE;AAEpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D;;;;;;GAMG;AACH,0DAA0D;AAC1D,UAAU,iBAAiB;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC7F;AAED,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACrD,QAAQ,SAAc,EACtB,UAAU,SAAI,GACb,IAAI,CAkBN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,eAAe,EAC3B,QAAQ,SAAmB,GAC1B,IAAI,CAwCN"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* - PNG export via ECharts `getDataURL()`
|
|
5
5
|
* - CSV export from aggregation response data
|
|
6
6
|
* ────────────────────────────────────────────────────────────── */
|
|
7
|
+
import { saveBlobAsFile } from '../../../core/commons/save-blob-as-file.frontend.utils.js';
|
|
7
8
|
export function exportChartAsPNG(echartsInstance, filename = 'chart.png', pixelRatio = 2) {
|
|
8
9
|
if (!echartsInstance?.getDataURL) {
|
|
9
10
|
console.warn('Chart export: no ECharts instance available');
|
|
@@ -63,15 +64,7 @@ export function exportChartAsCSV(response, definition, filename = 'chart-data.cs
|
|
|
63
64
|
}
|
|
64
65
|
// Build CSV string
|
|
65
66
|
const csvContent = rows.map(row => row.join(',')).join('\n');
|
|
66
|
-
|
|
67
|
-
const url = URL.createObjectURL(blob);
|
|
68
|
-
const link = document.createElement('a');
|
|
69
|
-
link.download = filename;
|
|
70
|
-
link.href = url;
|
|
71
|
-
document.body.appendChild(link);
|
|
72
|
-
link.click();
|
|
73
|
-
document.body.removeChild(link);
|
|
74
|
-
URL.revokeObjectURL(url);
|
|
67
|
+
saveBlobAsFile(new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }), filename);
|
|
75
68
|
}
|
|
76
69
|
/**
|
|
77
70
|
* Escape a value for CSV: wrap in quotes if it contains commas, quotes, or newlines.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-export.utils.js","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/chart-export.utils.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE;
|
|
1
|
+
{"version":3,"file":"chart-export.utils.js","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/chart-export.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * Chart Export Utilities\n * \n * - PNG export via ECharts `getDataURL()`\n * - CSV export from aggregation response data\n * ────────────────────────────────────────────────────────────── */\n\nimport type { AggregationQueryResponse } from '@wildo-ai/saas-models';\nimport type { ChartDefinition } from '@wildo-ai/saas-models';\nimport { saveBlobAsFile } from '~wildo-frontend-lib/core/commons/save-blob-as-file.frontend.utils';\n\n/**\n * Export the chart as a PNG image.\n * \n * @param echartsInstance - The ECharts instance (from `onChartReady`)\n * @param filename - The file name for the download (default: 'chart.png')\n * @param pixelRatio - Resolution multiplier (default: 2 for retina)\n */\n/** Minimal interface for the ECharts getDataURL method */\ninterface EChartsExportable {\n getDataURL: (opts: { type: string; pixelRatio: number; backgroundColor: string }) => string;\n}\n\nexport function exportChartAsPNG(\n echartsInstance: EChartsExportable | null | undefined,\n filename = 'chart.png',\n pixelRatio = 2,\n): void {\n if (!echartsInstance?.getDataURL) {\n console.warn('Chart export: no ECharts instance available');\n return;\n }\n\n const dataURL = echartsInstance.getDataURL({\n type: 'png',\n pixelRatio,\n backgroundColor: '#fff',\n });\n\n const link = document.createElement('a');\n link.download = filename;\n link.href = dataURL;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n\n/**\n * Export the chart data as a CSV file.\n * \n * @param response - The aggregation query response\n * @param definition - The chart definition (for column headers)\n * @param filename - The file name for the download (default: 'chart-data.csv')\n */\nexport function exportChartAsCSV(\n response: AggregationQueryResponse,\n definition: ChartDefinition,\n filename = 'chart-data.csv',\n): void {\n if (!response.data || response.data.length === 0) {\n console.warn('Chart export: no data to export');\n return;\n }\n\n // Determine column order: dimensions first, then measures\n const dimensionRefs = definition.dataQuery.dimensions.map(d => d.ref);\n const measureRefs = definition.dataQuery.measures.map(m => m.ref);\n const computedRefs = (definition.dataQuery.computedMeasures || []).map(cm => cm.ref);\n const windowRefs = (definition.dataQuery.windowFunctions || []).map(wf => wf.ref);\n\n const allRefs = [...dimensionRefs, ...measureRefs, ...computedRefs, ...windowRefs];\n\n // Build headers — use labels when available\n const dimensionLabels = definition.dataQuery.dimensions.map(d => d.label || d.ref);\n const measureLabels = definition.dataQuery.measures.map(m => m.label || m.ref);\n const computedLabels = (definition.dataQuery.computedMeasures || []).map(cm => cm.label || cm.ref);\n const windowLabels = (definition.dataQuery.windowFunctions || []).map(wf => wf.label || wf.ref);\n\n const headers = [...dimensionLabels, ...measureLabels, ...computedLabels, ...windowLabels];\n\n // Build rows (headers are also escaped to handle labels with commas/quotes/newlines)\n const rows: string[][] = [];\n rows.push(headers.map(h => escapeCSV(h)));\n\n for (const row of response.data) {\n const csvRow = allRefs.map(ref => {\n const value = row[ref];\n if (value == null) return '';\n if (typeof value === 'string') return escapeCSV(value);\n if (value instanceof Date) return value.toISOString();\n return String(value);\n });\n rows.push(csvRow);\n }\n\n // Build CSV string\n const csvContent = rows.map(row => row.join(',')).join('\\n');\n saveBlobAsFile(new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }), filename);\n}\n\n/**\n * Escape a value for CSV: wrap in quotes if it contains commas, quotes, or newlines.\n */\nfunction escapeCSV(value: string): string {\n if (value.includes(',') || value.includes('\"') || value.includes('\\n')) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n"]}
|
|
@@ -56,6 +56,7 @@ export declare function resolveEnumSemanticChartColor(variant: BadgeSemanticVari
|
|
|
56
56
|
/** Minimal registry surface this bridge needs — a resource-config lookup by type. */
|
|
57
57
|
export type ChartResourceConfigLookup = (resourceType: string) => {
|
|
58
58
|
mainSchema?: unknown;
|
|
59
|
+
inheritenceSchemaDefinition?: unknown;
|
|
59
60
|
} | undefined;
|
|
60
61
|
/**
|
|
61
62
|
* Build the per-dimension enum metadata (colors + declared order) for a chart.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum-color-bridge.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/enum-color-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;oEAgBoE;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"enum-color-bridge.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/chart-view/enum-color-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;oEAgBoE;AAGpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAK7B,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD;AAED,oHAAoH;AACpH,MAAM,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC;AAmBxI;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAGnF;AAED,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,2BAA2B,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC;AAE9I;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAC3B,wBAAwB,EAAE,yBAAyB,EACnD,iBAAiB,CAAC,EAAE,2BAA2B,GAC9C,iBAAiB,CA+CnB"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* it resolves live CSS vars, it adapts to light/dark automatically.
|
|
17
17
|
* ────────────────────────────────────────────────────────────── */
|
|
18
18
|
import { getEnumValues, getZodObjectShape } from '@wildo-ai/zod-decorators';
|
|
19
|
+
import { resourceInheritanceVariantSchemas } from '@wildo-ai/saas-models';
|
|
19
20
|
import { IndicatorVariant } from '@wildo-ai/presets-components-models';
|
|
20
21
|
import { resolveCSSColor } from './chart-theme-bridge.js';
|
|
21
22
|
import { badgeVariantIndicator } from '../../../components/data-display/badge-tone.js';
|
|
@@ -64,7 +65,15 @@ export function buildDimensionEnumMeta(definition, getResourceConfiguration, res
|
|
|
64
65
|
const mainSchema = config?.mainSchema;
|
|
65
66
|
if (!mainSchema)
|
|
66
67
|
return { colors, order, labels };
|
|
67
|
-
|
|
68
|
+
// Every field some row can hold (#2455): a dimension on a variant-only enum is coloured and ordered too. The base's
|
|
69
|
+
// copy is kept for a field both declare.
|
|
70
|
+
const shape = { ...getZodObjectShape(mainSchema) };
|
|
71
|
+
for (const variant of resourceInheritanceVariantSchemas(config?.inheritenceSchemaDefinition)) {
|
|
72
|
+
for (const [fieldName, fieldSchema] of Object.entries(getZodObjectShape(variant) ?? {})) {
|
|
73
|
+
if (!(fieldName in shape))
|
|
74
|
+
shape[fieldName] = fieldSchema;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
68
77
|
for (const dim of definition.dataQuery.dimensions) {
|
|
69
78
|
const fieldSchema = shape[dim.field];
|
|
70
79
|
if (!fieldSchema)
|