@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
- package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +21 -13
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +210 -57
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +28 -16
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +32 -8
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +18 -9
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.js +39 -14
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.js +14 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +134 -51
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
- package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-store-selection.js +57 -0
- package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +4 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/Actions/action-result-code.d.ts +80 -0
- package/dist/Actions/action-result-code.d.ts.map +1 -0
- package/dist/Actions/action-result-code.js +163 -0
- package/dist/Actions/action-result-code.js.map +1 -0
- package/dist/Actions/components/actions-overview.component.d.ts +8 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +12 -9
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +65 -42
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +5 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +198 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +289 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +6 -0
- package/dist/ChiefOfStaff/index.d.ts.map +1 -0
- package/dist/ChiefOfStaff/index.js +6 -0
- package/dist/ChiefOfStaff/index.js.map +1 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +2 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +26 -21
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +14 -13
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +3 -0
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +45 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +178 -55
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +2 -2
- package/dist/DevTools/lazy-module-status.component.js +2 -2
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
- package/dist/FormBuilder/form-builder-resource.component.js +5 -0
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +2 -2
- package/dist/Integration/services/integration-data.service.d.ts +1 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +4 -3
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +111 -77
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +118 -65
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
- package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +257 -521
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +124 -251
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +338 -326
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +52 -2
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +186 -103
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.js +22 -4
- package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
- package/dist/VideoStudio/index.d.ts +12 -0
- package/dist/VideoStudio/index.d.ts.map +1 -0
- package/dist/VideoStudio/index.js +12 -0
- package/dist/VideoStudio/index.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.js +992 -0
- package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
- package/dist/ai-dashboards.module.d.ts +25 -21
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +25 -3
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +8 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +10 -0
- package/dist/public-api.js.map +1 -1
- package/dist/shared/action-scheduled-job.d.ts.map +1 -1
- package/dist/shared/action-scheduled-job.js +2 -0
- package/dist/shared/action-scheduled-job.js.map +1 -1
- package/dist/video-studio-dashboards.module.d.ts +40 -0
- package/dist/video-studio-dashboards.module.d.ts.map +1 -0
- package/dist/video-studio-dashboards.module.js +159 -0
- package/dist/video-studio-dashboards.module.js.map +1 -0
- package/package.json +77 -71
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
- package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
|
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
* @fileoverview Login Studio: design the Explorer sign-in page as data, on the default theme.
|
|
9
9
|
* @module LoginStudio
|
|
10
10
|
*/
|
|
11
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, inject } from '@angular/core';
|
|
11
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, ViewChild, inject, } from '@angular/core';
|
|
12
12
|
import { DOCUMENT } from '@angular/common';
|
|
13
13
|
import { CdkDrag, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
14
14
|
import { takeUntil } from 'rxjs';
|
|
@@ -22,35 +22,36 @@ import { CloneLoginBlock, DefaultLoginDesign, IsLoginHexColor, IsSafeLoginImageU
|
|
|
22
22
|
import { LoginStudioInspectorComponent } from './login-studio-inspector.component';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
import * as i1 from "@memberjunction/ng-shared-generic";
|
|
25
|
+
const _c0 = ["frame"];
|
|
25
26
|
const _forTrack0 = ($index, $item) => $item.Type;
|
|
26
27
|
function LoginStudioResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
i0.ɵɵelement(0, "mj-stat-badge",
|
|
28
|
+
i0.ɵɵelement(0, "mj-stat-badge", 2);
|
|
28
29
|
} if (rf & 2) {
|
|
29
30
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
30
31
|
i0.ɵɵproperty("Label", ctx_r0.StatusLabel)("Variant", ctx_r0.StatusVariant);
|
|
31
32
|
} }
|
|
32
33
|
function LoginStudioResourceComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
33
34
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
34
|
-
i0.ɵɵelementStart(0, "div",
|
|
35
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "button", 9);
|
|
35
36
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Undo()); });
|
|
36
|
-
i0.ɵɵelement(2, "i",
|
|
37
|
+
i0.ɵɵelement(2, "i", 10);
|
|
37
38
|
i0.ɵɵelementEnd();
|
|
38
|
-
i0.ɵɵelementStart(3, "button",
|
|
39
|
+
i0.ɵɵelementStart(3, "button", 11);
|
|
39
40
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_3_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Redo()); });
|
|
40
|
-
i0.ɵɵelement(4, "i",
|
|
41
|
+
i0.ɵɵelement(4, "i", 12);
|
|
41
42
|
i0.ɵɵelementEnd();
|
|
42
|
-
i0.ɵɵelementStart(5, "button",
|
|
43
|
+
i0.ɵɵelementStart(5, "button", 13);
|
|
43
44
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Discard()); });
|
|
44
45
|
i0.ɵɵtext(6, "Discard changes");
|
|
45
46
|
i0.ɵɵelementEnd();
|
|
46
|
-
i0.ɵɵelementStart(7, "button",
|
|
47
|
+
i0.ɵɵelementStart(7, "button", 13);
|
|
47
48
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_3_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SaveDraft()); });
|
|
48
|
-
i0.ɵɵelement(8, "i",
|
|
49
|
+
i0.ɵɵelement(8, "i", 14);
|
|
49
50
|
i0.ɵɵtext(9, " Save draft ");
|
|
50
51
|
i0.ɵɵelementEnd();
|
|
51
|
-
i0.ɵɵelementStart(10, "button",
|
|
52
|
+
i0.ɵɵelementStart(10, "button", 15);
|
|
52
53
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_3_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Publish()); });
|
|
53
|
-
i0.ɵɵelement(11, "i",
|
|
54
|
+
i0.ɵɵelement(11, "i", 16);
|
|
54
55
|
i0.ɵɵtext(12, " Publish ");
|
|
55
56
|
i0.ɵɵelementEnd()();
|
|
56
57
|
} if (rf & 2) {
|
|
@@ -68,7 +69,7 @@ function LoginStudioResourceComponent_Conditional_3_Template(rf, ctx) { if (rf &
|
|
|
68
69
|
} }
|
|
69
70
|
function LoginStudioResourceComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
70
71
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
71
|
-
i0.ɵɵelementStart(0, "mj-alert",
|
|
72
|
+
i0.ɵɵelementStart(0, "mj-alert", 17);
|
|
72
73
|
i0.ɵɵlistener("Dismissed", function LoginStudioResourceComponent_Conditional_5_Template_mj_alert_Dismissed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.DismissError()); });
|
|
73
74
|
i0.ɵɵelementEnd();
|
|
74
75
|
} if (rf & 2) {
|
|
@@ -77,7 +78,7 @@ function LoginStudioResourceComponent_Conditional_5_Template(rf, ctx) { if (rf &
|
|
|
77
78
|
} }
|
|
78
79
|
function LoginStudioResourceComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
79
80
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
80
|
-
i0.ɵɵelementStart(0, "mj-alert",
|
|
81
|
+
i0.ɵɵelementStart(0, "mj-alert", 18);
|
|
81
82
|
i0.ɵɵlistener("Dismissed", function LoginStudioResourceComponent_Conditional_6_Template_mj_alert_Dismissed_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.DismissNotice()); });
|
|
82
83
|
i0.ɵɵelementEnd();
|
|
83
84
|
} if (rf & 2) {
|
|
@@ -85,16 +86,16 @@ function LoginStudioResourceComponent_Conditional_6_Template(rf, ctx) { if (rf &
|
|
|
85
86
|
i0.ɵɵproperty("Message", ctx_r0.NoticeMessage);
|
|
86
87
|
} }
|
|
87
88
|
function LoginStudioResourceComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
-
i0.ɵɵelement(0, "mj-loading",
|
|
89
|
+
i0.ɵɵelement(0, "mj-loading", 6);
|
|
89
90
|
} }
|
|
90
91
|
function LoginStudioResourceComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
92
|
+
i0.ɵɵelement(0, "mj-empty-state", 7);
|
|
92
93
|
} }
|
|
93
94
|
function LoginStudioResourceComponent_Conditional_9_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
94
95
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
95
|
-
i0.ɵɵelementStart(0, "button",
|
|
96
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
96
97
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_For_8_Template_button_click_0_listener() { const t_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.AddBlock(t_r7.Type)); });
|
|
97
|
-
i0.ɵɵelement(1, "i",
|
|
98
|
+
i0.ɵɵelement(1, "i", 43);
|
|
98
99
|
i0.ɵɵelementStart(2, "span");
|
|
99
100
|
i0.ɵɵtext(3);
|
|
100
101
|
i0.ɵɵelementEnd()();
|
|
@@ -106,13 +107,13 @@ function LoginStudioResourceComponent_Conditional_9_For_8_Template(rf, ctx) { if
|
|
|
106
107
|
i0.ɵɵadvance(2);
|
|
107
108
|
i0.ɵɵtextInterpolate(t_r7.Label);
|
|
108
109
|
} }
|
|
109
|
-
function
|
|
110
|
-
i0.ɵɵelementStart(0, "p",
|
|
110
|
+
function LoginStudioResourceComponent_Conditional_9_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "p", 33);
|
|
111
112
|
i0.ɵɵtext(1, "Empty: visitors see the stock logo and \"Welcome back\" here.");
|
|
112
113
|
i0.ɵɵelementEnd();
|
|
113
114
|
} }
|
|
114
|
-
function
|
|
115
|
-
i0.ɵɵelementStart(0, "span",
|
|
115
|
+
function LoginStudioResourceComponent_Conditional_9_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
116
|
+
i0.ɵɵelementStart(0, "span", 38);
|
|
116
117
|
i0.ɵɵtext(1);
|
|
117
118
|
i0.ɵɵelementEnd();
|
|
118
119
|
} if (rf & 2) {
|
|
@@ -120,72 +121,72 @@ function LoginStudioResourceComponent_Conditional_9_Conditional_28_Template(rf,
|
|
|
120
121
|
i0.ɵɵadvance();
|
|
121
122
|
i0.ɵɵtextInterpolate(ctx_r0.Design.Heading);
|
|
122
123
|
} }
|
|
123
|
-
function
|
|
124
|
+
function LoginStudioResourceComponent_Conditional_9_Conditional_40_Template(rf, ctx) { if (rf & 1) {
|
|
124
125
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
125
|
-
i0.ɵɵelementStart(0, "button",
|
|
126
|
-
i0.ɵɵlistener("click", function
|
|
127
|
-
i0.ɵɵelement(1, "i",
|
|
126
|
+
i0.ɵɵelementStart(0, "button", 48);
|
|
127
|
+
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_Conditional_40_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.Select(null)); });
|
|
128
|
+
i0.ɵɵelement(1, "i", 49);
|
|
128
129
|
i0.ɵɵelementEnd();
|
|
129
130
|
} }
|
|
130
131
|
function LoginStudioResourceComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
131
132
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
132
|
-
i0.ɵɵelementStart(0, "div",
|
|
133
|
+
i0.ɵɵelementStart(0, "div", 8)(1, "aside", 19)(2, "h2", 20);
|
|
133
134
|
i0.ɵɵtext(3, "Blocks");
|
|
134
135
|
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵelementStart(4, "p",
|
|
136
|
+
i0.ɵɵelementStart(4, "p", 21);
|
|
136
137
|
i0.ɵɵtext(5, "Drag a block onto the page, or click one to add it after the selected block.");
|
|
137
138
|
i0.ɵɵelementEnd();
|
|
138
|
-
i0.ɵɵelementStart(6, "div",
|
|
139
|
-
i0.ɵɵrepeaterCreate(7, LoginStudioResourceComponent_Conditional_9_For_8_Template, 4, 5, "button",
|
|
139
|
+
i0.ɵɵelementStart(6, "div", 22);
|
|
140
|
+
i0.ɵɵrepeaterCreate(7, LoginStudioResourceComponent_Conditional_9_For_8_Template, 4, 5, "button", 23, _forTrack0);
|
|
140
141
|
i0.ɵɵelementEnd()();
|
|
141
|
-
i0.ɵɵelementStart(9, "section",
|
|
142
|
+
i0.ɵɵelementStart(9, "section", 24);
|
|
142
143
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_Template_section_click_9_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnStageClick()); });
|
|
143
|
-
i0.ɵɵelementStart(10, "div",
|
|
144
|
+
i0.ɵɵelementStart(10, "div", 25);
|
|
144
145
|
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_Template_div_click_10_listener($event) { return $event.stopPropagation(); });
|
|
145
|
-
i0.ɵɵelementStart(11, "mj-view-toggle",
|
|
146
|
+
i0.ɵɵelementStart(11, "mj-view-toggle", 26);
|
|
146
147
|
i0.ɵɵlistener("KeyChange", function LoginStudioResourceComponent_Conditional_9_Template_mj_view_toggle_KeyChange_11_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SetDevice($event)); });
|
|
147
148
|
i0.ɵɵelementEnd();
|
|
148
|
-
i0.ɵɵelementStart(12, "span",
|
|
149
|
+
i0.ɵɵelementStart(12, "span", 21);
|
|
149
150
|
i0.ɵɵtext(13, "The sign-in button is a stand-in. The real one opens your sign-in provider.");
|
|
150
151
|
i0.ɵɵelementEnd()();
|
|
151
|
-
i0.ɵɵelementStart(14, "div",
|
|
152
|
-
i0.ɵɵlistener("click", function
|
|
153
|
-
i0.ɵɵelementStart(
|
|
154
|
-
i0.ɵɵtext(
|
|
152
|
+
i0.ɵɵelementStart(14, "div", 27, 0)(16, "div", 28);
|
|
153
|
+
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_Template_div_click_16_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SelectSurface("Banner", $event)); });
|
|
154
|
+
i0.ɵɵelementStart(17, "div", 29)(18, "div", 30)(19, "span", 31);
|
|
155
|
+
i0.ɵɵtext(20);
|
|
155
156
|
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelementStart(
|
|
157
|
-
i0.ɵɵlistener("Dropped", function
|
|
157
|
+
i0.ɵɵelementStart(21, "mj-login-region", 32);
|
|
158
|
+
i0.ɵɵlistener("Dropped", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_Dropped_21_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnDrop($event)); })("SelectRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_SelectRequested_21_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Select($event)); })("CommandRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_CommandRequested_21_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnCommand($event)); });
|
|
158
159
|
i0.ɵɵelementEnd();
|
|
159
|
-
i0.ɵɵconditionalCreate(
|
|
160
|
+
i0.ɵɵconditionalCreate(22, LoginStudioResourceComponent_Conditional_9_Conditional_22_Template, 2, 0, "p", 33);
|
|
160
161
|
i0.ɵɵelementEnd()();
|
|
161
|
-
i0.ɵɵelementStart(
|
|
162
|
-
i0.ɵɵlistener("click", function
|
|
163
|
-
i0.ɵɵelementStart(
|
|
164
|
-
i0.ɵɵtext(
|
|
162
|
+
i0.ɵɵelementStart(23, "div", 34);
|
|
163
|
+
i0.ɵɵlistener("click", function LoginStudioResourceComponent_Conditional_9_Template_div_click_23_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SelectSurface("Panel", $event)); });
|
|
164
|
+
i0.ɵɵelementStart(24, "div", 35)(25, "span", 31);
|
|
165
|
+
i0.ɵɵtext(26);
|
|
165
166
|
i0.ɵɵelementEnd();
|
|
166
|
-
i0.ɵɵelementStart(
|
|
167
|
-
i0.ɵɵlistener("Dropped", function
|
|
167
|
+
i0.ɵɵelementStart(27, "mj-login-region", 36);
|
|
168
|
+
i0.ɵɵlistener("Dropped", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_Dropped_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnDrop($event)); })("SelectRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_SelectRequested_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Select($event)); })("CommandRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_CommandRequested_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnCommand($event)); });
|
|
168
169
|
i0.ɵɵelementEnd();
|
|
169
|
-
i0.ɵɵelementStart(
|
|
170
|
-
i0.ɵɵconditionalCreate(
|
|
171
|
-
i0.ɵɵelementStart(
|
|
172
|
-
i0.ɵɵtext(
|
|
170
|
+
i0.ɵɵelementStart(28, "div", 37);
|
|
171
|
+
i0.ɵɵconditionalCreate(29, LoginStudioResourceComponent_Conditional_9_Conditional_29_Template, 2, 1, "span", 38);
|
|
172
|
+
i0.ɵɵelementStart(30, "span", 39);
|
|
173
|
+
i0.ɵɵtext(31, "Log in");
|
|
173
174
|
i0.ɵɵelementEnd()();
|
|
174
|
-
i0.ɵɵelementStart(
|
|
175
|
-
i0.ɵɵtext(
|
|
175
|
+
i0.ɵɵelementStart(32, "span", 31);
|
|
176
|
+
i0.ɵɵtext(33);
|
|
176
177
|
i0.ɵɵelementEnd();
|
|
177
|
-
i0.ɵɵelementStart(
|
|
178
|
-
i0.ɵɵlistener("Dropped", function
|
|
178
|
+
i0.ɵɵelementStart(34, "mj-login-region", 40);
|
|
179
|
+
i0.ɵɵlistener("Dropped", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_Dropped_34_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnDrop($event)); })("SelectRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_SelectRequested_34_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.Select($event)); })("CommandRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_region_CommandRequested_34_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnCommand($event)); });
|
|
179
180
|
i0.ɵɵelementEnd()()()()()();
|
|
180
|
-
i0.ɵɵelementStart(
|
|
181
|
-
i0.ɵɵelement(
|
|
182
|
-
i0.ɵɵelementStart(
|
|
183
|
-
i0.ɵɵtext(
|
|
181
|
+
i0.ɵɵelementStart(35, "aside", 41)(36, "div", 42);
|
|
182
|
+
i0.ɵɵelement(37, "i", 43);
|
|
183
|
+
i0.ɵɵelementStart(38, "h2", 44);
|
|
184
|
+
i0.ɵɵtext(39);
|
|
184
185
|
i0.ɵɵelementEnd();
|
|
185
|
-
i0.ɵɵconditionalCreate(
|
|
186
|
+
i0.ɵɵconditionalCreate(40, LoginStudioResourceComponent_Conditional_9_Conditional_40_Template, 2, 0, "button", 45);
|
|
186
187
|
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵelementStart(
|
|
188
|
-
i0.ɵɵlistener("EditRequested", function
|
|
188
|
+
i0.ɵɵelementStart(41, "mj-login-studio-inspector", 46);
|
|
189
|
+
i0.ɵɵlistener("EditRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_studio_inspector_EditRequested_41_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.ApplyEdit($event)); })("CommandRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_studio_inspector_CommandRequested_41_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnCommand($event)); })("StockPageRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_studio_inspector_StockPageRequested_41_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.UseStockPage()); })("SurfaceSelectRequested", function LoginStudioResourceComponent_Conditional_9_Template_mj_login_studio_inspector_SurfaceSelectRequested_41_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SelectSurface($event)); });
|
|
189
190
|
i0.ɵɵelementEnd()()();
|
|
190
191
|
} if (rf & 2) {
|
|
191
192
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -198,7 +199,8 @@ function LoginStudioResourceComponent_Conditional_9_Template(rf, ctx) { if (rf &
|
|
|
198
199
|
i0.ɵɵadvance(3);
|
|
199
200
|
i0.ɵɵstyleMap(ctx_r0.FrameStyle);
|
|
200
201
|
i0.ɵɵclassProp("ls__frame--phone", ctx_r0.Stacked);
|
|
201
|
-
i0.ɵɵadvance();
|
|
202
|
+
i0.ɵɵadvance(2);
|
|
203
|
+
i0.ɵɵstyleProp("transform", ctx_r0.Stacked ? null : "scale(" + ctx_r0.DesktopScale + ")");
|
|
202
204
|
i0.ɵɵclassProp("lp--reverse", ctx_r0.Design.Layout === "split-reverse")("lp--centered", ctx_r0.Design.Layout === "centered")("lp--stacked", ctx_r0.Stacked)("lp--surface-on", ctx_r0.Surface === "Banner" && ctx_r0.Design.Layout === "centered");
|
|
203
205
|
i0.ɵɵadvance();
|
|
204
206
|
i0.ɵɵclassProp("lp__banner--center", ctx_r0.Design.Alignment === "center" || ctx_r0.Stacked)("lp__surface-on", ctx_r0.Surface === "Banner" && ctx_r0.Design.Layout !== "centered");
|
|
@@ -207,7 +209,7 @@ function LoginStudioResourceComponent_Conditional_9_Template(rf, ctx) { if (rf &
|
|
|
207
209
|
i0.ɵɵadvance();
|
|
208
210
|
i0.ɵɵproperty("Blocks", ctx_r0.Design.Regions.Banner)("Logos", ctx_r0.Logos)("BrandName", ctx_r0.Theme.Name)("Stacked", ctx_r0.Stacked)("Center", ctx_r0.Design.Alignment === "center" || ctx_r0.Stacked)("Editable", true)("SelectedID", ctx_r0.SelectedID);
|
|
209
211
|
i0.ɵɵadvance();
|
|
210
|
-
i0.ɵɵconditional(!ctx_r0.Design.Regions.Banner.length ?
|
|
212
|
+
i0.ɵɵconditional(!ctx_r0.Design.Regions.Banner.length ? 22 : -1);
|
|
211
213
|
i0.ɵɵadvance();
|
|
212
214
|
i0.ɵɵclassProp("lp__surface-on", ctx_r0.Surface === "Panel");
|
|
213
215
|
i0.ɵɵadvance(3);
|
|
@@ -215,7 +217,7 @@ function LoginStudioResourceComponent_Conditional_9_Template(rf, ctx) { if (rf &
|
|
|
215
217
|
i0.ɵɵadvance();
|
|
216
218
|
i0.ɵɵproperty("Blocks", ctx_r0.Design.Regions.PanelTop)("Logos", ctx_r0.Logos)("BrandName", ctx_r0.Theme.Name)("Stacked", ctx_r0.Stacked)("Editable", true)("SelectedID", ctx_r0.SelectedID);
|
|
217
219
|
i0.ɵɵadvance(2);
|
|
218
|
-
i0.ɵɵconditional(ctx_r0.Design.Heading ?
|
|
220
|
+
i0.ɵɵconditional(ctx_r0.Design.Heading ? 29 : -1);
|
|
219
221
|
i0.ɵɵadvance(4);
|
|
220
222
|
i0.ɵɵtextInterpolate(ctx_r0.RegionLabel.PanelBottom);
|
|
221
223
|
i0.ɵɵadvance();
|
|
@@ -225,7 +227,7 @@ function LoginStudioResourceComponent_Conditional_9_Template(rf, ctx) { if (rf &
|
|
|
225
227
|
i0.ɵɵadvance(2);
|
|
226
228
|
i0.ɵɵtextInterpolate(ctx_r0.SideTitle);
|
|
227
229
|
i0.ɵɵadvance();
|
|
228
|
-
i0.ɵɵconditional(ctx_r0.Selected || ctx_r0.Surface ?
|
|
230
|
+
i0.ɵɵconditional(ctx_r0.Selected || ctx_r0.Surface ? 40 : -1);
|
|
229
231
|
i0.ɵɵadvance();
|
|
230
232
|
i0.ɵɵproperty("Design", ctx_r0.Design)("Selected", ctx_r0.Selected)("SelectedRegion", ctx_r0.SelectedRegion)("Surface", ctx_r0.Surface)("CanReset", ctx_r0.IsLive || ctx_r0.Unpublished)("Saving", ctx_r0.Saving);
|
|
231
233
|
} }
|
|
@@ -236,6 +238,8 @@ const COALESCE_MS = 800;
|
|
|
236
238
|
const HISTORY_CAP = 60;
|
|
237
239
|
/** The click a browser fires as a drag ends; ignored so a drop keeps its selection. */
|
|
238
240
|
const DROP_CLICK_MS = 400;
|
|
241
|
+
/** The desktop preview lays the page out this wide, as on a 1440 x 900 screen (the CSS on .lp), and scales it to the frame. */
|
|
242
|
+
const DESKTOP_WIDTH = 1440;
|
|
239
243
|
const SURFACE_LABEL = { Banner: 'Story panel', Panel: 'Sign-in column' };
|
|
240
244
|
const SURFACE_ICON = { Banner: 'fa-solid fa-image', Panel: 'fa-solid fa-right-to-bracket' };
|
|
241
245
|
/**
|
|
@@ -276,6 +280,8 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
276
280
|
Logos = {};
|
|
277
281
|
/** The default theme's look, as custom properties on the preview frame. */
|
|
278
282
|
FrameStyle = {};
|
|
283
|
+
/** The desktop preview's scale: the frame's width over DESKTOP_WIDTH. */
|
|
284
|
+
DesktopScale = 1;
|
|
279
285
|
/** The problems that stopped the last save; re-checked as you edit, so the alert goes once they are fixed. */
|
|
280
286
|
problems = [];
|
|
281
287
|
/** What is stored, as JSON, so "unsaved" and "unpublished" are comparisons rather than flags. */
|
|
@@ -289,6 +295,13 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
289
295
|
lastEdit = null;
|
|
290
296
|
droppedAt = 0;
|
|
291
297
|
reportedEditing = false;
|
|
298
|
+
frameObserver = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver((entries) => this.fitDesktop(entries[0].contentRect.width));
|
|
299
|
+
/** The preview frame, there once the theme has loaded: its width sets the desktop preview's scale. */
|
|
300
|
+
set frameRef(el) {
|
|
301
|
+
this.frameObserver?.disconnect();
|
|
302
|
+
if (el)
|
|
303
|
+
this.frameObserver?.observe(el.nativeElement);
|
|
304
|
+
}
|
|
292
305
|
ngOnInit() {
|
|
293
306
|
super.ngOnInit();
|
|
294
307
|
// The preview restates the stock gradient per color mode, so it follows a light/dark switch.
|
|
@@ -298,6 +311,10 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
298
311
|
ngAfterViewInit() {
|
|
299
312
|
this.registerAgentTools();
|
|
300
313
|
}
|
|
314
|
+
ngOnDestroy() {
|
|
315
|
+
this.frameObserver?.disconnect();
|
|
316
|
+
super.ngOnDestroy();
|
|
317
|
+
}
|
|
301
318
|
async GetResourceDisplayName(_data) {
|
|
302
319
|
return 'Sign-in Page';
|
|
303
320
|
}
|
|
@@ -321,6 +338,7 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
321
338
|
ExtraFilter: `IsDefault = 1 AND Status = 'Active'`,
|
|
322
339
|
OrderBy: '__mj_UpdatedAt DESC',
|
|
323
340
|
MaxRows: 1,
|
|
341
|
+
SkipTotalRowCount: true,
|
|
324
342
|
ResultType: 'entity_object',
|
|
325
343
|
});
|
|
326
344
|
if (rv.Success) {
|
|
@@ -764,6 +782,14 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
764
782
|
this.cdr.markForCheck();
|
|
765
783
|
}
|
|
766
784
|
// ── Preview, agent, shell ───────────────────────────────────────────────────────────────────
|
|
785
|
+
/** Fit the desktop page to the frame. A hidden tab's frame measures 0, so it keeps its last fit. */
|
|
786
|
+
fitDesktop(width) {
|
|
787
|
+
if (!width)
|
|
788
|
+
return;
|
|
789
|
+
this.DesktopScale = width / DESKTOP_WIDTH;
|
|
790
|
+
// The observer runs outside Angular's zone, so check the view now rather than mark it.
|
|
791
|
+
this.cdr.detectChanges();
|
|
792
|
+
}
|
|
767
793
|
/** After any change: the problems alert, the preview, the agent's view, the shell's edit state, and the view. */
|
|
768
794
|
changed() {
|
|
769
795
|
// A save refused for problems re-checks as you edit (or undo), and its alert goes once they are fixed.
|
|
@@ -806,17 +832,22 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
806
832
|
]);
|
|
807
833
|
}
|
|
808
834
|
static ɵfac = /*@__PURE__*/ (() => { let ɵLoginStudioResourceComponent_BaseFactory; return function LoginStudioResourceComponent_Factory(__ngFactoryType__) { return (ɵLoginStudioResourceComponent_BaseFactory || (ɵLoginStudioResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(LoginStudioResourceComponent)))(__ngFactoryType__ || LoginStudioResourceComponent); }; })();
|
|
809
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LoginStudioResourceComponent, selectors: [["mj-login-studio-resource"]],
|
|
835
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LoginStudioResourceComponent, selectors: [["mj-login-studio-resource"]], viewQuery: function LoginStudioResourceComponent_Query(rf, ctx) { if (rf & 1) {
|
|
836
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
837
|
+
} if (rf & 2) {
|
|
838
|
+
let _t;
|
|
839
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.frameRef = _t.first);
|
|
840
|
+
} }, hostBindings: function LoginStudioResourceComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
810
841
|
i0.ɵɵlistener("beforeunload", function LoginStudioResourceComponent_beforeunload_HostBindingHandler($event) { return ctx.OnBeforeUnload($event); }, i0.ɵɵresolveWindow)("keydown", function LoginStudioResourceComponent_keydown_HostBindingHandler($event) { return ctx.OnKeydown($event); });
|
|
811
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 6, consts: [["Title", "Sign-in Page", "Icon", "fa-solid fa-right-to-bracket", 3, "Subtitle"], ["meta", "", 3, "Label", "Variant"], ["actions", "", 1, "ls__actions"], ["Variant", "error", "Dismissible", "", 1, "ls__alert", 3, "Message"], ["Variant", "success", "Dismissible", "", 1, "ls__alert", 3, "Message"], ["Text", "Reading the sign-in page...", "Size", "medium"], ["Icon", "fa-solid fa-palette", "Title", "No default theme", "Message", "The sign-in page is designed on the default theme. Set one in Theme Studio, under Manage Themes."], ["cdkDropListGroup", "", 1, "ls"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Undo (Ctrl/Cmd Z)", "AriaLabel", "Undo", 3, "click", "disabled"], [1, "fa-solid", "fa-rotate-left"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Redo (Shift Ctrl/Cmd Z)", "AriaLabel", "Redo", 3, "click", "disabled"], [1, "fa-solid", "fa-rotate-right"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", 3, "click", "disabled"], [1, "fa-regular", "fa-floppy-disk"], ["type", "button", "mjButton", "", "Variant", "primary", "Size", "sm", "title", "Save and show this page to everyone signing in", 3, "click", "disabled"], [1, "fa-solid", "fa-upload"], ["Variant", "error", "Dismissible", "", 1, "ls__alert", 3, "Dismissed", "Message"], ["Variant", "success", "Dismissible", "", 1, "ls__alert", 3, "Dismissed", "Message"], ["aria-label", "Blocks", 1, "ls__palette"], [1, "ls__heading"], [1, "ls__hint"], ["cdkDropList", "", "cdkDropListSortingDisabled", "", 1, "ls__palette-list", 3, "cdkDropListData", "cdkDropListEnterPredicate"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", "cdkDrag", "", 1, "ls__tile", 3, "cdkDragData", "title"], ["aria-label", "Preview", 1, "ls__stage", 3, "click"], [1, "ls__stage-bar", 3, "click"], ["role", "group", "aria-label", "Preview size", 3, "KeyChange", "Options", "ActiveKey"], [1, "ls__frame"], [1, "lp", 3, "click"], [1, "lp__banner"], [1, "lp__brand"], [1, "lp__region-label"], ["Region", "Banner", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Center", "Editable", "SelectedID"], [1, "lp__default-note"], [1, "lp__panel", 3, "click"], [1, "lp__stack"], ["Region", "PanelTop", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Editable", "SelectedID"], ["aria-hidden", "true", 1, "lp__picker"], [1, "lp__heading"], [1, "lp__signin"], ["Region", "PanelBottom", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Editable", "SelectedID"], ["aria-label", "Settings", 1, "ls__side"], [1, "ls__side-head"], ["aria-hidden", "true"], [1, "ls__side-title"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Page settings", "AriaLabel", "Back to page settings"], [3, "EditRequested", "CommandRequested", "StockPageRequested", "SurfaceSelectRequested", "Design", "Selected", "SelectedRegion", "Surface", "CanReset", "Saving"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", "cdkDrag", "", 1, "ls__tile", 3, "click", "cdkDragData", "title"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Page settings", "AriaLabel", "Back to page settings", 3, "click"], [1, "fa-solid", "fa-table-columns"]], template: function LoginStudioResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
812
|
-
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header",
|
|
813
|
-
i0.ɵɵconditionalCreate(2, LoginStudioResourceComponent_Conditional_2_Template, 1, 2, "mj-stat-badge",
|
|
814
|
-
i0.ɵɵconditionalCreate(3, LoginStudioResourceComponent_Conditional_3_Template, 13, 5, "div",
|
|
842
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 6, consts: [["frame", ""], ["Title", "Sign-in Page", "Icon", "fa-solid fa-right-to-bracket", 3, "Subtitle"], ["meta", "", 3, "Label", "Variant"], ["actions", "", 1, "ls__actions"], ["Variant", "error", "Dismissible", "", 1, "ls__alert", 3, "Message"], ["Variant", "success", "Dismissible", "", 1, "ls__alert", 3, "Message"], ["Text", "Reading the sign-in page...", "Size", "medium"], ["Icon", "fa-solid fa-palette", "Title", "No default theme", "Message", "The sign-in page is designed on the default theme. Set one in Theme Studio, under Manage Themes."], ["cdkDropListGroup", "", 1, "ls"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Undo (Ctrl/Cmd Z)", "AriaLabel", "Undo", 3, "click", "disabled"], [1, "fa-solid", "fa-rotate-left"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Redo (Shift Ctrl/Cmd Z)", "AriaLabel", "Redo", 3, "click", "disabled"], [1, "fa-solid", "fa-rotate-right"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", 3, "click", "disabled"], [1, "fa-regular", "fa-floppy-disk"], ["type", "button", "mjButton", "", "Variant", "primary", "Size", "sm", "title", "Save and show this page to everyone signing in", 3, "click", "disabled"], [1, "fa-solid", "fa-upload"], ["Variant", "error", "Dismissible", "", 1, "ls__alert", 3, "Dismissed", "Message"], ["Variant", "success", "Dismissible", "", 1, "ls__alert", 3, "Dismissed", "Message"], ["aria-label", "Blocks", 1, "ls__palette"], [1, "ls__heading"], [1, "ls__hint"], ["cdkDropList", "", "cdkDropListSortingDisabled", "", 1, "ls__palette-list", 3, "cdkDropListData", "cdkDropListEnterPredicate"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", "cdkDrag", "", 1, "ls__tile", 3, "cdkDragData", "title"], ["aria-label", "Preview", 1, "ls__stage", 3, "click"], [1, "ls__stage-bar", 3, "click"], ["role", "group", "aria-label", "Preview size", 3, "KeyChange", "Options", "ActiveKey"], [1, "ls__frame"], [1, "lp", 3, "click"], [1, "lp__banner"], [1, "lp__brand"], [1, "lp__region-label"], ["Region", "Banner", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Center", "Editable", "SelectedID"], [1, "lp__default-note"], [1, "lp__panel", 3, "click"], [1, "lp__stack"], ["Region", "PanelTop", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Editable", "SelectedID"], ["aria-hidden", "true", 1, "lp__picker"], [1, "lp__heading"], [1, "lp__signin"], ["Region", "PanelBottom", 3, "Dropped", "SelectRequested", "CommandRequested", "Blocks", "Logos", "BrandName", "Stacked", "Editable", "SelectedID"], ["aria-label", "Settings", 1, "ls__side"], [1, "ls__side-head"], ["aria-hidden", "true"], [1, "ls__side-title"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Page settings", "AriaLabel", "Back to page settings"], [3, "EditRequested", "CommandRequested", "StockPageRequested", "SurfaceSelectRequested", "Design", "Selected", "SelectedRegion", "Surface", "CanReset", "Saving"], ["type", "button", "mjButton", "", "Variant", "outline", "Size", "sm", "cdkDrag", "", 1, "ls__tile", 3, "click", "cdkDragData", "title"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "title", "Page settings", "AriaLabel", "Back to page settings", 3, "click"], [1, "fa-solid", "fa-table-columns"]], template: function LoginStudioResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
843
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 1);
|
|
844
|
+
i0.ɵɵconditionalCreate(2, LoginStudioResourceComponent_Conditional_2_Template, 1, 2, "mj-stat-badge", 2);
|
|
845
|
+
i0.ɵɵconditionalCreate(3, LoginStudioResourceComponent_Conditional_3_Template, 13, 5, "div", 3);
|
|
815
846
|
i0.ɵɵelementEnd();
|
|
816
847
|
i0.ɵɵelementStart(4, "mj-page-body");
|
|
817
|
-
i0.ɵɵconditionalCreate(5, LoginStudioResourceComponent_Conditional_5_Template, 1, 1, "mj-alert",
|
|
818
|
-
i0.ɵɵconditionalCreate(6, LoginStudioResourceComponent_Conditional_6_Template, 1, 1, "mj-alert",
|
|
819
|
-
i0.ɵɵconditionalCreate(7, LoginStudioResourceComponent_Conditional_7_Template, 1, 0, "mj-loading",
|
|
848
|
+
i0.ɵɵconditionalCreate(5, LoginStudioResourceComponent_Conditional_5_Template, 1, 1, "mj-alert", 4);
|
|
849
|
+
i0.ɵɵconditionalCreate(6, LoginStudioResourceComponent_Conditional_6_Template, 1, 1, "mj-alert", 5);
|
|
850
|
+
i0.ɵɵconditionalCreate(7, LoginStudioResourceComponent_Conditional_7_Template, 1, 0, "mj-loading", 6)(8, LoginStudioResourceComponent_Conditional_8_Template, 1, 0, "mj-empty-state", 7)(9, LoginStudioResourceComponent_Conditional_9_Template, 42, 58, "div", 8);
|
|
820
851
|
i0.ɵɵelementEnd()();
|
|
821
852
|
} if (rf & 2) {
|
|
822
853
|
i0.ɵɵadvance();
|
|
@@ -833,7 +864,7 @@ let LoginStudioResourceComponent = class LoginStudioResourceComponent extends Ba
|
|
|
833
864
|
i0.ɵɵconditional(ctx.Loading ? 7 : !ctx.Theme ? 8 : 9);
|
|
834
865
|
} }, dependencies: [CdkDropListGroup, CdkDropList, CdkDrag, SharedGenericModule, i1.LoadingComponent, MJAlertComponent, MJButtonDirective, MJEmptyStateComponent,
|
|
835
866
|
MJPageLayoutComponent, MJPageHeaderComponent, MJPageBodyComponent, MJStatBadgeComponent, MJViewToggleComponent,
|
|
836
|
-
MJLoginRegionComponent, LoginStudioInspectorComponent], styles: ["\n\n\n[_nghost-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.ls__alert[_ngcontent-%COMP%] { margin-bottom: var(--mj-space-4); }\n\n.ls__actions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-2);\n}\n\n.ls__hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n\n\n.ls[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 11rem minmax(0, 1fr) 20rem;\n grid-template-areas: 'palette stage side';\n gap: var(--mj-space-4);\n align-items: start;\n}\n\n.ls__heading[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n}\n\n\n.ls__palette[_ngcontent-%COMP%] {\n grid-area: palette;\n position: sticky;\n top: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n min-width: 0;\n}\n.ls__palette-list[_ngcontent-%COMP%] {\n display: grid;\n gap: var(--mj-space-2);\n}\n\n.ls__tile[_ngcontent-%COMP%] {\n justify-content: flex-start;\n width: 100%;\n cursor: grab;\n}\n.ls__tile[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 1.25rem;\n text-align: center;\n}\n\n.ls__tile.cdk-drag-placeholder[_ngcontent-%COMP%] { opacity: 0.4; }\n.ls__tile.cdk-drag-preview[_ngcontent-%COMP%] {\n width: 10rem;\n box-shadow: var(--mj-shadow-lg);\n}\n\n\n.ls__stage[_ngcontent-%COMP%] {\n grid-area: stage;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n.ls__stage-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-3);\n}\n\n\n.ls__frame[_ngcontent-%COMP%] {\n position: relative;\n overflow: hidden;\n width: 100%;\n
|
|
867
|
+
MJLoginRegionComponent, LoginStudioInspectorComponent], styles: ["\n\n\n[_nghost-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.ls__alert[_ngcontent-%COMP%] { margin-bottom: var(--mj-space-4); }\n\n.ls__actions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-2);\n}\n\n.ls__hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n\n\n.ls[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 11rem minmax(0, 1fr) 20rem;\n grid-template-areas: 'palette stage side';\n gap: var(--mj-space-4);\n align-items: start;\n}\n\n.ls__heading[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n}\n\n\n.ls__palette[_ngcontent-%COMP%] {\n grid-area: palette;\n position: sticky;\n top: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n min-width: 0;\n}\n.ls__palette-list[_ngcontent-%COMP%] {\n display: grid;\n gap: var(--mj-space-2);\n}\n\n.ls__tile[_ngcontent-%COMP%] {\n justify-content: flex-start;\n width: 100%;\n cursor: grab;\n}\n.ls__tile[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 1.25rem;\n text-align: center;\n}\n\n.ls__tile.cdk-drag-placeholder[_ngcontent-%COMP%] { opacity: 0.4; }\n.ls__tile.cdk-drag-preview[_ngcontent-%COMP%] {\n width: 10rem;\n box-shadow: var(--mj-shadow-lg);\n}\n\n\n.ls__stage[_ngcontent-%COMP%] {\n grid-area: stage;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n.ls__stage-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-3);\n}\n\n\n.ls__frame[_ngcontent-%COMP%] {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: calc(min(62vh, 44rem) * 1.6);\n aspect-ratio: 16 / 10;\n margin-inline: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-login-panel-bg);\n}\n.ls__frame--phone[_ngcontent-%COMP%] {\n width: 24rem;\n max-width: 100%;\n height: 46rem;\n margin-inline: auto;\n border-radius: var(--mj-radius-xl);\n}\n\n\n.ls__side[_ngcontent-%COMP%] {\n grid-area: side;\n position: sticky;\n top: 0;\n max-height: calc(100vh - 10rem);\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface);\n}\n.ls__side-head[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-3) var(--mj-space-4);\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n.ls__side-head[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { color: var(--mj-text-secondary); }\n.ls__side-title[_ngcontent-%COMP%] {\n flex: 1;\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n\n\n.lp[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n}\n\n\n\n.lp[_ngcontent-%COMP%]:not(.lp--stacked) {\n box-sizing: border-box;\n width: 1440px;\n height: 900px;\n transform-origin: top left;\n}\n.lp--reverse[_ngcontent-%COMP%] { flex-direction: row-reverse; }\n\n.lp__banner[_ngcontent-%COMP%] {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-banner-flex) 1 0;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n padding: var(--mj-space-10) var(--mj-space-8);\n background: var(--mj-login-banner-bg);\n color: var(--mj-login-banner-text);\n}\n.lp__banner--center[_ngcontent-%COMP%] { align-items: center; }\n.lp__brand[_ngcontent-%COMP%] {\n width: 100%;\n margin-block: auto;\n}\n\n.lp__panel[_ngcontent-%COMP%] {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-panel-flex) 1 0;\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-6);\n background: var(--mj-login-panel-bg);\n color: var(--mj-login-panel-text);\n}\n.lp__stack[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n width: 100%;\n max-width: var(--mj-login-picker-max-width);\n margin-block: auto;\n}\n\n.lp__picker[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--mj-space-3);\n padding-block: var(--mj-space-2);\n}\n\n.lp__heading[_ngcontent-%COMP%] {\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-bold);\n color: var(--mj-login-panel-text);\n}\n.lp__signin[_ngcontent-%COMP%] {\n display: block;\n padding: var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-weight: var(--mj-font-semibold);\n text-align: center;\n}\n\n.lp__region-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: calc(-1 * var(--mj-space-2));\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n opacity: 0.55;\n}\n.lp__banner[_ngcontent-%COMP%] .lp__region-label[_ngcontent-%COMP%] { margin-bottom: var(--mj-space-1); }\n.lp__default-note[_ngcontent-%COMP%] {\n margin: var(--mj-space-2) 0 0;\n font-size: var(--mj-text-xs);\n opacity: 0.75;\n}\n\n\n.lp--centered[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-4);\n background: var(--mj-login-banner-bg);\n}\n.lp--centered[_ngcontent-%COMP%] .lp__banner[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n width: 100%;\n overflow: visible;\n padding: 0 0 var(--mj-space-6);\n background: none;\n align-items: center;\n}\n.lp--centered[_ngcontent-%COMP%] .lp__panel[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n width: 100%;\n max-width: var(--mj-login-centered-card-width);\n overflow: visible;\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-lg);\n}\n\n\n\n.lp--stacked[_ngcontent-%COMP%] { flex-direction: column; }\n.lp--stacked[_ngcontent-%COMP%]:not(.lp--centered) .lp__banner[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n height: 50%;\n padding: var(--mj-space-4);\n align-items: center;\n}\n.lp--stacked[_ngcontent-%COMP%]:not(.lp--centered) .lp__brand[_ngcontent-%COMP%] { margin-block: auto 0; }\n.lp--stacked[_ngcontent-%COMP%]:not(.lp--centered) .lp__panel[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n padding: var(--mj-space-6) var(--mj-space-4);\n}\n\n\n\n.lp__banner[_ngcontent-%COMP%], \n.lp__panel[_ngcontent-%COMP%], \n.lp--centered[_ngcontent-%COMP%] { cursor: pointer; }\n.lp__surface-on[_ngcontent-%COMP%], \n.lp--surface-on[_ngcontent-%COMP%] { box-shadow: inset 0 0 0 2px var(--mj-brand-primary); }\n.lp--centered[_ngcontent-%COMP%] .lp__panel.lp__surface-on[_ngcontent-%COMP%] { box-shadow: var(--mj-shadow-lg), 0 0 0 2px var(--mj-brand-primary); }\n\n\n\n@media (max-width: 1280px) {\n .ls[_ngcontent-%COMP%] {\n grid-template-columns: minmax(0, 1fr) 19rem;\n grid-template-areas:\n 'palette palette'\n 'stage side';\n }\n .ls__palette[_ngcontent-%COMP%] { position: static; }\n .ls__palette-list[_ngcontent-%COMP%] { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); }\n}\n\n@media (max-width: 900px) {\n .ls[_ngcontent-%COMP%] {\n grid-template-columns: minmax(0, 1fr);\n grid-template-areas: 'palette' 'stage' 'side';\n }\n .ls__side[_ngcontent-%COMP%] {\n position: static;\n max-height: none;\n }\n}"], changeDetection: 0 });
|
|
837
868
|
};
|
|
838
869
|
LoginStudioResourceComponent = __decorate([
|
|
839
870
|
RegisterClass(BaseResourceComponent, 'LoginStudioResource')
|
|
@@ -845,13 +876,16 @@ export { LoginStudioResourceComponent };
|
|
|
845
876
|
CdkDropListGroup, CdkDropList, CdkDrag, SharedGenericModule, MJAlertComponent, MJButtonDirective, MJEmptyStateComponent,
|
|
846
877
|
MJPageLayoutComponent, MJPageHeaderComponent, MJPageBodyComponent, MJStatBadgeComponent, MJViewToggleComponent,
|
|
847
878
|
MJLoginRegionComponent, LoginStudioInspectorComponent,
|
|
848
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header Title=\"Sign-in Page\" Icon=\"fa-solid fa-right-to-bracket\"\n [Subtitle]=\"Theme ? 'What visitors see before they sign in. Designed on the default theme, ' + Theme.Name + '.' : 'What visitors see before they sign in.'\">\n <!-- One root element per block: a control-flow block is projected by its single root's selector. -->\n @if (Theme && !Loading && StatusVariant) {\n <mj-stat-badge meta [Label]=\"StatusLabel\" [Variant]=\"StatusVariant\"></mj-stat-badge>\n }\n @if (Theme && !Loading) {\n <div actions class=\"ls__actions\">\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Undo()\" [disabled]=\"!CanUndo\" title=\"Undo (Ctrl/Cmd Z)\" AriaLabel=\"Undo\"><i class=\"fa-solid fa-rotate-left\"></i></button>\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Redo()\" [disabled]=\"!CanRedo\" title=\"Redo (Shift Ctrl/Cmd Z)\" AriaLabel=\"Redo\"><i class=\"fa-solid fa-rotate-right\"></i></button>\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" (click)=\"Discard()\" [disabled]=\"!Unsaved || Saving\">Discard changes</button>\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" (click)=\"SaveDraft()\" [disabled]=\"Saving || !Unsaved\">\n <i class=\"fa-regular fa-floppy-disk\"></i> Save draft\n </button>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" (click)=\"Publish()\"\n [disabled]=\"Saving || (!Unsaved && !Unpublished && IsLive)\" title=\"Save and show this page to everyone signing in\">\n <i class=\"fa-solid fa-upload\"></i> Publish\n </button>\n </div>\n }\n </mj-page-header>\n\n <mj-page-body>\n @if (ErrorMessage) {\n <mj-alert class=\"ls__alert\" Variant=\"error\" [Message]=\"ErrorMessage\" Dismissible (Dismissed)=\"DismissError()\"></mj-alert>\n }\n @if (NoticeMessage) {\n <mj-alert class=\"ls__alert\" Variant=\"success\" [Message]=\"NoticeMessage\" Dismissible (Dismissed)=\"DismissNotice()\"></mj-alert>\n }\n\n @if (Loading) {\n <mj-loading Text=\"Reading the sign-in page...\" Size=\"medium\"></mj-loading>\n } @else if (!Theme) {\n <mj-empty-state Icon=\"fa-solid fa-palette\" Title=\"No default theme\"\n Message=\"The sign-in page is designed on the default theme. Set one in Theme Studio, under Manage Themes.\"></mj-empty-state>\n } @else {\n <div class=\"ls\" cdkDropListGroup>\n <!-- PALETTE -->\n <aside class=\"ls__palette\" aria-label=\"Blocks\">\n <h2 class=\"ls__heading\">Blocks</h2>\n <p class=\"ls__hint\">Drag a block onto the page, or click one to add it after the selected block.</p>\n <div class=\"ls__palette-list\" cdkDropList [cdkDropListData]=\"PaletteListID\" cdkDropListSortingDisabled\n [cdkDropListEnterPredicate]=\"NoEnter\">\n @for (t of Palette; track t.Type) {\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" class=\"ls__tile\" cdkDrag [cdkDragData]=\"t.Type\" (click)=\"AddBlock(t.Type)\" [title]=\"t.Hint\">\n <i [class]=\"t.Icon\" aria-hidden=\"true\"></i>\n <span>{{ t.Label }}</span>\n </button>\n }\n </div>\n </aside>\n\n <!-- PREVIEW -->\n <section class=\"ls__stage\" (click)=\"OnStageClick()\" aria-label=\"Preview\">\n <div class=\"ls__stage-bar\" (click)=\"$event.stopPropagation()\">\n <mj-view-toggle role=\"group\" aria-label=\"Preview size\" [Options]=\"DeviceOptions\" [ActiveKey]=\"Device\" (KeyChange)=\"SetDevice($event)\"></mj-view-toggle>\n <span class=\"ls__hint\">The sign-in button is a stand-in. The real one opens your sign-in provider.</span>\n </div>\n\n <div class=\"ls__frame\" [class.ls__frame--phone]=\"Stacked\" [style]=\"FrameStyle\">\n <!-- Clicking the page selects what was clicked: a block (it stops the click), the sign-in column,\n or else the story panel, which in the centered layout is the whole background. -->\n <div class=\"lp\" [class.lp--reverse]=\"Design.Layout === 'split-reverse'\" [class.lp--centered]=\"Design.Layout === 'centered'\"\n [class.lp--stacked]=\"Stacked\" [class.lp--surface-on]=\"Surface === 'Banner' && Design.Layout === 'centered'\"\n (click)=\"SelectSurface('Banner', $event)\">\n <div class=\"lp__banner\" [class.lp__banner--center]=\"Design.Alignment === 'center' || Stacked\"\n [class.lp__surface-on]=\"Surface === 'Banner' && Design.Layout !== 'centered'\">\n <div class=\"lp__brand\">\n <span class=\"lp__region-label\">{{ RegionLabel.Banner }}</span>\n <mj-login-region Region=\"Banner\" [Blocks]=\"Design.Regions.Banner\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Center]=\"Design.Alignment === 'center' || Stacked\" [Editable]=\"true\"\n [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n @if (!Design.Regions.Banner.length) {\n <p class=\"lp__default-note\">Empty: visitors see the stock logo and \"Welcome back\" here.</p>\n }\n </div>\n </div>\n <div class=\"lp__panel\" [class.lp__surface-on]=\"Surface === 'Panel'\" (click)=\"SelectSurface('Panel', $event)\">\n <div class=\"lp__stack\">\n <span class=\"lp__region-label\">{{ RegionLabel.PanelTop }}</span>\n <mj-login-region Region=\"PanelTop\" [Blocks]=\"Design.Regions.PanelTop\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Editable]=\"true\" [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n <div class=\"lp__picker\" aria-hidden=\"true\">\n @if (Design.Heading) {\n <span class=\"lp__heading\">{{ Design.Heading }}</span>\n }\n <span class=\"lp__signin\">Log in</span>\n </div>\n <span class=\"lp__region-label\">{{ RegionLabel.PanelBottom }}</span>\n <mj-login-region Region=\"PanelBottom\" [Blocks]=\"Design.Regions.PanelBottom\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Editable]=\"true\" [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <!-- INSPECTOR -->\n <aside class=\"ls__side\" aria-label=\"Settings\">\n <div class=\"ls__side-head\">\n <i [class]=\"SideIcon\" aria-hidden=\"true\"></i>\n <h2 class=\"ls__side-title\">{{ SideTitle }}</h2>\n @if (Selected || Surface) {\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Select(null)\" title=\"Page settings\" AriaLabel=\"Back to page settings\">\n <i class=\"fa-solid fa-table-columns\"></i>\n </button>\n }\n </div>\n <mj-login-studio-inspector [Design]=\"Design\" [Selected]=\"Selected\" [SelectedRegion]=\"SelectedRegion\" [Surface]=\"Surface\"\n [CanReset]=\"IsLive || Unpublished\" [Saving]=\"Saving\"\n (EditRequested)=\"ApplyEdit($event)\" (CommandRequested)=\"OnCommand($event)\"\n (StockPageRequested)=\"UseStockPage()\" (SurfaceSelectRequested)=\"SelectSurface($event)\"></mj-login-studio-inspector>\n </aside>\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* Login Studio: the editor's three columns (blocks | preview | settings), then a picture of the Explorer\n login screen inside the preview frame, drawn with this screen's own classes and the --mj-login-* tokens. */\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.ls__alert { margin-bottom: var(--mj-space-4); }\n\n.ls__actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-2);\n}\n\n.ls__hint {\n margin: 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n/* ============================== THE EDITOR ============================== */\n\n.ls {\n display: grid;\n grid-template-columns: 11rem minmax(0, 1fr) 20rem;\n grid-template-areas: 'palette stage side';\n gap: var(--mj-space-4);\n align-items: start;\n}\n\n.ls__heading {\n margin: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n}\n\n/* \u2500\u2500 blocks \u2500\u2500 */\n.ls__palette {\n grid-area: palette;\n position: sticky;\n top: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n min-width: 0;\n}\n.ls__palette-list {\n display: grid;\n gap: var(--mj-space-2);\n}\n/* Layout only: the tile's look is mjButton's. */\n.ls__tile {\n justify-content: flex-start;\n width: 100%;\n cursor: grab;\n}\n.ls__tile i {\n width: 1.25rem;\n text-align: center;\n}\n/* Dragged out, the tile keeps its place in the palette (a drop creates a block; it moves nothing). */\n.ls__tile.cdk-drag-placeholder { opacity: 0.4; }\n.ls__tile.cdk-drag-preview {\n width: 10rem;\n box-shadow: var(--mj-shadow-lg);\n}\n\n/* \u2500\u2500 preview \u2500\u2500 */\n.ls__stage {\n grid-area: stage;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n.ls__stage-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-3);\n}\n\n/* A desktop-proportioned page, or a phone. */\n.ls__frame {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: clamp(30rem, 62vh, 44rem);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-login-panel-bg);\n}\n.ls__frame--phone {\n width: 24rem;\n max-width: 100%;\n height: 46rem;\n margin-inline: auto;\n border-radius: var(--mj-radius-xl);\n}\n\n/* \u2500\u2500 settings \u2500\u2500 */\n.ls__side {\n grid-area: side;\n position: sticky;\n top: 0;\n max-height: calc(100vh - 10rem);\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface);\n}\n.ls__side-head {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-3) var(--mj-space-4);\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n.ls__side-head > i { color: var(--mj-text-secondary); }\n.ls__side-title {\n flex: 1;\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n/* ============================== THE PICTURE OF THE LOGIN SCREEN ============================== */\n\n.lp {\n display: flex;\n height: 100%;\n}\n.lp--reverse { flex-direction: row-reverse; }\n\n.lp__banner {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-banner-flex) 1 0;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n padding: var(--mj-space-10) var(--mj-space-8);\n background: var(--mj-login-banner-bg);\n color: var(--mj-login-banner-text);\n}\n.lp__banner--center { align-items: center; }\n.lp__brand {\n width: 100%;\n margin-block: auto;\n}\n\n.lp__panel {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-panel-flex) 1 0;\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-6);\n background: var(--mj-login-panel-bg);\n color: var(--mj-login-panel-text);\n}\n.lp__stack {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n width: 100%;\n max-width: var(--mj-login-picker-max-width);\n margin-block: auto;\n}\n\n.lp__picker {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--mj-space-3);\n padding-block: var(--mj-space-2);\n}\n/* As <mj-login-picker> draws its heading. */\n.lp__heading {\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-bold);\n color: var(--mj-login-panel-text);\n}\n.lp__signin {\n display: block;\n padding: var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-weight: var(--mj-font-semibold);\n text-align: center;\n}\n\n.lp__region-label {\n display: block;\n margin-bottom: calc(-1 * var(--mj-space-2));\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n opacity: 0.55;\n}\n.lp__banner .lp__region-label { margin-bottom: var(--mj-space-1); }\n.lp__default-note {\n margin: var(--mj-space-2) 0 0;\n font-size: var(--mj-text-xs);\n opacity: 0.75;\n}\n\n/* Centered: one column on the banner background, the sign-in options a card on top of it. */\n.lp--centered {\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-4);\n background: var(--mj-login-banner-bg);\n}\n.lp--centered .lp__banner {\n flex: 0 0 auto;\n width: 100%;\n overflow: visible;\n padding: 0 0 var(--mj-space-6);\n background: none;\n align-items: center;\n}\n.lp--centered .lp__panel {\n flex: 0 0 auto;\n width: 100%;\n max-width: var(--mj-login-centered-card-width);\n overflow: visible;\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-lg);\n}\n\n/* Stacked (the login screen's 900px layout, where the banner is 35dvh): the banner shortens above the sign-in column. */\n.lp--stacked { flex-direction: column; }\n.lp--stacked:not(.lp--centered) .lp__banner {\n flex: 0 0 auto;\n height: 35%;\n padding: var(--mj-space-5);\n align-items: center;\n}\n.lp--stacked:not(.lp--centered) .lp__brand { margin-block: auto 0; }\n.lp--stacked:not(.lp--centered) .lp__panel {\n flex: 1 1 auto;\n padding: var(--mj-space-6) var(--mj-space-4);\n}\n\n/* The story panel and the sign-in column are selectable (their settings and colors open in the\n inspector): a pointer says so, and the selected one is outlined. Inset, because both scroll. */\n.lp__banner,\n.lp__panel,\n.lp--centered { cursor: pointer; }\n.lp__surface-on,\n.lp--surface-on { box-shadow: inset 0 0 0 2px var(--mj-brand-primary); }\n.lp--centered .lp__panel.lp__surface-on { box-shadow: var(--mj-shadow-lg), 0 0 0 2px var(--mj-brand-primary); }\n\n/* ============================== NARROWER ============================== */\n\n@media (max-width: 1280px) {\n .ls {\n grid-template-columns: minmax(0, 1fr) 19rem;\n grid-template-areas:\n 'palette palette'\n 'stage side';\n }\n .ls__palette { position: static; }\n .ls__palette-list { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); }\n}\n\n@media (max-width: 900px) {\n .ls {\n grid-template-columns: minmax(0, 1fr);\n grid-template-areas: 'palette' 'stage' 'side';\n }\n .ls__side {\n position: static;\n max-height: none;\n }\n}\n"] }]
|
|
849
|
-
}], null, {
|
|
879
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header Title=\"Sign-in Page\" Icon=\"fa-solid fa-right-to-bracket\"\n [Subtitle]=\"Theme ? 'What visitors see before they sign in. Designed on the default theme, ' + Theme.Name + '.' : 'What visitors see before they sign in.'\">\n <!-- One root element per block: a control-flow block is projected by its single root's selector. -->\n @if (Theme && !Loading && StatusVariant) {\n <mj-stat-badge meta [Label]=\"StatusLabel\" [Variant]=\"StatusVariant\"></mj-stat-badge>\n }\n @if (Theme && !Loading) {\n <div actions class=\"ls__actions\">\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Undo()\" [disabled]=\"!CanUndo\" title=\"Undo (Ctrl/Cmd Z)\" AriaLabel=\"Undo\"><i class=\"fa-solid fa-rotate-left\"></i></button>\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Redo()\" [disabled]=\"!CanRedo\" title=\"Redo (Shift Ctrl/Cmd Z)\" AriaLabel=\"Redo\"><i class=\"fa-solid fa-rotate-right\"></i></button>\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" (click)=\"Discard()\" [disabled]=\"!Unsaved || Saving\">Discard changes</button>\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" (click)=\"SaveDraft()\" [disabled]=\"Saving || !Unsaved\">\n <i class=\"fa-regular fa-floppy-disk\"></i> Save draft\n </button>\n <button type=\"button\" mjButton Variant=\"primary\" Size=\"sm\" (click)=\"Publish()\"\n [disabled]=\"Saving || (!Unsaved && !Unpublished && IsLive)\" title=\"Save and show this page to everyone signing in\">\n <i class=\"fa-solid fa-upload\"></i> Publish\n </button>\n </div>\n }\n </mj-page-header>\n\n <mj-page-body>\n @if (ErrorMessage) {\n <mj-alert class=\"ls__alert\" Variant=\"error\" [Message]=\"ErrorMessage\" Dismissible (Dismissed)=\"DismissError()\"></mj-alert>\n }\n @if (NoticeMessage) {\n <mj-alert class=\"ls__alert\" Variant=\"success\" [Message]=\"NoticeMessage\" Dismissible (Dismissed)=\"DismissNotice()\"></mj-alert>\n }\n\n @if (Loading) {\n <mj-loading Text=\"Reading the sign-in page...\" Size=\"medium\"></mj-loading>\n } @else if (!Theme) {\n <mj-empty-state Icon=\"fa-solid fa-palette\" Title=\"No default theme\"\n Message=\"The sign-in page is designed on the default theme. Set one in Theme Studio, under Manage Themes.\"></mj-empty-state>\n } @else {\n <div class=\"ls\" cdkDropListGroup>\n <!-- PALETTE -->\n <aside class=\"ls__palette\" aria-label=\"Blocks\">\n <h2 class=\"ls__heading\">Blocks</h2>\n <p class=\"ls__hint\">Drag a block onto the page, or click one to add it after the selected block.</p>\n <div class=\"ls__palette-list\" cdkDropList [cdkDropListData]=\"PaletteListID\" cdkDropListSortingDisabled\n [cdkDropListEnterPredicate]=\"NoEnter\">\n @for (t of Palette; track t.Type) {\n <button type=\"button\" mjButton Variant=\"outline\" Size=\"sm\" class=\"ls__tile\" cdkDrag [cdkDragData]=\"t.Type\" (click)=\"AddBlock(t.Type)\" [title]=\"t.Hint\">\n <i [class]=\"t.Icon\" aria-hidden=\"true\"></i>\n <span>{{ t.Label }}</span>\n </button>\n }\n </div>\n </aside>\n\n <!-- PREVIEW -->\n <section class=\"ls__stage\" (click)=\"OnStageClick()\" aria-label=\"Preview\">\n <div class=\"ls__stage-bar\" (click)=\"$event.stopPropagation()\">\n <mj-view-toggle role=\"group\" aria-label=\"Preview size\" [Options]=\"DeviceOptions\" [ActiveKey]=\"Device\" (KeyChange)=\"SetDevice($event)\"></mj-view-toggle>\n <span class=\"ls__hint\">The sign-in button is a stand-in. The real one opens your sign-in provider.</span>\n </div>\n\n <div class=\"ls__frame\" #frame [class.ls__frame--phone]=\"Stacked\" [style]=\"FrameStyle\">\n <!-- Clicking the page selects what was clicked: a block (it stops the click), the sign-in column,\n or else the story panel, which in the centered layout is the whole background. -->\n <div class=\"lp\" [class.lp--reverse]=\"Design.Layout === 'split-reverse'\" [class.lp--centered]=\"Design.Layout === 'centered'\"\n [class.lp--stacked]=\"Stacked\" [class.lp--surface-on]=\"Surface === 'Banner' && Design.Layout === 'centered'\"\n [style.transform]=\"Stacked ? null : 'scale(' + DesktopScale + ')'\"\n (click)=\"SelectSurface('Banner', $event)\">\n <div class=\"lp__banner\" [class.lp__banner--center]=\"Design.Alignment === 'center' || Stacked\"\n [class.lp__surface-on]=\"Surface === 'Banner' && Design.Layout !== 'centered'\">\n <div class=\"lp__brand\">\n <span class=\"lp__region-label\">{{ RegionLabel.Banner }}</span>\n <mj-login-region Region=\"Banner\" [Blocks]=\"Design.Regions.Banner\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Center]=\"Design.Alignment === 'center' || Stacked\" [Editable]=\"true\"\n [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n @if (!Design.Regions.Banner.length) {\n <p class=\"lp__default-note\">Empty: visitors see the stock logo and \"Welcome back\" here.</p>\n }\n </div>\n </div>\n <div class=\"lp__panel\" [class.lp__surface-on]=\"Surface === 'Panel'\" (click)=\"SelectSurface('Panel', $event)\">\n <div class=\"lp__stack\">\n <span class=\"lp__region-label\">{{ RegionLabel.PanelTop }}</span>\n <mj-login-region Region=\"PanelTop\" [Blocks]=\"Design.Regions.PanelTop\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Editable]=\"true\" [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n <div class=\"lp__picker\" aria-hidden=\"true\">\n @if (Design.Heading) {\n <span class=\"lp__heading\">{{ Design.Heading }}</span>\n }\n <span class=\"lp__signin\">Log in</span>\n </div>\n <span class=\"lp__region-label\">{{ RegionLabel.PanelBottom }}</span>\n <mj-login-region Region=\"PanelBottom\" [Blocks]=\"Design.Regions.PanelBottom\" [Logos]=\"Logos\" [BrandName]=\"Theme.Name\"\n [Stacked]=\"Stacked\" [Editable]=\"true\" [SelectedID]=\"SelectedID\"\n (Dropped)=\"OnDrop($event)\" (SelectRequested)=\"Select($event)\" (CommandRequested)=\"OnCommand($event)\"></mj-login-region>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <!-- INSPECTOR -->\n <aside class=\"ls__side\" aria-label=\"Settings\">\n <div class=\"ls__side-head\">\n <i [class]=\"SideIcon\" aria-hidden=\"true\"></i>\n <h2 class=\"ls__side-title\">{{ SideTitle }}</h2>\n @if (Selected || Surface) {\n <button type=\"button\" mjButton Variant=\"icon\" Size=\"sm\" (click)=\"Select(null)\" title=\"Page settings\" AriaLabel=\"Back to page settings\">\n <i class=\"fa-solid fa-table-columns\"></i>\n </button>\n }\n </div>\n <mj-login-studio-inspector [Design]=\"Design\" [Selected]=\"Selected\" [SelectedRegion]=\"SelectedRegion\" [Surface]=\"Surface\"\n [CanReset]=\"IsLive || Unpublished\" [Saving]=\"Saving\"\n (EditRequested)=\"ApplyEdit($event)\" (CommandRequested)=\"OnCommand($event)\"\n (StockPageRequested)=\"UseStockPage()\" (SurfaceSelectRequested)=\"SelectSurface($event)\"></mj-login-studio-inspector>\n </aside>\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* Login Studio: the editor's three columns (blocks | preview | settings), then a picture of the Explorer\n login screen inside the preview frame, drawn with this screen's own classes and the --mj-login-* tokens. */\n\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.ls__alert { margin-bottom: var(--mj-space-4); }\n\n.ls__actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-2);\n}\n\n.ls__hint {\n margin: 0;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n\n/* ============================== THE EDITOR ============================== */\n\n.ls {\n display: grid;\n grid-template-columns: 11rem minmax(0, 1fr) 20rem;\n grid-template-areas: 'palette stage side';\n gap: var(--mj-space-4);\n align-items: start;\n}\n\n.ls__heading {\n margin: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--mj-text-secondary);\n}\n\n/* \u2500\u2500 blocks \u2500\u2500 */\n.ls__palette {\n grid-area: palette;\n position: sticky;\n top: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n min-width: 0;\n}\n.ls__palette-list {\n display: grid;\n gap: var(--mj-space-2);\n}\n/* Layout only: the tile's look is mjButton's. */\n.ls__tile {\n justify-content: flex-start;\n width: 100%;\n cursor: grab;\n}\n.ls__tile i {\n width: 1.25rem;\n text-align: center;\n}\n/* Dragged out, the tile keeps its place in the palette (a drop creates a block; it moves nothing). */\n.ls__tile.cdk-drag-placeholder { opacity: 0.4; }\n.ls__tile.cdk-drag-preview {\n width: 10rem;\n box-shadow: var(--mj-shadow-lg);\n}\n\n/* \u2500\u2500 preview \u2500\u2500 */\n.ls__stage {\n grid-area: stage;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n min-width: 0;\n}\n.ls__stage-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--mj-space-3);\n}\n\n/* A 16:10 desktop screen, no taller than the window has room for, or a phone. */\n.ls__frame {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: calc(min(62vh, 44rem) * 1.6);\n aspect-ratio: 16 / 10;\n margin-inline: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-login-panel-bg);\n}\n.ls__frame--phone {\n width: 24rem;\n max-width: 100%;\n height: 46rem;\n margin-inline: auto;\n border-radius: var(--mj-radius-xl);\n}\n\n/* \u2500\u2500 settings \u2500\u2500 */\n.ls__side {\n grid-area: side;\n position: sticky;\n top: 0;\n max-height: calc(100vh - 10rem);\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface);\n}\n.ls__side-head {\n position: sticky;\n top: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n gap: var(--mj-space-2);\n padding: var(--mj-space-3) var(--mj-space-4);\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n.ls__side-head > i { color: var(--mj-text-secondary); }\n.ls__side-title {\n flex: 1;\n margin: 0;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n/* ============================== THE PICTURE OF THE LOGIN SCREEN ============================== */\n\n.lp {\n display: flex;\n height: 100%;\n}\n/* Desktop: the page laid out at a real screen's size (DESKTOP_WIDTH in the component), then scaled to the\n frame, so type and spacing shrink in proportion. At 1:1 a frame this narrow would draw a layout no\n visitor gets at that width. */\n.lp:not(.lp--stacked) {\n box-sizing: border-box;\n width: 1440px;\n height: 900px;\n transform-origin: top left;\n}\n.lp--reverse { flex-direction: row-reverse; }\n\n.lp__banner {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-banner-flex) 1 0;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n padding: var(--mj-space-10) var(--mj-space-8);\n background: var(--mj-login-banner-bg);\n color: var(--mj-login-banner-text);\n}\n.lp__banner--center { align-items: center; }\n.lp__brand {\n width: 100%;\n margin-block: auto;\n}\n\n.lp__panel {\n box-sizing: border-box;\n display: flex;\n flex: var(--mj-login-panel-flex) 1 0;\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-6);\n background: var(--mj-login-panel-bg);\n color: var(--mj-login-panel-text);\n}\n.lp__stack {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n width: 100%;\n max-width: var(--mj-login-picker-max-width);\n margin-block: auto;\n}\n\n.lp__picker {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--mj-space-3);\n padding-block: var(--mj-space-2);\n}\n/* As <mj-login-picker> draws its heading. */\n.lp__heading {\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-bold);\n color: var(--mj-login-panel-text);\n}\n.lp__signin {\n display: block;\n padding: var(--mj-space-3);\n border-radius: var(--mj-radius-md);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-weight: var(--mj-font-semibold);\n text-align: center;\n}\n\n.lp__region-label {\n display: block;\n margin-bottom: calc(-1 * var(--mj-space-2));\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.08em;\n text-transform: uppercase;\n opacity: 0.55;\n}\n.lp__banner .lp__region-label { margin-bottom: var(--mj-space-1); }\n.lp__default-note {\n margin: var(--mj-space-2) 0 0;\n font-size: var(--mj-text-xs);\n opacity: 0.75;\n}\n\n/* Centered: one column on the banner background, the sign-in options a card on top of it. */\n.lp--centered {\n flex-direction: column;\n align-items: center;\n overflow-y: auto;\n padding: var(--mj-space-8) var(--mj-space-4);\n background: var(--mj-login-banner-bg);\n}\n.lp--centered .lp__banner {\n flex: 0 0 auto;\n width: 100%;\n overflow: visible;\n padding: 0 0 var(--mj-space-6);\n background: none;\n align-items: center;\n}\n.lp--centered .lp__panel {\n flex: 0 0 auto;\n width: 100%;\n max-width: var(--mj-login-centered-card-width);\n overflow: visible;\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-lg);\n}\n\n/* Stacked (the phone preview: the login screen at 480px and below, where the banner is 50dvh): the banner\n shortens above the sign-in column. */\n.lp--stacked { flex-direction: column; }\n.lp--stacked:not(.lp--centered) .lp__banner {\n flex: 0 0 auto;\n height: 50%;\n padding: var(--mj-space-4);\n align-items: center;\n}\n.lp--stacked:not(.lp--centered) .lp__brand { margin-block: auto 0; }\n.lp--stacked:not(.lp--centered) .lp__panel {\n flex: 1 1 auto;\n padding: var(--mj-space-6) var(--mj-space-4);\n}\n\n/* The story panel and the sign-in column are selectable (their settings and colors open in the\n inspector): a pointer says so, and the selected one is outlined. Inset, because both scroll. */\n.lp__banner,\n.lp__panel,\n.lp--centered { cursor: pointer; }\n.lp__surface-on,\n.lp--surface-on { box-shadow: inset 0 0 0 2px var(--mj-brand-primary); }\n.lp--centered .lp__panel.lp__surface-on { box-shadow: var(--mj-shadow-lg), 0 0 0 2px var(--mj-brand-primary); }\n\n/* ============================== NARROWER ============================== */\n\n@media (max-width: 1280px) {\n .ls {\n grid-template-columns: minmax(0, 1fr) 19rem;\n grid-template-areas:\n 'palette palette'\n 'stage side';\n }\n .ls__palette { position: static; }\n .ls__palette-list { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); }\n}\n\n@media (max-width: 900px) {\n .ls {\n grid-template-columns: minmax(0, 1fr);\n grid-template-areas: 'palette' 'stage' 'side';\n }\n .ls__side {\n position: static;\n max-height: none;\n }\n}\n"] }]
|
|
880
|
+
}], null, { frameRef: [{
|
|
881
|
+
type: ViewChild,
|
|
882
|
+
args: ['frame']
|
|
883
|
+
}], OnBeforeUnload: [{
|
|
850
884
|
type: HostListener,
|
|
851
885
|
args: ['window:beforeunload', ['$event']]
|
|
852
886
|
}], OnKeydown: [{
|
|
853
887
|
type: HostListener,
|
|
854
888
|
args: ['keydown', ['$event']]
|
|
855
889
|
}] }); })();
|
|
856
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoginStudioResourceComponent, { className: "LoginStudioResourceComponent", filePath: "src/LoginStudio/login-studio-resource.component.ts", lineNumber:
|
|
890
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoginStudioResourceComponent, { className: "LoginStudioResourceComponent", filePath: "src/LoginStudio/login-studio-resource.component.ts", lineNumber: 65 }); })();
|
|
857
891
|
//# sourceMappingURL=login-studio-resource.component.js.map
|