@salsita-ai/sdk 0.50.0-develop.78a839cc7b → 0.50.0-develop.7c472a27fe
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/application-spec/errors/diagnostic-codes.d.ts +9 -0
- package/dist/application-spec/errors/diagnostic-codes.js +1 -1
- package/dist/application-spec/errors/diagnostic-messages.d.ts +10 -1
- package/dist/application-spec/errors/diagnostic-messages.js +1 -1
- package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
- package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
- package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
- package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
- package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
- package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +24 -22
- package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -6
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +3 -2
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +12 -4
- package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +3 -3
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +9 -3
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +33 -3
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
- package/dist/configurator/ConfiguratorApp.js +1 -1
- package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +4 -3
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +33 -7
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
- package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
- package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +45 -4
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
- package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
- package/dist/configurator/common/configurator-interface.d.ts +12 -2
- package/dist/configurator/common/configurator-interface.js +1 -1
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
- package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
- package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +4 -0
- package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
- package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
- package/dist/configurator/toolbar-actions/index.d.ts +1 -0
- package/dist/configurator/toolbar-actions/index.js +1 -1
- package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
- package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
- package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
- package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
- package/dist/configurator/ui/assistant/AssistantChips.d.ts +3 -2
- package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
- package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
- package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
- package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/alert/index.js +1 -0
- package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
- package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
- package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
- package/dist/configurator/ui/assistant/form/compose-answer.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/compose-answer.js +1 -1
- package/dist/configurator/ui/assistant/form/form-model.d.ts +3 -4
- package/dist/configurator/ui/assistant/form/form-state.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/form/index.js +1 -1
- package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +3 -2
- package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -1
- package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +1 -1
- package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -1
- package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
- package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
- package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
- package/dist/configurator/ui/assistant/form/{form-element-definition.d.ts → registry/form-element-definition.d.ts} +3 -1
- package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
- package/dist/configurator/ui/assistant/form/{form-registry.d.ts → registry/form-registry.d.ts} +2 -2
- package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
- package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
- package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
- package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
- package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
- package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
- package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +4 -1
- package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
- package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
- package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
- package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +20 -16
- package/dist/configurator/ui/assistant/form-elements/index.d.ts +4 -0
- package/dist/configurator/ui/assistant/form-elements/index.js +1 -1
- package/dist/configurator/ui/assistant/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/index.js +1 -1
- package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
- package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
- package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +0 -9
- package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -1
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
- package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
- package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -2
- package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
- package/dist/configurator/ui/assistant/tool-chip.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
- package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
- package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
- package/dist/configurator/ui/index.d.ts +1 -0
- package/dist/configurator/ui/index.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -2
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
- package/dist/docs/index.json +62 -1
- package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
- package/dist/docs/layouts/custom-layout.mdx +318 -158
- package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
- package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
- package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
- package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
- package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
- package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
- package/dist/docs/phoenix/configurator-interface.mdx +12 -10
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +1 -1
- package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
- package/dist/domain/application/assistant/assistant-manifest.d.ts +16 -1
- package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +8 -1
- package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
- package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
- package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
- package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
- package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
- package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
- package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
- package/dist/domain/application/assistant/form/index.d.ts +4 -0
- package/dist/domain/application/assistant/form/index.js +1 -0
- package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
- package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
- package/dist/domain/application/assistant/index.d.ts +2 -3
- package/dist/domain/application/assistant/index.js +1 -1
- package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
- package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +2 -0
- package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
- package/dist/domain/application/web-component-property.d.ts +3 -1
- package/dist/domain/application/web-component-property.js +1 -1
- package/dist/domain/available-system-components.d.ts +1 -1
- package/dist/domain/available-system-components.js +1 -1
- package/dist/domain/domain-builder.d.ts +9 -3
- package/dist/domain/domain-builder.js +1 -1
- package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
- package/dist/domain/domain-context/store-system/store-system.js +1 -1
- package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
- package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
- package/dist/domain/domain-runtime/domain-runtime.d.ts +8 -0
- package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
- package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
- package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
- package/dist/domain/domain-runtime/index.d.ts +1 -1
- package/dist/domain/domain-runtime/index.js +1 -1
- package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/index.js +1 -1
- package/dist/domain/domain-runtime/spec/initialize.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +15 -1
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
- package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
- package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
- package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
- package/dist/domain/domain-runtime/spec/selectors.js +1 -1
- package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
- package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
- package/dist/domain/extensions/{client-side-image.d.ts → export-images/client-side-image.d.ts} +2 -2
- package/dist/domain/extensions/export-images/client-side-image.js +1 -0
- package/dist/domain/extensions/export-images/index.d.ts +3 -0
- package/dist/domain/extensions/export-images/index.js +1 -0
- package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +2 -2
- package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
- package/dist/domain/extensions/index.d.ts +1 -2
- package/dist/domain/extensions/index.js +1 -1
- package/dist/domain/mocks/create-mock-domain-runtime.d.ts +4 -0
- package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
- package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
- package/dist/editor/domain-editors/apply-spec-update.js +1 -1
- package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -11
- package/dist/editor/domain-editors/use-implementation-files.js +1 -1
- package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
- package/dist/i18n/locales/cs/messages.js +1 -1
- package/dist/i18n/locales/da/messages.js +1 -1
- package/dist/i18n/locales/de/messages.js +1 -1
- package/dist/i18n/locales/de-AT/messages.js +1 -1
- package/dist/i18n/locales/en/messages.js +1 -1
- package/dist/i18n/locales/en-AU/messages.js +1 -1
- package/dist/i18n/locales/en-GB/messages.js +1 -1
- package/dist/i18n/locales/es/messages.js +1 -1
- package/dist/i18n/locales/fr/messages.js +1 -1
- package/dist/i18n/locales/hu/messages.js +1 -1
- package/dist/i18n/locales/it/messages.js +1 -1
- package/dist/i18n/locales/nl/messages.js +1 -1
- package/dist/i18n/locales/pl/messages.js +1 -1
- package/dist/i18n/locales/pt/messages.js +1 -1
- package/dist/i18n/locales/ro/messages.js +1 -1
- package/dist/i18n/locales/sk/messages.js +1 -1
- package/dist/i18n/locales/tr/messages.js +1 -1
- package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
- package/dist/legacy/domain-cli/utils/cache.js +1 -1
- package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +16 -0
- package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
- package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
- package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
- package/dist/react-sdk/application-runtime/index.d.ts +2 -0
- package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
- package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
- package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
- package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
- package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
- package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
- package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
- package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
- package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
- package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
- package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
- package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
- package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
- package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +164 -3
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
- package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/index.d.ts +1 -0
- package/dist/react-sdk/domain-context/common-hooks/index.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
- package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
- package/dist/react-sdk/domain-context/index.d.ts +1 -0
- package/dist/react-sdk/domain-context/index.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -1
- package/dist/react-sdk/index.d.ts +0 -1
- package/dist/react-sdk/index.js +1 -1
- package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
- package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
- package/dist/react-sdk/loading-state/index.d.ts +3 -2
- package/dist/react-sdk/loading-state/index.js +1 -1
- package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
- package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
- package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
- package/dist/react-sdk/web-component/create-web-component.js +1 -1
- package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
- package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
- package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
- package/dist/react-sdk/web-component/god-mode/index.js +1 -0
- package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
- package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
- package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
- package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
- package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
- package/dist/ui-sdk/icons/__generated/index.js +1 -1
- package/dist/ui-sdk/icons/icons-registry.js +1 -1
- package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
- package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
- package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
- package/dist/ui-sdk/theme/types.d.ts +5 -1
- package/package.json +13 -3
- package/schema/domain-spec.json +140 -0
- package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +0 -10
- package/dist/configurator/ui/assistant/form/built-in-form-registry.js +0 -1
- package/dist/configurator/ui/assistant/form/form-registry.js +0 -8
- package/dist/domain/application/assistant/assistant-form-elements.d.ts +0 -28
- package/dist/domain/application/assistant/assistant-form-elements.js +0 -1
- package/dist/domain/extensions/client-side-image.js +0 -1
- package/dist/domain/extensions/save-template-thumbnail.js +0 -1
- package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
- package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
- package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
- package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -37
- package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
- package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
- package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
- package/dist/react-sdk/responsive-state/index.d.ts +0 -5
- package/dist/react-sdk/responsive-state/index.js +0 -1
- package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
- package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
- package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
- /package/dist/{configurator/ui/assistant/form/form-element-definition.js → react-sdk/application-runtime/loading/types.js} +0 -0
- /package/dist/react-sdk/{responsive-state/canvas-padding.js → application-runtime/responsive/types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{createContext as t,useContext as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{createContext as t,useContext as o}from"react";let p=t(null);export const ApplicationTypeProvider=t=>{let{children:o,type:r}=t;return e(p.Provider,{value:r,children:o})};export const useApplicationType=()=>{let e=o(p);if(!e)throw Error("ApplicationType context not found! useApplicationType() must be used within an ApplicationTypeProvider. Use the hook appropriately.");return e};export const useOptionalApplicationType=()=>o(p);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DomainApplicationType } from '#package/domain';
|
|
2
|
+
import type { CanvasPadding, ResponsiveBreakpoints, ResponsiveRuntimeState, ResponsiveViewport } from './types.js';
|
|
3
|
+
interface Context {
|
|
4
|
+
readonly setResponsive: (fn: (state: ResponsiveRuntimeState) => ResponsiveRuntimeState) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Every action returns the slice unchanged when the value is already set, so the runtime publishes
|
|
8
|
+
* nothing and no subscriber recomputes.
|
|
9
|
+
*/
|
|
10
|
+
declare const createApplicationActions: (context: Context, applicationType: DomainApplicationType) => {
|
|
11
|
+
setViewport: (viewport: ResponsiveViewport) => void;
|
|
12
|
+
setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
|
|
13
|
+
setCanvasPadding: (canvasPadding: CanvasPadding) => void;
|
|
14
|
+
expand: () => void;
|
|
15
|
+
collapse: () => void;
|
|
16
|
+
hide: () => void;
|
|
17
|
+
show: () => void;
|
|
18
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
19
|
+
reset: () => void;
|
|
20
|
+
};
|
|
21
|
+
/** One set of actions per application, as the domain context keys its own. */
|
|
22
|
+
export declare const createResponsiveActions: (context: Context) => {
|
|
23
|
+
configurator: {
|
|
24
|
+
setViewport: (viewport: ResponsiveViewport) => void;
|
|
25
|
+
setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
|
|
26
|
+
setCanvasPadding: (canvasPadding: CanvasPadding) => void;
|
|
27
|
+
expand: () => void;
|
|
28
|
+
collapse: () => void;
|
|
29
|
+
hide: () => void;
|
|
30
|
+
show: () => void;
|
|
31
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
32
|
+
reset: () => void;
|
|
33
|
+
};
|
|
34
|
+
admin: {
|
|
35
|
+
setViewport: (viewport: ResponsiveViewport) => void;
|
|
36
|
+
setBreakpoints: (breakpoints: ResponsiveBreakpoints) => void;
|
|
37
|
+
setCanvasPadding: (canvasPadding: CanvasPadding) => void;
|
|
38
|
+
expand: () => void;
|
|
39
|
+
collapse: () => void;
|
|
40
|
+
hide: () => void;
|
|
41
|
+
show: () => void;
|
|
42
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
43
|
+
reset: () => void;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export type ResponsiveActions = ReturnType<typeof createApplicationActions>;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{initializeResponsiveApplication as t}from"./initialize.js";let e=(e,i)=>{let n=t=>{e.setResponsive(e=>{let n=e[i],s=t(n);return s===n?e:{...e,[i]:s}})},s=t=>{n(e=>e.isExpanded===t?e:{...e,isExpanded:t})},r=t=>{n(e=>e.isHidden===t?e:{...e,isHidden:t})};return{setViewport:t=>{n(e=>{let i;return(i=e.viewport,null!==i&&i.width===t.width&&i.height===t.height&&i.isLandscape===t.isLandscape&&i.isPortrait===t.isPortrait)?e:{...e,viewport:t}})},setBreakpoints:t=>{n(e=>{let i;return(i=e.breakpoints,i.sm===t.sm&&i.md===t.md&&i.lg===t.lg)?e:{...e,breakpoints:t}})},setCanvasPadding:t=>{n(e=>{let i;return(i=e.canvasPadding,i.top===t.top&&i.right===t.right&&i.bottom===t.bottom&&i.left===t.left)?e:{...e,canvasPadding:t}})},expand:()=>{s(!0)},collapse:()=>{s(!1)},hide:()=>{r(!0)},show:()=>{r(!1)},setAnimating:t=>{n(e=>e.isAnimating===t?e:{...e,isAnimating:t})},reset:()=>{n(()=>t())}}};export const createResponsiveActions=t=>({configurator:e(t,"configurator"),admin:e(t,"admin")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./actions.js";export*from"./initialize.js";export*from"./selectors.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const initializeResponsiveApplication=()=>({viewport:null,breakpoints:{sm:480,md:768,lg:1024},canvasPadding:{top:0,right:0,bottom:0,left:0},isExpanded:!1,isHidden:!1,isAnimating:!1});export const initializeResponsive=()=>({configurator:initializeResponsiveApplication(),admin:initializeResponsiveApplication()});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DomainApplicationType } from '#package/domain';
|
|
2
|
+
import type { ResponsiveRuntimeState, ResponsiveState, ResponsiveViewportSize } from './types.js';
|
|
3
|
+
export interface ResponsiveSelectorState {
|
|
4
|
+
readonly responsive: ResponsiveRuntimeState;
|
|
5
|
+
}
|
|
6
|
+
interface Context {
|
|
7
|
+
readonly getState: () => ResponsiveSelectorState;
|
|
8
|
+
readonly applicationType: DomainApplicationType;
|
|
9
|
+
}
|
|
10
|
+
/** The selectors of one application's responsive state; the runtime creates one set per application. */
|
|
11
|
+
export declare const createResponsiveSelectors: (context: Context) => {
|
|
12
|
+
selectResponsiveState: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, ResponsiveState>;
|
|
13
|
+
selectViewportSize: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, ResponsiveViewportSize>;
|
|
14
|
+
selectCanvasPadding: import("@salsita-ai/common/utils").Selector<ResponsiveSelectorState, import("./types.js").CanvasPadding>;
|
|
15
|
+
getResponsiveState: () => ResponsiveState;
|
|
16
|
+
getViewportSize: () => ResponsiveViewportSize;
|
|
17
|
+
getCanvasPadding: () => import("./types.js").CanvasPadding;
|
|
18
|
+
};
|
|
19
|
+
export type ResponsiveSelectors = ReturnType<typeof createResponsiveSelectors>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createSelector as e}from"@salsita-ai/common/utils";export const createResponsiveSelectors=i=>{let{getState:s,applicationType:t}=i,a=e.withTypes(),o=a.leaf(e=>null!==e.responsive[t].viewport),n=a.leaf(e=>e.responsive[t].viewport?.width??0),r=a.leaf(e=>e.responsive[t].viewport?.height??0),p=a.leaf(e=>e.responsive[t].viewport?.isLandscape??!1),l=a.leaf(e=>e.responsive[t].viewport?.isPortrait??!1),v=a.leaf(e=>e.responsive[t].breakpoints),d=a.leaf(e=>e.responsive[t].canvasPadding),f=a.leaf(e=>e.responsive[t].isExpanded),g=a.leaf(e=>e.responsive[t].isHidden),h=a.leaf(e=>e.responsive[t].isAnimating),m=a([o,n,v],(e,i,s)=>e&&i<s.sm),w=a([o,n,v],(e,i,s)=>e&&i<=s.md),c=a([o,n,v],(e,i,s)=>e&&i<s.lg&&i>s.sm),u=a([o,n,v],(e,i,s)=>e&&i>s.md),P=a([m,w,c,u,p,l,d,f,g,h],(e,i,s,t,a,o,n,r,p,l)=>({isPhone:e,isMobile:i,isTablet:s,isDesktop:t,isLandscape:a,isPortrait:o,canvasPadding:n,isExpanded:r,isHidden:p,isAnimating:l})),S=a([n,r],(e,i)=>({width:Math.ceil(e),height:Math.ceil(i)}));return{selectResponsiveState:P,selectViewportSize:S,selectCanvasPadding:d,getResponsiveState:()=>P(s()),getViewportSize:()=>S(s()),getCanvasPadding:()=>d(s())}};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The part of the canvas, in pixels from each edge, that overlay UI covers. The camera frames the
|
|
3
|
+
* scene inside what is left, so the scene stays visible beside a sidebar or under a preview body.
|
|
4
|
+
*
|
|
5
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
6
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
7
|
+
*/
|
|
8
|
+
export interface CanvasPadding {
|
|
9
|
+
readonly top: number;
|
|
10
|
+
readonly right: number;
|
|
11
|
+
readonly bottom: number;
|
|
12
|
+
readonly left: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The widths, in pixels, that split the application's root container into phone, tablet and
|
|
16
|
+
* desktop. The theme decides them; the UI library pushes its theme's values in with
|
|
17
|
+
* `setBreakpoints`.
|
|
18
|
+
*
|
|
19
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
20
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
21
|
+
*/
|
|
22
|
+
export interface ResponsiveBreakpoints {
|
|
23
|
+
readonly sm: number;
|
|
24
|
+
readonly md: number;
|
|
25
|
+
readonly lg: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One measurement of the application's root container. The orientation comes from the window,
|
|
29
|
+
* not from the container's aspect ratio.
|
|
30
|
+
*
|
|
31
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
32
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
33
|
+
*/
|
|
34
|
+
export interface ResponsiveViewport {
|
|
35
|
+
readonly width: number;
|
|
36
|
+
readonly height: number;
|
|
37
|
+
readonly isLandscape: boolean;
|
|
38
|
+
readonly isPortrait: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The size of the application's root container, rounded up to whole pixels.
|
|
42
|
+
*
|
|
43
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
44
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
45
|
+
*/
|
|
46
|
+
export interface ResponsiveViewportSize {
|
|
47
|
+
readonly width: number;
|
|
48
|
+
readonly height: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The responsive state of one mounted application: what it measured of its root container, the
|
|
52
|
+
* breakpoints that classify it, the canvas padding the scene is framed with, and whether the
|
|
53
|
+
* container is expanded over the host page, hidden, or in a layout animation.
|
|
54
|
+
*
|
|
55
|
+
* The configurator's root container writes it while it is mounted and resets it when it unmounts.
|
|
56
|
+
*
|
|
57
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
58
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
59
|
+
*/
|
|
60
|
+
export interface ResponsiveApplicationState {
|
|
61
|
+
/** `null` until the root container is measured for the first time. */
|
|
62
|
+
readonly viewport: ResponsiveViewport | null;
|
|
63
|
+
readonly breakpoints: ResponsiveBreakpoints;
|
|
64
|
+
readonly canvasPadding: CanvasPadding;
|
|
65
|
+
readonly isExpanded: boolean;
|
|
66
|
+
readonly isHidden: boolean;
|
|
67
|
+
readonly isAnimating: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The `responsive` slice, one entry per application: an admin that embeds a configurator runs both
|
|
71
|
+
* in one runtime, and each has its own root container.
|
|
72
|
+
*
|
|
73
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
74
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
75
|
+
*/
|
|
76
|
+
export interface ResponsiveRuntimeState {
|
|
77
|
+
readonly configurator: ResponsiveApplicationState;
|
|
78
|
+
readonly admin: ResponsiveApplicationState;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The responsive state the UI and the lifecycle read: the size classes of the root container, the
|
|
82
|
+
* canvas padding, and whether the container is expanded, hidden or animating.
|
|
83
|
+
*
|
|
84
|
+
* Every size class is `false` until the container is measured for the first time.
|
|
85
|
+
*
|
|
86
|
+
* @internal Runtime plumbing for the SDK's own UI. A project layout uses `useActiveViewports()`
|
|
87
|
+
* from `@salsita-ai/sdk/react` and `useSceneSafeArea()` from `@salsita-ai/sdk/configurator`.
|
|
88
|
+
*/
|
|
89
|
+
export interface ResponsiveState {
|
|
90
|
+
/** `width < sm` */
|
|
91
|
+
readonly isPhone: boolean;
|
|
92
|
+
/** `width <= md` */
|
|
93
|
+
readonly isMobile: boolean;
|
|
94
|
+
/** `sm < width < lg` */
|
|
95
|
+
readonly isTablet: boolean;
|
|
96
|
+
/** `width > md` */
|
|
97
|
+
readonly isDesktop: boolean;
|
|
98
|
+
readonly isLandscape: boolean;
|
|
99
|
+
readonly isPortrait: boolean;
|
|
100
|
+
readonly canvasPadding: CanvasPadding;
|
|
101
|
+
readonly isExpanded: boolean;
|
|
102
|
+
readonly isHidden: boolean;
|
|
103
|
+
readonly isAnimating: boolean;
|
|
104
|
+
}
|
|
@@ -17,11 +17,43 @@ interface RoutingServiceContext {
|
|
|
17
17
|
}
|
|
18
18
|
export declare class RoutingService {
|
|
19
19
|
private readonly context;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
20
|
+
private readonly onGoToIndexRegistrations;
|
|
21
|
+
private readonly onNavigatedRegistrations;
|
|
22
|
+
private unregisterSetOnGoToIndex;
|
|
23
|
+
private unregisterSetOnNavigated;
|
|
22
24
|
constructor(context: RoutingServiceContext);
|
|
25
|
+
/**
|
|
26
|
+
* Registers the handler `goToIndex` calls instead of navigating; the handler navigates by calling
|
|
27
|
+
* `next`. The most recent registration is the active one. The returned function removes only this
|
|
28
|
+
* registration, so the one registered before it becomes active again.
|
|
29
|
+
* @internal Plumbing for `ConfiguratorRoutingProvider`; projects intercept `goToIndex` with
|
|
30
|
+
* `createOnGoToIndexHandler`.
|
|
31
|
+
*/
|
|
32
|
+
registerOnGoToIndex: (handler: OnGoToIndexHandler) => (() => void);
|
|
33
|
+
/**
|
|
34
|
+
* Registers the callback told about each navigation `goToIndex` and `goToConfigurationDetail`
|
|
35
|
+
* make. The most recent registration is the active one, and it replaces the SDK's own reporting
|
|
36
|
+
* to the host (the `route` property, the configuration id in the URL and the `navigated` event)
|
|
37
|
+
* rather than listening beside it. The returned function removes only this registration, so the
|
|
38
|
+
* one registered before it becomes active again.
|
|
39
|
+
* @internal Plumbing for `ConfiguratorRoutingProvider`, which does that reporting.
|
|
40
|
+
*/
|
|
41
|
+
registerOnNavigated: (handler: OnNavigatedHandler) => (() => void);
|
|
42
|
+
/**
|
|
43
|
+
* Replaces the handler this method registered before, on top of the other registrations; `null`
|
|
44
|
+
* removes it. Registrations made with `registerOnGoToIndex` stay.
|
|
45
|
+
* @deprecated Intercept `goToIndex` with a handler made by `createOnGoToIndexHandler` instead. This
|
|
46
|
+
* API will be removed in a future version.
|
|
47
|
+
*/
|
|
23
48
|
setOnGoToIndex: (handler: OnGoToIndexHandler | null) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Replaces the callback this method registered before, on top of the other registrations; `null`
|
|
51
|
+
* removes it. Registrations made with `registerOnNavigated` stay.
|
|
52
|
+
* @deprecated Listen to the `navigated` event of the web component instead; a callback set here
|
|
53
|
+
* replaces the SDK's own reporting to the host. This API will be removed in a future version.
|
|
54
|
+
*/
|
|
24
55
|
setOnNavigated: (handler: OnNavigatedHandler | null) => void;
|
|
56
|
+
private notifyNavigated;
|
|
25
57
|
routeTo: (routingState: RoutingState) => void;
|
|
26
58
|
goToIndex: () => void;
|
|
27
59
|
goToConfigurationDetail: (configurationId: string, accessToken?: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InvalidAccessKeyError as t}from"#package/client";import{AnalyticsEventFactory as
|
|
1
|
+
import{InvalidAccessKeyError as t}from"#package/client";import{AnalyticsEventFactory as e,decodeAccessInfo as o}from"#package/domain";import{getAccessInfo as n,getAccessTokenFromLocalStorage as i,putAccessTokenToLocalStorage as s,removeAccessTokenFromLocalStorage as a}from"./access-service.js";import{ApplicationRoutes as r}from"./types.js";let c=(t,e)=>{let o={handler:e};return t.push(o),()=>{let e=t.indexOf(o);-1!==e&&t.splice(e,1)}},g=t=>t.at(-1)?.handler??null;export class RoutingService{context;onGoToIndexRegistrations=[];onNavigatedRegistrations=[];unregisterSetOnGoToIndex=null;unregisterSetOnNavigated=null;constructor(t){this.context=t}registerOnGoToIndex=t=>c(this.onGoToIndexRegistrations,t);registerOnNavigated=t=>c(this.onNavigatedRegistrations,t);setOnGoToIndex=t=>{this.unregisterSetOnGoToIndex?.(),this.unregisterSetOnGoToIndex=null===t?null:this.registerOnGoToIndex(t)};setOnNavigated=t=>{this.unregisterSetOnNavigated?.(),this.unregisterSetOnNavigated=null===t?null:this.registerOnNavigated(t)};notifyNavigated=t=>{g(this.onNavigatedRegistrations)?.(t)};routeTo=t=>{var e;if(e=this.context.getRoutingState(),e.route===r.Index||t.route===r.Index?e.route===t.route:e.configurationId===t.configurationId&&e.accessToken===t.accessToken)return;if(this.context.loadedDataActions.resetConfiguratorLoad(),t.route===r.Index){this.context.accessActions.setConfiguratorAccessInfo(null),this.context.actions.setRoutingState(t);return}let o=n(t.configurationId,t.accessToken);this.context.accessActions.setConfiguratorAccessInfo(o),this.context.actions.setRoutingState(t),t.accessToken&&s(t.configurationId,t.accessToken)};goToIndex=()=>{let t=()=>{this.context.getAnalytics().push(e.NavigationEvent({navigationState:"productPage"})),this.context.getLogger().appendToGlobalContext({navigationState:"productPage"});let t={route:r.Index};this.routeTo(t),this.notifyNavigated(t)},o=g(this.onGoToIndexRegistrations);null==o?t():o({next:t})};goToConfigurationDetail=(t,e)=>{let o={route:r.Configuration,configurationId:t,accessToken:e};this.routeTo(o),this.notifyNavigated(o)};rejectAccessToken=(t,e)=>{i(t)===e&&a(t)};requestAccessToken=(e,n)=>{if(null!==o(n,e))return n;let i=new t;throw this.rejectAccessToken(e,n),this.context.loadedDataActions.failConfiguratorLoad(i),i}}
|
|
@@ -2,11 +2,15 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
2
2
|
import { type AnyApplicationConfig, type DomainRuntimeState, type WebComponentOptions } from '#package/domain';
|
|
3
3
|
import { type AnyApplicationRuntimeExtension, type DomainApplicationContextSelectors } from '../domain-application-context/index.js';
|
|
4
4
|
import { type IntegrationState } from '../integration/index.js';
|
|
5
|
+
import { type LoadingRuntimeState } from '../loading/index.js';
|
|
6
|
+
import { type ResponsiveRuntimeState } from '../responsive/index.js';
|
|
5
7
|
import { type RoutingRuntimeState } from '../routing/index.js';
|
|
6
8
|
import { type ApplicationSessionRuntime, SessionService } from '../session/index.js';
|
|
7
9
|
import type { WebComponentApi } from '../web-component/index.js';
|
|
8
10
|
export interface ApplicationRuntimeState extends DomainRuntimeState {
|
|
9
11
|
readonly integration: IntegrationState;
|
|
12
|
+
readonly loading: LoadingRuntimeState;
|
|
13
|
+
readonly responsive: ResponsiveRuntimeState;
|
|
10
14
|
readonly routing: RoutingRuntimeState;
|
|
11
15
|
readonly session: ApplicationSessionRuntime;
|
|
12
16
|
}
|
|
@@ -29,7 +33,8 @@ interface Props<State extends ApplicationRuntimeState, CONFIGURATOR_EXTENSIONS e
|
|
|
29
33
|
}
|
|
30
34
|
/**
|
|
31
35
|
* The domain-application layer: the domain runtime plus the browser-application concerns React
|
|
32
|
-
* needs — common services, integration, routing, session — and the domain-application
|
|
36
|
+
* needs — common services, integration, routing, session, loading — and the domain-application
|
|
37
|
+
* system pair.
|
|
33
38
|
*
|
|
34
39
|
* Slices rather than a runtime: the caller owns the `BehaviorSubject`, so a layer above can widen
|
|
35
40
|
* the state type and still have every slice here write into the same subject. Mirrors
|
|
@@ -48,6 +53,8 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
48
53
|
webComponent: import("#package/domain").ApplicationWebComponentState;
|
|
49
54
|
domainContext: import("#package/domain").ApplicationDomainContextState;
|
|
50
55
|
integration: IntegrationState;
|
|
56
|
+
loading: LoadingRuntimeState;
|
|
57
|
+
responsive: ResponsiveRuntimeState;
|
|
51
58
|
routing: RoutingRuntimeState;
|
|
52
59
|
session: ApplicationSessionRuntime;
|
|
53
60
|
};
|
|
@@ -93,6 +100,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
93
100
|
selectElementSlots: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, {
|
|
94
101
|
entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
|
|
95
102
|
layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
|
|
103
|
+
assistantFormElements: Record<string, import("react").ComponentType<never>>;
|
|
96
104
|
hashes: Record<string, string>;
|
|
97
105
|
}>;
|
|
98
106
|
selectDataConfig: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").DataSpec | null>;
|
|
@@ -136,6 +144,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
136
144
|
getElementSlots: () => {
|
|
137
145
|
entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
|
|
138
146
|
layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
|
|
147
|
+
assistantFormElements: Record<string, import("react").ComponentType<never>>;
|
|
139
148
|
hashes: Record<string, string>;
|
|
140
149
|
};
|
|
141
150
|
getDataConfig: () => import("#package/domain").DataSpec | null;
|
|
@@ -422,6 +431,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
422
431
|
getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
|
|
423
432
|
getActiveMode: () => import("#package/domain").DomainMode;
|
|
424
433
|
getIsInitialized: () => boolean;
|
|
434
|
+
getIsViewMode: () => boolean;
|
|
425
435
|
getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
|
|
426
436
|
getStoreRuntimeDependencies: () => {
|
|
427
437
|
componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
|
|
@@ -531,6 +541,7 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
531
541
|
getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
|
|
532
542
|
getActiveMode: () => import("#package/domain").DomainMode;
|
|
533
543
|
getIsInitialized: () => boolean;
|
|
544
|
+
getIsViewMode: () => boolean;
|
|
534
545
|
getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
|
|
535
546
|
getStoreRuntimeDependencies: () => {
|
|
536
547
|
componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
|
|
@@ -596,7 +607,6 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
596
607
|
getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
|
|
597
608
|
};
|
|
598
609
|
integration: {
|
|
599
|
-
selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
|
|
600
610
|
selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
|
|
601
611
|
selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
|
|
602
612
|
selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
|
|
@@ -607,6 +617,36 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
607
617
|
getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
|
|
608
618
|
getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
|
|
609
619
|
};
|
|
620
|
+
loading: {
|
|
621
|
+
configurator: {
|
|
622
|
+
selectLoadingState: import("@salsita-ai/common/utils").Selector<import("../loading/selectors.js").LoadingSelectorState, import("../index.js").LoadingState>;
|
|
623
|
+
getLoadingState: () => import("../index.js").LoadingState;
|
|
624
|
+
getIsAwaitingPhase: (id: string) => boolean;
|
|
625
|
+
};
|
|
626
|
+
admin: {
|
|
627
|
+
selectLoadingState: import("@salsita-ai/common/utils").Selector<import("../loading/selectors.js").LoadingSelectorState, import("../index.js").LoadingState>;
|
|
628
|
+
getLoadingState: () => import("../index.js").LoadingState;
|
|
629
|
+
getIsAwaitingPhase: (id: string) => boolean;
|
|
630
|
+
};
|
|
631
|
+
};
|
|
632
|
+
responsive: {
|
|
633
|
+
configurator: {
|
|
634
|
+
selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
|
|
635
|
+
selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
|
|
636
|
+
selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
|
|
637
|
+
getResponsiveState: () => import("../index.js").ResponsiveState;
|
|
638
|
+
getViewportSize: () => import("../index.js").ResponsiveViewportSize;
|
|
639
|
+
getCanvasPadding: () => import("../index.js").CanvasPadding;
|
|
640
|
+
};
|
|
641
|
+
admin: {
|
|
642
|
+
selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
|
|
643
|
+
selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
|
|
644
|
+
selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
|
|
645
|
+
getResponsiveState: () => import("../index.js").ResponsiveState;
|
|
646
|
+
getViewportSize: () => import("../index.js").ResponsiveViewportSize;
|
|
647
|
+
getCanvasPadding: () => import("../index.js").CanvasPadding;
|
|
648
|
+
};
|
|
649
|
+
};
|
|
610
650
|
routing: {
|
|
611
651
|
selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
|
|
612
652
|
selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
|
|
@@ -702,6 +742,50 @@ export declare function createApplicationRuntimeSlices<State extends Application
|
|
|
702
742
|
enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
|
|
703
743
|
exitEmbeddedView: () => void;
|
|
704
744
|
};
|
|
745
|
+
loading: {
|
|
746
|
+
configurator: {
|
|
747
|
+
startPhase: (phase: import("../index.js").LoadingPhase) => void;
|
|
748
|
+
endPhase: (id: string) => void;
|
|
749
|
+
reportError: () => void;
|
|
750
|
+
clearError: () => void;
|
|
751
|
+
expectPhase: (id: string) => void;
|
|
752
|
+
dropExpectation: (id: string) => void;
|
|
753
|
+
resetSlot: () => void;
|
|
754
|
+
};
|
|
755
|
+
admin: {
|
|
756
|
+
startPhase: (phase: import("../index.js").LoadingPhase) => void;
|
|
757
|
+
endPhase: (id: string) => void;
|
|
758
|
+
reportError: () => void;
|
|
759
|
+
clearError: () => void;
|
|
760
|
+
expectPhase: (id: string) => void;
|
|
761
|
+
dropExpectation: (id: string) => void;
|
|
762
|
+
resetSlot: () => void;
|
|
763
|
+
};
|
|
764
|
+
};
|
|
765
|
+
responsive: {
|
|
766
|
+
configurator: {
|
|
767
|
+
setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
|
|
768
|
+
setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
|
|
769
|
+
setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
|
|
770
|
+
expand: () => void;
|
|
771
|
+
collapse: () => void;
|
|
772
|
+
hide: () => void;
|
|
773
|
+
show: () => void;
|
|
774
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
775
|
+
reset: () => void;
|
|
776
|
+
};
|
|
777
|
+
admin: {
|
|
778
|
+
setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
|
|
779
|
+
setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
|
|
780
|
+
setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
|
|
781
|
+
expand: () => void;
|
|
782
|
+
collapse: () => void;
|
|
783
|
+
hide: () => void;
|
|
784
|
+
show: () => void;
|
|
785
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
786
|
+
reset: () => void;
|
|
787
|
+
};
|
|
788
|
+
};
|
|
705
789
|
routing: {
|
|
706
790
|
setRoutingState: (routingState: import("../index.js").RoutingState) => void;
|
|
707
791
|
};
|
|
@@ -761,6 +845,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
761
845
|
selectElementSlots: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, {
|
|
762
846
|
entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
|
|
763
847
|
layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
|
|
848
|
+
assistantFormElements: Record<string, import("react").ComponentType<never>>;
|
|
764
849
|
hashes: Record<string, string>;
|
|
765
850
|
}>;
|
|
766
851
|
selectDataConfig: import("@salsita-ai/common/utils").Selector<import("#package/domain").SpecSelectorState, import("#package/domain").DataSpec | null>;
|
|
@@ -804,6 +889,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
804
889
|
getElementSlots: () => {
|
|
805
890
|
entityElements: Record<string, (props: import("#package/domain").CustomPhoenixEntityElementProps) => JSX.Element>;
|
|
806
891
|
layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
|
|
892
|
+
assistantFormElements: Record<string, import("react").ComponentType<never>>;
|
|
807
893
|
hashes: Record<string, string>;
|
|
808
894
|
};
|
|
809
895
|
getDataConfig: () => import("#package/domain").DataSpec | null;
|
|
@@ -1090,6 +1176,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
1090
1176
|
getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
|
|
1091
1177
|
getActiveMode: () => import("#package/domain").DomainMode;
|
|
1092
1178
|
getIsInitialized: () => boolean;
|
|
1179
|
+
getIsViewMode: () => boolean;
|
|
1093
1180
|
getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
|
|
1094
1181
|
getStoreRuntimeDependencies: () => {
|
|
1095
1182
|
componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
|
|
@@ -1199,6 +1286,7 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
1199
1286
|
getMigrate: () => import("#package/domain").MigrateFunction<import("#package/domain").DomainEntity<string>>;
|
|
1200
1287
|
getActiveMode: () => import("#package/domain").DomainMode;
|
|
1201
1288
|
getIsInitialized: () => boolean;
|
|
1289
|
+
getIsViewMode: () => boolean;
|
|
1202
1290
|
getComponentReaderIndexes: () => import("#package/domain").ComponentReaderIndexes;
|
|
1203
1291
|
getStoreRuntimeDependencies: () => {
|
|
1204
1292
|
componentReaderIndexes: import("#package/domain").ComponentReaderIndexes;
|
|
@@ -1264,7 +1352,6 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
1264
1352
|
getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
|
|
1265
1353
|
};
|
|
1266
1354
|
integration: {
|
|
1267
|
-
selectAdminIntegrationService: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").AdminIntegrationService>;
|
|
1268
1355
|
selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
|
|
1269
1356
|
selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
|
|
1270
1357
|
selectPresetEmbeddedState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").PresetEmbeddedView | null>;
|
|
@@ -1275,6 +1362,36 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
1275
1362
|
getPresetEmbeddedState: () => import("../index.js").PresetEmbeddedView | null;
|
|
1276
1363
|
getRecipeEmbeddedState: () => import("../index.js").RecipeEmbeddedView | null;
|
|
1277
1364
|
};
|
|
1365
|
+
loading: {
|
|
1366
|
+
configurator: {
|
|
1367
|
+
selectLoadingState: import("@salsita-ai/common/utils").Selector<import("../loading/selectors.js").LoadingSelectorState, import("../index.js").LoadingState>;
|
|
1368
|
+
getLoadingState: () => import("../index.js").LoadingState;
|
|
1369
|
+
getIsAwaitingPhase: (id: string) => boolean;
|
|
1370
|
+
};
|
|
1371
|
+
admin: {
|
|
1372
|
+
selectLoadingState: import("@salsita-ai/common/utils").Selector<import("../loading/selectors.js").LoadingSelectorState, import("../index.js").LoadingState>;
|
|
1373
|
+
getLoadingState: () => import("../index.js").LoadingState;
|
|
1374
|
+
getIsAwaitingPhase: (id: string) => boolean;
|
|
1375
|
+
};
|
|
1376
|
+
};
|
|
1377
|
+
responsive: {
|
|
1378
|
+
configurator: {
|
|
1379
|
+
selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
|
|
1380
|
+
selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
|
|
1381
|
+
selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
|
|
1382
|
+
getResponsiveState: () => import("../index.js").ResponsiveState;
|
|
1383
|
+
getViewportSize: () => import("../index.js").ResponsiveViewportSize;
|
|
1384
|
+
getCanvasPadding: () => import("../index.js").CanvasPadding;
|
|
1385
|
+
};
|
|
1386
|
+
admin: {
|
|
1387
|
+
selectResponsiveState: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveState>;
|
|
1388
|
+
selectViewportSize: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").ResponsiveViewportSize>;
|
|
1389
|
+
selectCanvasPadding: import("@salsita-ai/common/utils").Selector<import("../responsive/selectors.js").ResponsiveSelectorState, import("../index.js").CanvasPadding>;
|
|
1390
|
+
getResponsiveState: () => import("../index.js").ResponsiveState;
|
|
1391
|
+
getViewportSize: () => import("../index.js").ResponsiveViewportSize;
|
|
1392
|
+
getCanvasPadding: () => import("../index.js").CanvasPadding;
|
|
1393
|
+
};
|
|
1394
|
+
};
|
|
1278
1395
|
routing: {
|
|
1279
1396
|
selectRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
|
|
1280
1397
|
selectEffectiveRoutingState: import("@salsita-ai/common/utils").Selector<import("../index.js").RoutingSelectorState, import("../index.js").RoutingState>;
|
|
@@ -1370,6 +1487,50 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
|
|
|
1370
1487
|
enterEmbeddedView: (view: import("../index.js").EmbeddedView) => void;
|
|
1371
1488
|
exitEmbeddedView: () => void;
|
|
1372
1489
|
};
|
|
1490
|
+
loading: {
|
|
1491
|
+
configurator: {
|
|
1492
|
+
startPhase: (phase: import("../index.js").LoadingPhase) => void;
|
|
1493
|
+
endPhase: (id: string) => void;
|
|
1494
|
+
reportError: () => void;
|
|
1495
|
+
clearError: () => void;
|
|
1496
|
+
expectPhase: (id: string) => void;
|
|
1497
|
+
dropExpectation: (id: string) => void;
|
|
1498
|
+
resetSlot: () => void;
|
|
1499
|
+
};
|
|
1500
|
+
admin: {
|
|
1501
|
+
startPhase: (phase: import("../index.js").LoadingPhase) => void;
|
|
1502
|
+
endPhase: (id: string) => void;
|
|
1503
|
+
reportError: () => void;
|
|
1504
|
+
clearError: () => void;
|
|
1505
|
+
expectPhase: (id: string) => void;
|
|
1506
|
+
dropExpectation: (id: string) => void;
|
|
1507
|
+
resetSlot: () => void;
|
|
1508
|
+
};
|
|
1509
|
+
};
|
|
1510
|
+
responsive: {
|
|
1511
|
+
configurator: {
|
|
1512
|
+
setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
|
|
1513
|
+
setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
|
|
1514
|
+
setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
|
|
1515
|
+
expand: () => void;
|
|
1516
|
+
collapse: () => void;
|
|
1517
|
+
hide: () => void;
|
|
1518
|
+
show: () => void;
|
|
1519
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
1520
|
+
reset: () => void;
|
|
1521
|
+
};
|
|
1522
|
+
admin: {
|
|
1523
|
+
setViewport: (viewport: import("../index.js").ResponsiveViewport) => void;
|
|
1524
|
+
setBreakpoints: (breakpoints: import("../index.js").ResponsiveBreakpoints) => void;
|
|
1525
|
+
setCanvasPadding: (canvasPadding: import("../index.js").CanvasPadding) => void;
|
|
1526
|
+
expand: () => void;
|
|
1527
|
+
collapse: () => void;
|
|
1528
|
+
hide: () => void;
|
|
1529
|
+
show: () => void;
|
|
1530
|
+
setAnimating: (isAnimating: boolean) => void;
|
|
1531
|
+
reset: () => void;
|
|
1532
|
+
};
|
|
1533
|
+
};
|
|
1373
1534
|
routing: {
|
|
1374
1535
|
setRoutingState: (routingState: import("../index.js").RoutingState) => void;
|
|
1375
1536
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{
|
|
1
|
+
import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{ImplementationErrors as i,createDomainRuntimeSlices as n,findAssistantFormElementErrors as o,resolveIsDev as s}from"#package/domain";import{initializeAnalyticsService as a}from"../common-services/analytics/analytics-service.js";import{initializeI18n as r,initializeLogger as c}from"../common-services/initialize.js";import{createCommonServicesSelectors as l}from"../common-services/selectors.js";import{createDomainApplicationContextSelectors as m}from"../domain-application-context/index.js";import{createIntegrationActions as p,createIntegrationSelectors as u,initializeIntegration as g}from"../integration/index.js";import{createLoadingActions as d,createLoadingSelectors as v,initializeLoading as S}from"../loading/index.js";import{createResponsiveActions as x,createResponsiveSelectors as f,initializeResponsive as C}from"../responsive/index.js";import{createRoutingActions as y,createRoutingSelectors as A,initializeRouting as b}from"../routing/index.js";import{SessionService as j,createSessionRuntimeActions as w,createSessionRuntimeSelectors as R,initializeSessionRuntime as T}from"../session/index.js";export function createApplicationRuntimeSlices(e){let{config:h,bootConfig:E,getSubject:I,getConfiguratorExtensions:z}=e,D=s(h),L=c(h,D),O={analyticsService:a(h,L,D),i18n:r(h),logger:L},{initialize:U,selectors:k,actions:G}=n({config:h,services:O,getSubject:I,getExtensionSystems:e=>eo[e].getInitializableSystems()}),$=U(),{assistant:q,elements:B}=$.spec.configurator,F=o(q?.formElements??[],B);if(F.length>0)throw new i(F);let H=p({setIntegration:e=>{let t=I(),i=e(t.value.integration);t.next({...t.value,integration:i})}}),J=u({getState:()=>I().value,actions:H}),K=g(),M=y({setRouting:e=>{let t=I(),i=e(t.value.routing);t.next({...t.value,routing:i})}}),N=A({getState:()=>I().value,actions:M,accessActions:G.access,loadedDataActions:G.loadedData,domainServicesSelectors:k.domainServices,overridesSelectors:k.overrides}),P=b(),Q=x({setResponsive:e=>{let t=I(),i=e(t.value.responsive);i!==t.value.responsive&&t.next({...t.value,responsive:i})}}),V={configurator:f({getState:()=>I().value,applicationType:"configurator"}),admin:f({getState:()=>I().value,applicationType:"admin"})},W=C(),X=d({setLoading:e=>{let t=I(),i=e(t.value.loading);i!==t.value.loading&&t.next({...t.value,loading:i})}}),Y={configurator:v({getState:()=>I().value,applicationType:"configurator"}),admin:v({getState:()=>I().value,applicationType:"admin"})},Z=S(),_=l({getState:()=>I().value,environmentSelectors:k.environment,specSelectors:k.spec,accessSelectors:k.access,domainServicesSelectors:k.domainServices,webComponentOptions:E.webComponentOptions,webComponentApi:E.webComponentApi,getSessionService:()=>en(),routingSelectors:N}),ee=w({setSessionRuntime:e=>{let t=I(),i=e(t.value.session);t.next({...t.value,session:i})}}),et=R({getState:()=>I().value,sessionContextSelectors:k.sessionContext}),ei=T(),en=t(()=>new j({getLogger:()=>k.domainServices.getLogger(),getAnalyticsService:()=>k.domainServices.getAnalyticsService(),getUnauthenticatedClient:_.getUnauthenticatedClient,environmentSelectors:k.environment,sessionActions:ee,setSessionContext:G.sessionContext.setSessionContext,sessionSelectors:et,specSelectors:k.spec})),eo={configurator:m({applicationType:"configurator",commonServicesSelectors:_,domainServicesSelectors:k.domainServices,domainContextSelectors:k.domainContext.configurator,getApplicationRuntimeExtensions:z}),admin:m({applicationType:"admin",commonServicesSelectors:_,domainServicesSelectors:k.domainServices,domainContextSelectors:k.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})};return L.info(`Configurator Application loaded with deployment ID: ${h.deploymentId}!`),L.appendToGlobalContext({deploymentId:h.deploymentId}),{getState:()=>I().value,initialize:()=>({...$,integration:K,loading:Z,responsive:W,routing:P,session:ei}),selectors:{...k,commonServices:_,integration:J,loading:Y,responsive:V,routing:N,session:et,domainApplicationContext:eo},actions:{...G,integration:H,loading:X,responsive:Q,routing:M,session:ee}}}export function createApplicationRuntime(t,i,n){return((t,i,n)=>{let o=null,s=null,a=()=>{if(!o)throw Error("Subject not yet initialized!");return o},{initialize:r,...c}=createApplicationRuntimeSlices({config:t,bootConfig:i,getSubject:a,getConfiguratorExtensions:()=>s});return s=n?n(c):[],c.selectors.domainApplicationContext.configurator.getSystems(),o=new e(r()),{...c,getState:()=>a().value,subscribe:e=>{let t=a().subscribe(()=>e());return()=>t.unsubscribe()}}})(t,i,n)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as a}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as t}from"#package/ui-sdk";import{BackendDataValueProvider as n,useProvidedFrontendData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as i,useApplicationRuntimeSelector as d,useAuthenticatedClient as c,useConfiguratorDomainFactory as s,useDomainDataActions as l,useFrontendData as u,useLogger as
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as t}from"#package/ui-sdk";import{BackendDataValueProvider as n,useProvidedFrontendData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as i,useApplicationRuntimeSelector as d,useAuthenticatedClient as c,useConfiguratorDomainFactory as s,useDomainDataActions as l,useFrontendData as k,useIsLoaderHosted as u,useLogger as m}from"../application-runtime/index.js";import{BuiltInLoadingPhase as f,useLoadingPhase as h}from"../loading-state/index.js";let D=e=>a(n,{backendData:d(i().selectors.domainData.getConfiguratorBackendData),children:e.children}),p=n=>{let i=m(),d=s(),p=l(),y=c(),v=k(),{frontendDataLoadKey:w}=o();if(!d)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering BackendDataProvider.");if(void 0===w)throw Error("Frontend data load key not found! Render BackendDataProvider inside FrontendDataProvider so data reloads together.");let B=r(async a=>{try{return{success:!0,data:await y.getBackendData(a)}}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);return i.warn("Failed to fetch backend data:",{},a),{success:!1}}},[y,i]),b=r(async(a,e)=>{if(!d.hasBackendData)return void p.setBackendData(void 0);let r=await B(a);if(e.throwIfAborted(),!r.success)return void p.setBackendData(void 0);try{let a=d.parseBackendData(r.data);return p.setBackendData(a),a}catch(e){let a=e instanceof Error?e:Error(`Unknown error ${e}`);i.error("Failed to parse backend data:",{backendData:r},a),p.setBackendData(void 0);return}},[d,B,i,p]),{data:g,error:F,isFetching:E}=e({queryKey:["get-backend-data",w],queryFn:async({signal:a})=>({backendData:await b(v,a)}),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1}),x=u();if(h({id:f.BackendData,label:"Loading backend data…"},(void 0===g||E)&&!F),F)throw F;return void 0===g||E?x?null:a(t,{}):a(D,{children:n.children},w)};export const BackendDataProvider=e=>a(p,{...e});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as a}from"#package/ui-sdk";import{FrontendDataValueProvider as n,useProvidedPublishedData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as d,useApplicationRuntimeSelector as i,useConfiguratorDomainFactory as s,useDomainDataActions as c,
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{useQuery as e}from"@tanstack/react-query";import{useCallback as r}from"react";import{Loader as a}from"#package/ui-sdk";import{FrontendDataValueProvider as n,useProvidedPublishedData as o}from"../application-runtime/hooks/data/index.js";import{useApplicationRuntime as d,useApplicationRuntimeSelector as i,useConfiguratorDomainFactory as s,useDomainDataActions as c,useIsLoaderHosted as l,useLogger as u,usePublishedData as f,useSession as m,useWebComponentApi as h}from"../application-runtime/index.js";import{BuiltInLoadingPhase as D,useLoadingPhase as y}from"../loading-state/index.js";import{CollectFrontendDataHandlerBoundary as p,useCollectFrontendDataHandler as F}from"./CollectFrontendDataHandler.js";let w=e=>t(n,{frontendData:i(d().selectors.domainData.getConfiguratorFrontendData),frontendDataLoadKey:e.frontendDataLoadKey,children:e.children}),g=n=>{let d=u(),i=s(),p=c(),g=m(),v=f(),{publishedDataLoadKey:P}=o(),{getPropertyValue:b}=h(),k=F();if(!i)throw Error("DomainFactory is not available in the runtime registry. Ensure replaceDomainRuntime() is called with domainFactory before rendering FrontendDataProvider.");if(void 0===P)throw Error("Published data load key not found! Render FrontendDataProvider inside PublishedDataProvider so data reloads together.");let E=r(async t=>{if(null==k)return{success:!1};try{return{success:!0,data:await k({sessionData:g.sessionPayload?.data??{},publishedData:t,getWebComponentPropertyValue:b})}}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return d.warn("Failed to collect frontend data, the collectFrontendData function threw an error, have you provided collectFrontendData function? Does it return data matching the frontendData spec defined in your domain?",{},t),{success:!1}}},[k,b,d,g.sessionPayload?.data]),j=r(async(t,e)=>{let r=await E(t);if(e.throwIfAborted(),!r.success)return p.setFrontendData({}),{};try{let t=i.parseFrontendData(r.data);return d.debug("Collected frontend data:",t),p.setFrontendData(t),t}catch(e){let t=e instanceof Error?e:Error(`Unknown error ${e}`);return d.error("Failed to parse frontend data:",{frontendData:r},t),p.setFrontendData({}),{}}},[i,E,d,p]),{data:x,error:K,isFetching:L}=e({queryKey:["get-frontend-data",P],queryFn:async({signal:t})=>j(v,t),refetchOnMount:"always",refetchOnWindowFocus:!1,refetchOnReconnect:!1}),q=l();if(y({id:D.FrontendData,label:"Loading frontend data…"},(void 0===x||L)&&!K),K)throw K;return void 0===x||L?q?null:t(a,{}):t(w,{frontendDataLoadKey:P,children:n.children},P)};export const FrontendDataProvider=e=>t(p,{children:t(g,{...e})});
|