@memberjunction/ng-dashboards 6.2.0-edge.6 → 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 +23 -16
- 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.js +6 -6
- 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.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +3 -2
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +12 -6
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- 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 +92 -130
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
- 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 +4 -1
- package/dist/ChiefOfStaff/index.d.ts.map +1 -1
- package/dist/ChiefOfStaff/index.js +4 -1
- package/dist/ChiefOfStaff/index.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +3 -3
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +3 -3
- 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/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
- package/dist/DataExplorer/data-explorer-dashboard.component.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.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
- package/dist/PredictiveStudio/resources/ps-predictions-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 -22
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +23 -7
- 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 +7 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +9 -2
- 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/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-studio-archetypes-resource.component.js","sourceRoot":"","sources":["../../../src/VideoStudio/resources/video-studio-archetypes-resource.component.ts","../../../src/VideoStudio/resources/video-studio-archetypes-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n inject,\n} from '@angular/core';\nimport { CompositeKey, LogError, UserInfo } from '@memberjunction/core';\nimport {\n MJEnvironmentEntityExtended,\n MJVideoArchetypeEntity,\n ResourceData,\n VideoStudioEngine,\n} from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { FormatVideoTime, FormatVideoTimeRange } from '@memberjunction/ng-artifacts';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\nimport { ArchetypeEditorMode } from '../components/vs-archetype-editor.component';\nimport {\n ARCHETYPE_CATEGORIES,\n ArchetypeCardSnapshot,\n ArchetypeCategory,\n ArchetypeCategoryFilter,\n ArchetypeCategoryGroup,\n ArchetypeFilterState,\n ArchetypeScopeFilter,\n BuildArchetypesAgentContext,\n FilterArchetypeCards,\n GroupArchetypesByCategory,\n MapArchetypeToCard,\n ParseArchetypeDefaultFormats,\n ResolveVideoStudioItem,\n StudioBriefClientToolDefinition,\n} from '../video-studio-agent-context';\n\nexport interface ArchetypeBeatBlock {\n Key: string;\n Label: string;\n Purpose: string;\n MinDurationSeconds: number;\n MaxDurationSeconds: number;\n DefaultDurationSeconds?: number;\n ComputedDurationSeconds: number;\n WidthPercent: number;\n Guidance?: string;\n RequiresDataBinding?: boolean;\n}\n\nexport interface ArchetypePacingView {\n AvgSecondsBetweenChanges: number;\n HoldRules: string;\n MinBeatDurationSeconds?: number;\n MaxBeatDurationSeconds?: number;\n}\n\nexport interface ArchetypeViewItem extends ArchetypeCardSnapshot {\n DefaultInteractionMode: string;\n Guidance: string | null;\n BeatTemplateRaw: string;\n PacingRaw: string | null;\n Beats: ArchetypeBeatBlock[];\n Pacing: ArchetypePacingView | null;\n}\n\nexport interface ArchetypeCategoryChipItem {\n Category: ArchetypeCategory;\n Label: string;\n Count: number;\n}\n\n/**\n * Archetypes resource tab for the Video Studio application.\n *\n * Displays all `MJ: Video Archetypes` from `VideoStudioEngine` in a single\n * grid with `<mj-filter-chip>` filters for `Category` (`Announcement | Briefing |\n * DataStory | Explainer | Product | Social | Tutorial`) and scope (`Shipped` /\n * `Yours`), proportional beat-timeline strips (`arch.BeatTemplateObject`), and an\n * inline slide-out preview showing the full beat template, pacing rules,\n * and narrative guidance.\n *\n * Company archetypes (`CompanyID` non-null) provide an \"Edit\" button that opens\n * `vs-archetype-editor` plus an \"Open record\" link to the entity form, while\n * shipped archetypes (`CompanyID IS NULL`) are read-only with a \"Make a copy\"\n * button that opens `vs-archetype-editor` pre-filled with the shipped row.\n */\n@RegisterClass(BaseResourceComponent, 'VideoStudioArchetypesResource')\n@Component({\n standalone: false,\n selector: 'mj-video-studio-archetypes-resource',\n templateUrl: './video-studio-archetypes-resource.component.html',\n styleUrls: ['./video-studio-archetypes-resource.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VideoStudioArchetypesResourceComponent\n extends BaseResourceComponent\n implements OnInit\n{\n public IsLoading = false;\n public LoadError: string | null = null;\n\n public AllArchetypes: ArchetypeViewItem[] = [];\n public FilteredArchetypes: ArchetypeViewItem[] = [];\n public CategoryGroups: ArchetypeCategoryGroup<ArchetypeViewItem>[] = [];\n public CategoryChipItems: ArchetypeCategoryChipItem[] = [];\n public CategoryAllCount = 0;\n public SelectedArchetype: ArchetypeViewItem | null = null;\n\n public SearchText = '';\n public CategoryFilter: ArchetypeCategoryFilter = 'all';\n public ScopeFilter: ArchetypeScopeFilter = 'all';\n\n public FilterFields: FilterFieldConfig[] = [\n {\n key: 'category',\n label: 'Category',\n type: 'dropdown',\n options: [\n { value: 'all', text: 'All categories' },\n ...ARCHETYPE_CATEGORIES.map((cat) => ({\n value: cat,\n text: this.FormatCategoryLabel(cat),\n })),\n ],\n },\n {\n key: 'scope',\n label: 'Scope',\n type: 'dropdown',\n options: [\n { value: 'all', text: 'All scopes' },\n { value: 'shipped', text: 'Shipped (read-only)' },\n { value: 'company', text: 'Company overrides' },\n ],\n },\n ];\n\n public FilterValues: Record<string, unknown> = {\n category: 'all',\n scope: 'all',\n };\n\n // Archetype editor dialog state\n public IsEditorOpen = false;\n public EditorMode: ArchetypeEditorMode = 'copy';\n public EditorSourceArchetypeId: string | null = null;\n public EditorEditingArchetypeId: string | null = null;\n\n public PageContext: Record<string, unknown> = this.buildArchetypesContext();\n public readonly PageTools: StudioBriefClientToolDefinition[] = this.buildArchetypesClientTools();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n public get CurrentUser(): UserInfo | null {\n return this.ProviderToUse?.CurrentUser ?? null;\n }\n\n public get EnvironmentId(): string {\n return (\n (this.Data?.Configuration?.['environmentId'] as string | undefined) ||\n MJEnvironmentEntityExtended.DefaultEnvironmentID\n );\n }\n\n public get ApplicationId(): string {\n return (this.Data?.Configuration?.['applicationId'] as string | undefined) ?? '';\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.LoadArchetypes(false);\n this.NotifyLoadComplete();\n }\n\n public async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Archetypes';\n }\n\n public async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-layer-group';\n }\n\n public get TotalCount(): number {\n return this.AllArchetypes.length;\n }\n\n public get FilteredCount(): number {\n return this.FilteredArchetypes.length;\n }\n\n public get ShippedCount(): number {\n return this.AllArchetypes.filter((a) => a.IsShipped).length;\n }\n\n public get CompanyCount(): number {\n return this.AllArchetypes.filter((a) => !a.IsShipped).length;\n }\n\n public get EditorDialogTitle(): string {\n if (this.EditorMode === 'edit') {\n const target = this.AllArchetypes.find(\n (a) => this.EditorEditingArchetypeId && UUIDsEqual(a.ID, this.EditorEditingArchetypeId),\n );\n return target ? `Edit \"${target.Name}\"` : 'Edit archetype';\n }\n if (this.EditorSourceArchetypeId) {\n const source = this.AllArchetypes.find(\n (a) => this.EditorSourceArchetypeId && UUIDsEqual(a.ID, this.EditorSourceArchetypeId),\n );\n if (source) {\n return `Make a copy of \"${source.Name}\"`;\n }\n }\n return 'New archetype';\n }\n\n public get ActivePopoverFilterCount(): number {\n let count = 0;\n if (this.CategoryFilter && this.CategoryFilter !== 'all') {\n count++;\n }\n if (this.ScopeFilter && this.ScopeFilter !== 'all') {\n count++;\n }\n return count;\n }\n\n public async Refresh(): Promise<void> {\n await this.LoadArchetypes(true);\n }\n\n public async LoadArchetypes(forceRefresh = false): Promise<void> {\n this.IsLoading = true;\n this.LoadError = null;\n this.cdr.markForCheck();\n\n try {\n const engine = VideoStudioEngine.GetProviderInstance<VideoStudioEngine>(\n this.ProviderToUse,\n VideoStudioEngine,\n ) as VideoStudioEngine;\n await engine.Config(forceRefresh, undefined, this.ProviderToUse);\n const archetypes = engine.Archetypes;\n this.AllArchetypes = archetypes.map((arch) => this.mapArchetypeToCard(arch));\n this.applyFiltersAndSync();\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n LogError(msg);\n this.LoadError = msg;\n } finally {\n this.IsLoading = false;\n this.syncAgentContext();\n this.cdr.markForCheck();\n }\n }\n\n public OnSearchChange(value: string): void {\n this.SearchText = value;\n this.applyFiltersAndSync();\n }\n\n public OnFilterValuesChange(values: Record<string, unknown>): void {\n this.FilterValues = { ...values };\n const rawCat = typeof values['category'] === 'string' && values['category'].trim()\n ? values['category'].trim()\n : 'all';\n const rawScope = typeof values['scope'] === 'string' && values['scope'].trim()\n ? values['scope'].trim()\n : 'all';\n this.CategoryFilter = rawCat as ArchetypeCategoryFilter;\n this.ScopeFilter = rawScope as ArchetypeScopeFilter;\n this.applyFiltersAndSync();\n }\n\n public SelectCategoryChip(category: ArchetypeCategoryFilter): void {\n const nextCategory =\n category !== 'all' && this.CategoryFilter === category ? 'all' : category;\n this.CategoryFilter = nextCategory;\n this.FilterValues = {\n ...this.FilterValues,\n category: nextCategory,\n };\n this.applyFiltersAndSync();\n }\n\n public ToggleScopeChip(scope: 'shipped' | 'company'): void {\n const nextScope: ArchetypeScopeFilter = this.ScopeFilter === scope ? 'all' : scope;\n this.ScopeFilter = nextScope;\n this.FilterValues = {\n ...this.FilterValues,\n scope: nextScope,\n };\n this.applyFiltersAndSync();\n }\n\n public ClearAllFilters(): void {\n this.CategoryFilter = 'all';\n this.ScopeFilter = 'all';\n this.FilterValues = {\n category: 'all',\n scope: 'all',\n };\n this.applyFiltersAndSync();\n }\n\n public SelectArchetype(item: ArchetypeViewItem | null): void {\n this.SelectedArchetype = item;\n this.syncAgentContext();\n this.cdr.markForCheck();\n }\n\n public CloseSlideOut(): void {\n this.SelectArchetype(null);\n }\n\n public OpenNewArchetypeEditor(): void {\n this.EditorMode = 'copy';\n this.EditorSourceArchetypeId = this.SelectedArchetype?.ID ?? null;\n this.EditorEditingArchetypeId = null;\n this.IsEditorOpen = true;\n this.cdr.markForCheck();\n }\n\n public OpenCopyArchetypeEditor(item: ArchetypeViewItem, event?: Event): void {\n event?.stopPropagation();\n this.EditorMode = 'copy';\n this.EditorSourceArchetypeId = item.ID;\n this.EditorEditingArchetypeId = null;\n this.IsEditorOpen = true;\n this.cdr.markForCheck();\n }\n\n public OpenEditArchetypeEditor(item: ArchetypeViewItem, event?: Event): void {\n event?.stopPropagation();\n if (item.IsShipped) {\n this.OpenCopyArchetypeEditor(item, event);\n return;\n }\n this.EditorMode = 'edit';\n this.EditorSourceArchetypeId = null;\n this.EditorEditingArchetypeId = item.ID;\n this.IsEditorOpen = true;\n this.cdr.markForCheck();\n }\n\n public OpenArchetypeRecord(item: ArchetypeViewItem, event?: Event): void {\n event?.stopPropagation();\n if (item.IsShipped) {\n this.OpenCopyArchetypeEditor(item, event);\n return;\n }\n this.navigationService.OpenEntityRecord(\n 'MJ: Video Archetypes',\n CompositeKey.FromID(item.ID),\n );\n }\n\n public CloseArchetypeEditor(): void {\n this.IsEditorOpen = false;\n this.EditorSourceArchetypeId = null;\n this.EditorEditingArchetypeId = null;\n this.cdr.markForCheck();\n }\n\n public async OnArchetypeEditorSaved(savedArchetypeId: string): Promise<void> {\n this.IsEditorOpen = false;\n this.EditorSourceArchetypeId = null;\n this.EditorEditingArchetypeId = null;\n await this.LoadArchetypes(true);\n const saved = this.AllArchetypes.find((a) => UUIDsEqual(a.ID, savedArchetypeId));\n if (saved) {\n this.SelectArchetype(saved);\n }\n this.cdr.markForCheck();\n }\n\n public FormatCategoryLabel(category: ArchetypeCategory | string): string {\n if (category === 'DataStory') {\n return 'Data Story';\n }\n return category;\n }\n\n public FormatTime(seconds: number): string {\n return FormatVideoTime(seconds);\n }\n\n public FormatTimeRange(minSeconds: number, maxSeconds: number): string {\n return FormatVideoTimeRange(minSeconds, maxSeconds);\n }\n\n public ParseFormats(formatsRaw: string): string[] {\n return ParseArchetypeDefaultFormats(formatsRaw);\n }\n\n public ResetFiltersAndSearch(): void {\n this.ClearAllFilters();\n this.OnSearchChange('');\n }\n\n private rebuildCategoryChips(): void {\n const rowsAfterOtherFilters = FilterArchetypeCards(this.AllArchetypes, {\n SearchQuery: this.SearchText,\n Category: 'all',\n Scope: this.ScopeFilter,\n });\n const countsByCategory = new Map<ArchetypeCategory, number>();\n for (const cat of ARCHETYPE_CATEGORIES) {\n countsByCategory.set(cat, 0);\n }\n for (const arch of rowsAfterOtherFilters) {\n countsByCategory.set(\n arch.Category,\n (countsByCategory.get(arch.Category) ?? 0) + 1,\n );\n }\n this.CategoryAllCount = rowsAfterOtherFilters.length;\n this.CategoryChipItems = ARCHETYPE_CATEGORIES.map((cat) => ({\n Category: cat,\n Label: this.FormatCategoryLabel(cat),\n Count: countsByCategory.get(cat) ?? 0,\n }));\n }\n\n private mapArchetypeToCard(arch: MJVideoArchetypeEntity): ArchetypeViewItem {\n const snapshot = MapArchetypeToCard(arch);\n const rawBeats = Array.isArray(arch.BeatTemplateObject) ? arch.BeatTemplateObject : [];\n const beatItems = snapshot.BeatItems ?? [];\n const totalWeight = beatItems.reduce((acc, item) => acc + item.Seconds, 0) || 1;\n\n const beats: ArchetypeBeatBlock[] = rawBeats.map((b, idx) => {\n const stripItem = beatItems[idx];\n const seconds = stripItem?.Seconds ?? 1;\n return {\n Key: (b.Key ?? '').trim() || stripItem?.Key || `beat-${idx + 1}`,\n Label: stripItem?.Label ?? (b.Label || b.Key || `Beat ${idx + 1}`),\n Purpose: b.Purpose || '',\n MinDurationSeconds: b.MinDurationSeconds ?? 0,\n MaxDurationSeconds: b.MaxDurationSeconds ?? 0,\n DefaultDurationSeconds: b.DefaultDurationSeconds,\n ComputedDurationSeconds: seconds,\n WidthPercent: Math.max(4, Math.round((seconds / totalWeight) * 1000) / 10),\n Guidance: b.Guidance,\n RequiresDataBinding: b.RequiresDataBinding,\n };\n });\n\n const pacingObj = arch.PacingObject;\n const pacing: ArchetypePacingView | null = pacingObj\n ? {\n ...pacingObj,\n AvgSecondsBetweenChanges: pacingObj.AvgSecondsBetweenChanges ?? 0,\n HoldRules: pacingObj.HoldRules ?? '',\n }\n : null;\n\n return {\n ...snapshot,\n DefaultInteractionMode: arch.DefaultInteractionMode ?? 'Auto',\n Guidance: arch.Guidance ?? null,\n BeatTemplateRaw: arch.BeatTemplate ?? JSON.stringify(rawBeats),\n PacingRaw: arch.Pacing ?? (pacingObj ? JSON.stringify(pacingObj) : null),\n Beats: beats,\n Pacing: pacing,\n };\n }\n\n private currentFilterState(): ArchetypeFilterState {\n return {\n SearchQuery: this.SearchText,\n Category: this.CategoryFilter,\n Scope: this.ScopeFilter,\n };\n }\n\n private applyFiltersAndSync(): void {\n this.rebuildCategoryChips();\n this.FilteredArchetypes = FilterArchetypeCards(\n this.AllArchetypes,\n this.currentFilterState(),\n );\n this.CategoryGroups = GroupArchetypesByCategory(this.FilteredArchetypes);\n this.syncAgentContext();\n this.cdr.markForCheck();\n }\n\n private buildArchetypesContext(): Record<string, unknown> {\n return BuildArchetypesAgentContext({\n AllCards: this.AllArchetypes,\n FilteredCards: this.FilteredArchetypes,\n Filters: this.currentFilterState(),\n SelectedArchetype: this.SelectedArchetype,\n IsLoading: this.IsLoading,\n });\n }\n\n private syncAgentContext(): void {\n this.PageContext = this.buildArchetypesContext();\n this.navigationService.SetAgentContext(this, this.PageContext);\n }\n\n // SAFETY BOUNDARY: Only read, filter, search, select/open-for-viewing, and refresh\n // tools are registered for the AI agent. Creating or editing a company archetype\n // writes a database record and is gated exclusively behind the user-driven\n // vs-archetype-editor dialog.\n private buildArchetypesClientTools(): StudioBriefClientToolDefinition[] {\n return [\n {\n Name: 'SearchArchetypes',\n Description: 'Filter Video Archetypes by a free-text search query matching name, category, format, or beat labels.',\n ParameterSchema: {\n type: 'object',\n properties: {\n query: { type: 'string', description: 'Free-text search query (empty string clears search).' },\n },\n required: ['query'],\n },\n Handler: async (params: Record<string, unknown>) => {\n const query = typeof params['query'] === 'string' ? params['query'] : '';\n this.OnSearchChange(query);\n return {\n Success: true,\n Data: { FilteredCount: this.FilteredCount },\n };\n },\n },\n {\n Name: 'FilterArchetypes',\n Description: 'Filter Video Archetypes by category or scope (all, shipped, company).',\n ParameterSchema: {\n type: 'object',\n properties: {\n category: {\n type: 'string',\n description: 'Category name (Announcement, Briefing, DataStory, Explainer, Product, Social, Tutorial, or \"all\").',\n },\n scope: {\n type: 'string',\n enum: ['all', 'shipped', 'company'],\n description: 'Scope filter (\"all\", \"shipped\", or \"company\").',\n },\n },\n },\n Handler: async (params: Record<string, unknown>) => {\n const nextValues: Record<string, unknown> = { ...this.FilterValues };\n if (typeof params['category'] === 'string') {\n nextValues['category'] = params['category'];\n }\n if (typeof params['scope'] === 'string') {\n nextValues['scope'] = params['scope'];\n }\n this.OnFilterValuesChange(nextValues);\n return {\n Success: true,\n Data: { FilteredCount: this.FilteredCount },\n };\n },\n },\n {\n Name: 'ClearArchetypeFilters',\n Description: 'Clear all active search and popover filters on the Video Archetypes tab.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.SearchText = '';\n this.ClearAllFilters();\n return {\n Success: true,\n Data: { FilteredCount: this.FilteredCount },\n };\n },\n },\n {\n Name: 'SelectArchetype',\n Description: 'Open the inline slide-out preview for a Video Archetype by ID or name.',\n ParameterSchema: {\n type: 'object',\n properties: {\n archetype: { type: 'string', description: 'Archetype ID or display name.' },\n },\n required: ['archetype'],\n },\n Handler: async (params: Record<string, unknown>) => {\n const resolution = ResolveVideoStudioItem(\n params['archetype'],\n this.AllArchetypes,\n 'video archetype',\n );\n if (!resolution.Ok) {\n return { Success: false, ErrorMessage: resolution.Error };\n }\n this.SelectArchetype(resolution.Item);\n return {\n Success: true,\n Data: { ID: resolution.Item.ID, Name: resolution.Item.Name },\n };\n },\n },\n {\n Name: 'OpenArchetype',\n Description: 'Open a company Video Archetype record form by ID or name (shipped archetypes are read-only and open in the slide-out preview).',\n ParameterSchema: {\n type: 'object',\n properties: {\n archetype: { type: 'string', description: 'Archetype ID or display name.' },\n },\n required: ['archetype'],\n },\n Handler: async (params: Record<string, unknown>) => {\n const resolution = ResolveVideoStudioItem(\n params['archetype'],\n this.AllArchetypes,\n 'video archetype',\n );\n if (!resolution.Ok) {\n return { Success: false, ErrorMessage: resolution.Error };\n }\n if (resolution.Item.IsShipped) {\n this.SelectArchetype(resolution.Item);\n return {\n Success: true,\n Data: { ID: resolution.Item.ID, Name: resolution.Item.Name, IsShipped: true },\n };\n }\n this.navigationService.OpenEntityRecord(\n 'MJ: Video Archetypes',\n CompositeKey.FromID(resolution.Item.ID),\n );\n return {\n Success: true,\n Data: { ID: resolution.Item.ID, Name: resolution.Item.Name, IsShipped: false },\n };\n },\n },\n {\n Name: 'RefreshArchetypes',\n Description: 'Reload Video Archetypes from VideoStudioEngine.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n await this.Refresh();\n return {\n Success: true,\n Data: { TotalCount: this.TotalCount },\n };\n },\n },\n ];\n }\n}\n","<div class=\"vs-resource-shell\">\n <mj-page-layout class=\"vs-resource-shell__page\">\n <mj-page-header\n Title=\"Archetypes\"\n Icon=\"fa-solid fa-layer-group\"\n Subtitle=\"Reusable beat templates, duration ranges, and pacing rules for video productions\"\n >\n <div meta>\n <mj-stat-badge\n [Count]=\"FilteredCount\"\n [Total]=\"TotalCount\"\n Label=\"Archetypes\"\n />\n </div>\n\n <div actions>\n <mj-refresh-button\n [Loading]=\"IsLoading\"\n (Clicked)=\"Refresh()\"\n />\n <button\n type=\"button\"\n mjButton\n Variant=\"primary\"\n data-testid=\"new-archetype-button\"\n (click)=\"OpenNewArchetypeEditor()\"\n >\n <i class=\"fa-solid fa-plus\" aria-hidden=\"true\"></i>\n <span>New archetype</span>\n </button>\n </div>\n\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search archetypes by name, category, format, or beat...\"\n [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\"\n />\n <mj-filter-popover\n Label=\"Filters\"\n Icon=\"fa-solid fa-filter\"\n [ActiveCount]=\"ActivePopoverFilterCount\"\n [ShowClearAll]=\"ActivePopoverFilterCount > 0\"\n (ClearAllRequested)=\"ClearAllFilters()\"\n >\n <mj-filter-panel\n [Fields]=\"FilterFields\"\n [Values]=\"FilterValues\"\n [ShowReset]=\"false\"\n (ValuesChange)=\"OnFilterValuesChange($event)\"\n />\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n @if (IsLoading && AllArchetypes.length === 0) {\n <div class=\"vs-loading-state\" data-testid=\"archetypes-loading\">\n <mj-loading Text=\"Loading video archetypes...\" Size=\"medium\" />\n </div>\n } @else if (LoadError) {\n <mj-empty-state\n data-testid=\"archetypes-error\"\n Role=\"alert\"\n Variant=\"error\"\n Icon=\"fa-solid fa-triangle-exclamation\"\n Title=\"Unable to load archetypes\"\n [Message]=\"LoadError\"\n ActionText=\"Try again\"\n ActionIcon=\"fa-solid fa-rotate\"\n ActionVariant=\"secondary\"\n (Action)=\"Refresh()\"\n ></mj-empty-state>\n } @else if (AllArchetypes.length === 0) {\n <mj-empty-state\n data-testid=\"archetypes-empty\"\n Variant=\"empty\"\n Icon=\"fa-solid fa-layer-group\"\n Title=\"No video archetypes available\"\n Message=\"Archetypes define reusable narrative structures, beat templates, and pacing rules.\"\n ></mj-empty-state>\n } @else {\n <div\n class=\"vs-archetypes-workspace\"\n [class.vs-archetypes-workspace--split]=\"SelectedArchetype !== null\"\n >\n <div class=\"vs-archetypes-main\">\n <div class=\"vs-archetypes-filter-bar\" data-testid=\"archetypes-filter-chips\">\n <div class=\"vs-archetypes-chip-group\" role=\"group\" aria-label=\"Filter by category\">\n <mj-filter-chip\n data-testid=\"archetype-category-chip-all\"\n Label=\"All\"\n [Count]=\"CategoryAllCount\"\n [Active]=\"CategoryFilter === 'all'\"\n (Clicked)=\"SelectCategoryChip('all')\"\n ></mj-filter-chip>\n @for (chip of CategoryChipItems; track chip.Category) {\n <mj-filter-chip\n [attr.data-testid]=\"'archetype-category-chip-' + chip.Category\"\n [Label]=\"chip.Label\"\n [Count]=\"chip.Count\"\n [Active]=\"CategoryFilter === chip.Category\"\n (Clicked)=\"SelectCategoryChip(chip.Category)\"\n ></mj-filter-chip>\n }\n </div>\n\n <span class=\"vs-archetypes-chip-divider\" aria-hidden=\"true\"></span>\n\n <div class=\"vs-archetypes-chip-group\" role=\"group\" aria-label=\"Filter by scope\">\n <mj-filter-chip\n data-testid=\"archetype-scope-chip-shipped\"\n Label=\"Shipped\"\n [Count]=\"ShippedCount\"\n [Active]=\"ScopeFilter === 'shipped'\"\n (Clicked)=\"ToggleScopeChip('shipped')\"\n ></mj-filter-chip>\n <mj-filter-chip\n data-testid=\"archetype-scope-chip-company\"\n Label=\"Yours\"\n [Count]=\"CompanyCount\"\n [Active]=\"ScopeFilter === 'company'\"\n (Clicked)=\"ToggleScopeChip('company')\"\n ></mj-filter-chip>\n </div>\n </div>\n\n @if (FilteredArchetypes.length === 0) {\n <mj-empty-state\n data-testid=\"archetypes-empty\"\n Variant=\"no-results\"\n Icon=\"fa-solid fa-layer-group\"\n Title=\"No archetypes match your filters\"\n Message=\"Try clearing your search query or adjusting the active category or scope filters.\"\n ActionText=\"Reset filters\"\n ActionIcon=\"fa-solid fa-filter-circle-xmark\"\n ActionVariant=\"secondary\"\n (Action)=\"ResetFiltersAndSearch()\"\n ></mj-empty-state>\n } @else {\n <div class=\"vs-archetypes-grid\" data-testid=\"archetypes-grid\">\n @for (arch of FilteredArchetypes; track arch.ID) {\n <article\n class=\"vs-archetype-card\"\n [class.vs-archetype-card--selected]=\"SelectedArchetype?.ID === arch.ID\"\n [attr.data-testid]=\"'archetype-card-' + arch.ID\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-pressed]=\"SelectedArchetype?.ID === arch.ID\"\n (click)=\"SelectArchetype(arch)\"\n (keydown.enter)=\"SelectArchetype(arch)\"\n (keydown.space)=\"$event.preventDefault(); SelectArchetype(arch)\"\n >\n <div class=\"vs-archetype-card-header\">\n <h3 class=\"vs-archetype-title\" [title]=\"arch.Name\">\n {{ arch.Name }}\n </h3>\n\n @if (arch.CompanyName) {\n <span\n class=\"vs-archetype-company-meta\"\n data-testid=\"archetype-company-badge\"\n >\n {{ arch.CompanyName }}\n </span>\n } @else if (arch.IsShipped) {\n <mj-video-badge\n Variant=\"neutral\"\n data-testid=\"archetype-shipped-badge\"\n >\n <i class=\"fa-solid fa-lock\" aria-hidden=\"true\"></i>\n <span>Shipped</span>\n </mj-video-badge>\n }\n </div>\n\n @if (arch.Description) {\n <p class=\"vs-archetype-description\">{{ arch.Description }}</p>\n }\n\n <div class=\"vs-archetype-meta-line\">\n <span\n class=\"vs-archetype-category-meta\"\n data-testid=\"archetype-category-meta\"\n >\n {{ FormatCategoryLabel(arch.Category) }}\n </span>\n <span class=\"vs-archetype-meta-sep\" aria-hidden=\"true\">·</span>\n <span class=\"vs-archetype-duration-meta\" data-testid=\"archetype-duration-badge\">\n {{ FormatTime(arch.DefaultDurationSeconds) }}\n ({{ FormatTimeRange(arch.MinDurationSeconds, arch.MaxDurationSeconds) }})\n </span>\n <span class=\"vs-archetype-meta-sep\" aria-hidden=\"true\">·</span>\n <span class=\"vs-archetype-formats-meta\" data-testid=\"archetype-formats-badge\">\n @for (fmt of ParseFormats(arch.DefaultFormats); track fmt) {\n <mj-video-format-glyph [Format]=\"fmt\" Size=\"sm\"></mj-video-format-glyph>\n }\n </span>\n </div>\n\n <div class=\"vs-archetype-beat-strip-wrap\">\n <mj-video-beat-strip\n data-testid=\"archetype-beat-timeline\"\n [Beats]=\"arch.BeatItems || []\"\n ></mj-video-beat-strip>\n </div>\n </article>\n }\n </div>\n }\n </div>\n\n @if (SelectedArchetype; as selected) {\n <aside class=\"vs-archetype-slideout\" data-testid=\"archetype-slideout\">\n <header class=\"vs-slideout-header\">\n <div class=\"vs-slideout-title-wrap\">\n <span class=\"vs-slideout-category-tag\">\n {{ FormatCategoryLabel(selected.Category) }}\n </span>\n <h2 class=\"vs-slideout-title\">{{ selected.Name }}</h2>\n </div>\n\n <div class=\"vs-slideout-actions\">\n @if (selected.IsShipped) {\n <button\n type=\"button\"\n mjButton\n Variant=\"primary\"\n Size=\"sm\"\n data-testid=\"archetype-make-copy-button\"\n (click)=\"OpenCopyArchetypeEditor(selected, $event)\"\n >\n <i class=\"fa-regular fa-copy\" aria-hidden=\"true\"></i>\n <span>Make a copy</span>\n </button>\n } @else {\n <button\n type=\"button\"\n mjButton\n Variant=\"primary\"\n Size=\"sm\"\n data-testid=\"archetype-edit-button\"\n (click)=\"OpenEditArchetypeEditor(selected, $event)\"\n >\n <i class=\"fa-solid fa-pen-to-square\" aria-hidden=\"true\"></i>\n <span>Edit</span>\n </button>\n <button\n type=\"button\"\n mjButton\n Variant=\"flat\"\n Size=\"sm\"\n data-testid=\"archetype-open-record-button\"\n (click)=\"OpenArchetypeRecord(selected, $event)\"\n >\n <span>Open record</span>\n </button>\n }\n <button\n type=\"button\"\n mjButton\n Variant=\"icon\"\n Size=\"sm\"\n [AriaLabel]=\"'Close archetype preview'\"\n data-testid=\"archetype-slideout-close\"\n (click)=\"CloseSlideOut()\"\n >\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <div class=\"vs-slideout-body\">\n @if (selected.IsShipped) {\n <div class=\"vs-shipped-readonly-banner\" data-testid=\"archetype-shipped-readonly-banner\">\n <i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\"></i>\n <span>\n Shipped archetypes are read-only templates. Make a copy of this archetype to customize it for a specific company.\n </span>\n </div>\n }\n\n @if (selected.Description) {\n <p class=\"vs-slideout-description\">{{ selected.Description }}</p>\n }\n\n <div class=\"vs-slideout-summary-grid\">\n <div class=\"vs-summary-item\">\n <span class=\"vs-summary-label\">Default duration</span>\n <span class=\"vs-summary-value vs-summary-value--mono\">\n {{ FormatTime(selected.DefaultDurationSeconds) }}\n </span>\n </div>\n <div class=\"vs-summary-item\">\n <span class=\"vs-summary-label\">Duration range</span>\n <span class=\"vs-summary-value vs-summary-value--mono\">\n {{ FormatTimeRange(selected.MinDurationSeconds, selected.MaxDurationSeconds) }}\n </span>\n </div>\n <div class=\"vs-summary-item\">\n <span class=\"vs-summary-label\">Default formats</span>\n <span class=\"vs-summary-value vs-archetype-formats-meta\">\n @for (fmt of ParseFormats(selected.DefaultFormats); track fmt) {\n <mj-video-format-glyph [Format]=\"fmt\" Size=\"sm\"></mj-video-format-glyph>\n }\n </span>\n </div>\n <div class=\"vs-summary-item\">\n <span class=\"vs-summary-label\">Interaction mode</span>\n <span class=\"vs-summary-value\">{{ selected.DefaultInteractionMode }}</span>\n </div>\n </div>\n\n <section class=\"vs-slideout-section\">\n <h3 class=\"vs-slideout-section-title\">\n <i class=\"fa-solid fa-timeline\" aria-hidden=\"true\"></i>\n <span>Beat template ({{ selected.Beats.length }})</span>\n </h3>\n <mj-video-beat-strip\n [Beats]=\"selected.BeatItems || []\"\n ></mj-video-beat-strip>\n <div class=\"vs-slideout-beat-list\">\n @for (beat of selected.Beats; track beat.Key; let idx = $index) {\n <div class=\"vs-slideout-beat-item\" data-testid=\"slideout-beat-item\">\n <div class=\"vs-slideout-beat-header\">\n <span class=\"vs-slideout-beat-index\">{{ idx + 1 }}</span>\n <strong class=\"vs-slideout-beat-name\">{{ beat.Label }}</strong>\n <span class=\"vs-slideout-beat-duration\">\n {{ FormatTime(beat.ComputedDurationSeconds) }}\n ({{ FormatTimeRange(beat.MinDurationSeconds, beat.MaxDurationSeconds) }})\n </span>\n @if (beat.RequiresDataBinding) {\n <mj-video-badge Variant=\"info\">Data bound</mj-video-badge>\n }\n </div>\n <p class=\"vs-slideout-beat-purpose\">{{ beat.Purpose }}</p>\n @if (beat.Guidance) {\n <p class=\"vs-slideout-beat-guidance\">{{ beat.Guidance }}</p>\n }\n </div>\n }\n </div>\n </section>\n\n @if (selected.Pacing) {\n <section class=\"vs-slideout-section\" data-testid=\"slideout-pacing-section\">\n <h3 class=\"vs-slideout-section-title\">\n <i class=\"fa-solid fa-gauge-high\" aria-hidden=\"true\"></i>\n <span>Pacing rules</span>\n </h3>\n <div class=\"vs-pacing-box\">\n <div class=\"vs-pacing-stat\">\n <span>Average time between visual changes:</span>\n <strong>{{ FormatTime(selected.Pacing.AvgSecondsBetweenChanges) }}</strong>\n </div>\n @if (selected.Pacing.HoldRules) {\n <p class=\"vs-pacing-hold-rules\">{{ selected.Pacing.HoldRules }}</p>\n }\n </div>\n </section>\n }\n\n @if (selected.Guidance) {\n <section class=\"vs-slideout-section\" data-testid=\"slideout-guidance-section\">\n <h3 class=\"vs-slideout-section-title\">\n <i class=\"fa-solid fa-compass\" aria-hidden=\"true\"></i>\n <span>Producer guidance</span>\n </h3>\n <p class=\"vs-guidance-text\">{{ selected.Guidance }}</p>\n </section>\n }\n </div>\n </aside>\n }\n </div>\n }\n\n @if (IsEditorOpen) {\n <mj-dialog\n [Visible]=\"true\"\n [Title]=\"EditorDialogTitle\"\n Size=\"lg\"\n (Close)=\"CloseArchetypeEditor()\"\n >\n <vs-archetype-editor\n [Provider]=\"ProviderToUse\"\n [Mode]=\"EditorMode\"\n [SourceArchetypeId]=\"EditorSourceArchetypeId\"\n [EditingArchetypeId]=\"EditorEditingArchetypeId\"\n (Saved)=\"OnArchetypeEditorSaved($event)\"\n (Cancelled)=\"CloseArchetypeEditor()\"\n ></vs-archetype-editor>\n </mj-dialog>\n }\n </mj-page-body>\n </mj-page-layout>\n\n <vs-studio-slide-in\n [Provider]=\"ProviderToUse\"\n [CurrentUser]=\"CurrentUser\"\n [EnvironmentId]=\"EnvironmentId\"\n [ApplicationId]=\"ApplicationId\"\n [PageSource]=\"this\"\n [PageContext]=\"PageContext\"\n [PageTools]=\"PageTools\"\n [HeaderTitle]=\"'Video Studio'\"\n ></vs-studio-slide-in>\n</div>\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { UserInfo } from '@memberjunction/core';
|
|
3
|
+
import { ResourceData } from '@memberjunction/core-entities';
|
|
4
|
+
import { type VideoBadgeVariant } from '@memberjunction/ng-artifacts';
|
|
5
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
6
|
+
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
|
|
7
|
+
import { BrandKitCardSnapshot, BrandKitStatusFilter, StudioBriefClientToolDefinition } from '../video-studio-agent-context';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export type BrandKitCardItem = BrandKitCardSnapshot;
|
|
10
|
+
/**
|
|
11
|
+
* Brand Kits resource tab for the Video Studio application.
|
|
12
|
+
*
|
|
13
|
+
* Displays all `MJ: Brand Kits` from `BrandKitEngine` as cards showing the kit
|
|
14
|
+
* name, primary logo thumbnail, company scope (or "Workspace default"), default
|
|
15
|
+
* star indicator, status badge, color palette swatch strip (`kit.StyleObject.Palette`),
|
|
16
|
+
* and asset count (`engine.GetAssets(kit.ID).length`).
|
|
17
|
+
*/
|
|
18
|
+
export declare class VideoStudioBrandKitsResourceComponent extends BaseResourceComponent implements OnInit {
|
|
19
|
+
IsLoading: boolean;
|
|
20
|
+
LoadError: string | null;
|
|
21
|
+
DeleteError: string | null;
|
|
22
|
+
DeletingKitId: string | null;
|
|
23
|
+
IsBrandKitCreatorOpen: boolean;
|
|
24
|
+
AllBrandKits: BrandKitCardSnapshot[];
|
|
25
|
+
FilteredBrandKits: BrandKitCardSnapshot[];
|
|
26
|
+
SelectedBrandKit: BrandKitCardSnapshot | null;
|
|
27
|
+
SearchText: string;
|
|
28
|
+
StatusFilter: BrandKitStatusFilter;
|
|
29
|
+
CompanyFilter: string;
|
|
30
|
+
FilterFields: FilterFieldConfig[];
|
|
31
|
+
FilterValues: Record<string, unknown>;
|
|
32
|
+
PageContext: Record<string, unknown>;
|
|
33
|
+
readonly PageTools: StudioBriefClientToolDefinition[];
|
|
34
|
+
private kitsById;
|
|
35
|
+
private readonly cdr;
|
|
36
|
+
private readonly confirmService;
|
|
37
|
+
get CurrentUser(): UserInfo | null;
|
|
38
|
+
get EnvironmentId(): string;
|
|
39
|
+
get ApplicationId(): string;
|
|
40
|
+
ngOnInit(): Promise<void>;
|
|
41
|
+
GetResourceDisplayName(_data: ResourceData): Promise<string>;
|
|
42
|
+
GetResourceIconClass(_data: ResourceData): Promise<string>;
|
|
43
|
+
get TotalCount(): number;
|
|
44
|
+
get FilteredCount(): number;
|
|
45
|
+
get ActivePopoverFilterCount(): number;
|
|
46
|
+
Refresh(): Promise<void>;
|
|
47
|
+
LoadBrandKits(forceRefresh?: boolean): Promise<void>;
|
|
48
|
+
OnSearchChange(value: string): void;
|
|
49
|
+
OnFilterValuesChange(values: Record<string, unknown>): void;
|
|
50
|
+
ClearAllFilters(): void;
|
|
51
|
+
ResetFiltersAndSearch(): void;
|
|
52
|
+
StatusBadgeVariant(status: string): VideoBadgeVariant;
|
|
53
|
+
CreateNewBrandKit(): void;
|
|
54
|
+
CloseBrandKitCreator(): void;
|
|
55
|
+
OnBrandKitCreatorSaved(newBrandKitId: string): Promise<void>;
|
|
56
|
+
OnBrandKitCreatorOpenMoreSettings(brandKitId: string): void;
|
|
57
|
+
OpenBrandKit(item: BrandKitCardSnapshot): void;
|
|
58
|
+
DeleteBrandKit(card: BrandKitCardSnapshot, event?: Event): Promise<void>;
|
|
59
|
+
private buildBrandKitsClientTools;
|
|
60
|
+
private mapKitToCard;
|
|
61
|
+
private mintLogoUrls;
|
|
62
|
+
private rebuildFilterFieldOptions;
|
|
63
|
+
private currentFilterState;
|
|
64
|
+
private applyFiltersAndSync;
|
|
65
|
+
private buildBrandKitsContext;
|
|
66
|
+
private syncAgentContext;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VideoStudioBrandKitsResourceComponent, never>;
|
|
68
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VideoStudioBrandKitsResourceComponent, "mj-video-studio-brand-kits-resource", never, {}, {}, never, never, false, never>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=video-studio-brand-kits-resource.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-studio-brand-kits-resource.component.d.ts","sourceRoot":"","sources":["../../../src/VideoStudio/resources/video-studio-brand-kits-resource.component.ts"],"names":[],"mappings":"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"}
|