@memberjunction/ng-dashboards 6.2.0-edge.6 → 6.2.0-edge.8

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.
Files changed (233) hide show
  1. package/README.md +23 -16
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +31 -10
  16. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  17. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  18. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  19. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  21. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  22. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  24. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  25. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  27. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  28. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +1 -0
  30. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  31. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
  32. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  33. package/dist/AI/components/tags/tags-resource.component.js +14 -24
  34. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  35. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  36. package/dist/AI/components/vectors/vector-management-resource.component.js +14 -7
  37. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  38. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  39. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  40. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  41. package/dist/Actions/action-result-code.d.ts +80 -0
  42. package/dist/Actions/action-result-code.d.ts.map +1 -0
  43. package/dist/Actions/action-result-code.js +163 -0
  44. package/dist/Actions/action-result-code.js.map +1 -0
  45. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  46. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  47. package/dist/Actions/components/actions-overview.component.js +12 -9
  48. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  49. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  50. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  51. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  52. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  53. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  54. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  55. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  56. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +92 -130
  57. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
  58. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
  59. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
  60. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  61. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  62. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  63. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  64. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  65. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  66. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  67. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  68. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  69. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  70. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  71. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  72. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  73. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  74. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  75. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  76. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  77. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  78. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  79. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  80. package/dist/ChiefOfStaff/index.d.ts +4 -1
  81. package/dist/ChiefOfStaff/index.d.ts.map +1 -1
  82. package/dist/ChiefOfStaff/index.js +4 -1
  83. package/dist/ChiefOfStaff/index.js.map +1 -1
  84. package/dist/Communication/communication-monitor-resource.component.js +3 -3
  85. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  86. package/dist/Communication/communication-runs-resource.component.js +3 -3
  87. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  88. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  89. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  90. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  91. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  92. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  93. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  95. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  96. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  97. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
  98. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  99. package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
  100. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  101. package/dist/DevTools/graphql-console.component.js +2 -2
  102. package/dist/DevTools/lazy-module-status.component.js +2 -2
  103. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  104. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  105. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  106. package/dist/Integration/components/connections/connections.component.js +2 -2
  107. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  108. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  109. package/dist/Integration/services/integration-data.service.js +4 -3
  110. package/dist/Integration/services/integration-data.service.js.map +1 -1
  111. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  112. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +11 -3
  113. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  114. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +16 -16
  115. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  116. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.d.ts +113 -0
  117. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.d.ts.map +1 -0
  118. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.js +1184 -0
  119. package/dist/KnowledgeHub/components/visualize/semantic-graph/semantic-graph-explorer.component.js.map +1 -0
  120. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.d.ts +1 -1
  121. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.d.ts.map +1 -1
  122. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.js +1 -1
  123. package/dist/KnowledgeHub/components/visualize/visualize-agent-context.js.map +1 -1
  124. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +1 -1
  125. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -1
  126. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +21 -10
  127. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -1
  128. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  129. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  130. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  131. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  132. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  133. package/dist/LoginStudio/login-studio-resource.component.js +1 -0
  134. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  135. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  136. package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
  137. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  138. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
  139. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  140. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
  141. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  142. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  143. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
  144. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  145. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  146. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
  147. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  148. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  149. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  150. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  151. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  152. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  153. package/dist/SystemDiagnostics/system-diagnostics.component.js +4 -2
  154. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  155. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  156. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  157. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  158. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  159. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  160. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  161. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  162. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  163. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  164. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  165. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  166. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  167. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  168. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  169. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  170. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  171. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  172. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  173. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  174. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  175. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  176. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  177. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  178. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  179. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  180. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  181. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  182. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  183. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  184. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  185. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  186. package/dist/VideoStudio/index.d.ts +12 -0
  187. package/dist/VideoStudio/index.d.ts.map +1 -0
  188. package/dist/VideoStudio/index.js +12 -0
  189. package/dist/VideoStudio/index.js.map +1 -0
  190. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  191. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  192. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  193. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  194. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  195. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  196. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  197. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  198. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  199. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  200. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  201. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  202. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  203. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  204. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  205. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  206. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  207. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  208. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  209. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  210. package/dist/ai-dashboards.module.d.ts +46 -41
  211. package/dist/ai-dashboards.module.d.ts.map +1 -1
  212. package/dist/ai-dashboards.module.js +33 -7
  213. package/dist/ai-dashboards.module.js.map +1 -1
  214. package/dist/module.d.ts +13 -12
  215. package/dist/module.d.ts.map +1 -1
  216. package/dist/module.js +7 -0
  217. package/dist/module.js.map +1 -1
  218. package/dist/public-api.d.ts +8 -1
  219. package/dist/public-api.d.ts.map +1 -1
  220. package/dist/public-api.js +10 -2
  221. package/dist/public-api.js.map +1 -1
  222. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  223. package/dist/shared/action-scheduled-job.js +2 -0
  224. package/dist/shared/action-scheduled-job.js.map +1 -1
  225. package/dist/video-studio-dashboards.module.d.ts +40 -0
  226. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  227. package/dist/video-studio-dashboards.module.js +159 -0
  228. package/dist/video-studio-dashboards.module.js.map +1 -0
  229. package/package.json +78 -71
  230. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
  231. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
  232. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
  233. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
@@ -0,0 +1,271 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, inject, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MJEnvironmentEntityExtended } from '@memberjunction/core-entities';
4
+ import { UUIDsEqual } from '@memberjunction/global';
5
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
6
+ import { NavigationService } from '@memberjunction/ng-shared';
7
+ import { VSStudioSlideInStateService } from '../services/vs-studio-slide-in-state.service';
8
+ import { VSCopilotPanelComponent, } from './vs-copilot-panel.component';
9
+ import * as i0 from "@angular/core";
10
+ const _c0 = ["copilotPanel"];
11
+ function VSStudioSlideInComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
12
+ const _r1 = i0.ɵɵgetCurrentView();
13
+ i0.ɵɵelementStart(0, "button", 3);
14
+ i0.ɵɵlistener("click", function VSStudioSlideInComponent_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Reopen()); });
15
+ i0.ɵɵelement(1, "i", 4);
16
+ i0.ɵɵelementStart(2, "span", 5);
17
+ i0.ɵɵtext(3, "Video Studio");
18
+ i0.ɵɵelementEnd()();
19
+ } }
20
+ function VSStudioSlideInComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21
+ const _r3 = i0.ɵɵgetCurrentView();
22
+ i0.ɵɵelementStart(0, "aside", 2)(1, "div", 6)(2, "vs-copilot-panel", 7, 0);
23
+ i0.ɵɵlistener("ConversationCreated", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_ConversationCreated_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnConversationCreated($event)); })("PendingArtifactConsumed", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_PendingArtifactConsumed_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnPendingArtifactConsumed()); })("BriefStateChange", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_BriefStateChange_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnBriefStateChange($event)); })("BriefStartRequested", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_BriefStartRequested_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnBriefStartRequested($event)); })("NavigationRequest", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_NavigationRequest_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnNavigationRequest($event)); })("CloseRequested", function VSStudioSlideInComponent_Conditional_1_Template_vs_copilot_panel_CloseRequested_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Close()); });
24
+ i0.ɵɵelementEnd()()();
25
+ } if (rf & 2) {
26
+ const ctx_r1 = i0.ɵɵnextContext();
27
+ i0.ɵɵadvance(2);
28
+ i0.ɵɵproperty("Provider", ctx_r1.ProviderToUse)("CurrentUser", ctx_r1.EffectiveCurrentUser)("EnvironmentId", ctx_r1.EnvironmentId)("ApplicationId", ctx_r1.ApplicationId)("ConversationId", ctx_r1.ConversationId)("PendingArtifactId", ctx_r1.PendingArtifactId)("PendingArtifactVersionNumber", ctx_r1.PendingArtifactVersionNumber)("AppContext", ctx_r1.EffectiveAppContext)("HeaderTitle", ctx_r1.HeaderTitle)("ShowCloseButton", true)("BriefSelectedArchetype", ctx_r1.SlideInState.BriefSelectedArchetype)("BriefSelectedBrandKit", ctx_r1.SlideInState.BriefSelectedBrandKit)("BriefSelectedBrandKitExplicitNone", ctx_r1.SlideInState.BriefSelectedBrandKitExplicitNone)("BriefSelectedFormats", ctx_r1.SlideInState.BriefSelectedFormats)("BriefDurationSeconds", ctx_r1.SlideInState.BriefDurationSeconds)("BriefTopic", ctx_r1.SlideInState.BriefTopic)("BriefSelectedQueries", ctx_r1.SlideInState.BriefSelectedQueries)("BriefNarrationEnabled", ctx_r1.SlideInState.NarrationEnabled)("BriefCaptionsMode", ctx_r1.SlideInState.CaptionsMode);
29
+ } }
30
+ /**
31
+ * Shared right-side Video Studio slide-in host (`vs-studio-slide-in`).
32
+ *
33
+ * Renders the collapsed right-edge reopen strip (`button.vs-copilot-strip`) when closed
34
+ * and the `<aside class="vs-copilot-slidein">` wrapping `<vs-copilot-panel>` when open.
35
+ * Backed by the root-provided {@link VSStudioSlideInStateService} so open/closed state
36
+ * and the active conversation ID survive navigation across Productions, Brand Kits,
37
+ * and Archetypes. Also combines the hosting resource page's `[PageContext]` and `[PageTools]`
38
+ * with the Video Studio brief context and brief form-fill client tools.
39
+ */
40
+ export class VSStudioSlideInComponent extends BaseAngularComponent {
41
+ _pageContext = null;
42
+ _appContext = null;
43
+ _fallbackBrandKitId = null;
44
+ CurrentUser = null;
45
+ EnvironmentId = MJEnvironmentEntityExtended.DefaultEnvironmentID;
46
+ ApplicationId = '';
47
+ PageSource = null;
48
+ set PageContext(value) {
49
+ this._pageContext = value;
50
+ this.rebuildEffectiveAppContext();
51
+ }
52
+ get PageContext() {
53
+ return this._pageContext;
54
+ }
55
+ set AppContext(value) {
56
+ this._appContext = value;
57
+ this.rebuildEffectiveAppContext();
58
+ }
59
+ get AppContext() {
60
+ return this._appContext;
61
+ }
62
+ PageTools = [];
63
+ set FallbackBrandKitId(value) {
64
+ this._fallbackBrandKitId = value;
65
+ this.rebuildEffectiveAppContext();
66
+ }
67
+ get FallbackBrandKitId() {
68
+ return this._fallbackBrandKitId;
69
+ }
70
+ HeaderTitle = 'Video Studio';
71
+ OpenChange = new EventEmitter();
72
+ ConversationCreated = new EventEmitter();
73
+ PendingArtifactConsumed = new EventEmitter();
74
+ BriefStateChange = new EventEmitter();
75
+ BriefStartRequested = new EventEmitter();
76
+ NavigationRequest = new EventEmitter();
77
+ CopilotPanel;
78
+ SlideInState = inject(VSStudioSlideInStateService);
79
+ elementRef = inject(ElementRef);
80
+ navigationService = inject(NavigationService, { optional: true });
81
+ cdr = inject(ChangeDetectorRef);
82
+ stateSub = null;
83
+ lastBriefShowingState = null;
84
+ EffectiveAppContext = this.SlideInState.BuildCombinedAppContext(null, null);
85
+ ngOnInit() {
86
+ this.lastBriefShowingState = this.SlideInState.IsBriefShowing;
87
+ this.rebuildEffectiveAppContext();
88
+ this.registerCombinedClientTools();
89
+ this.stateSub = this.SlideInState.State$.subscribe((snapshot) => {
90
+ this.rebuildEffectiveAppContext();
91
+ if (this.lastBriefShowingState !== this.SlideInState.IsBriefShowing) {
92
+ this.lastBriefShowingState = this.SlideInState.IsBriefShowing;
93
+ this.registerCombinedClientTools();
94
+ }
95
+ if (snapshot.PendingArtifactId &&
96
+ snapshot.ConversationId &&
97
+ this.CopilotPanel &&
98
+ UUIDsEqual(snapshot.ConversationId, this.CopilotPanel.ConversationId)) {
99
+ this.CopilotPanel.OpenIterateArtifact(snapshot.PendingArtifactId, snapshot.PendingArtifactVersionNumber);
100
+ }
101
+ this.cdr.markForCheck();
102
+ });
103
+ }
104
+ ngOnChanges(changes) {
105
+ if (changes['PageTools'] && !changes['PageTools'].firstChange) {
106
+ this.registerCombinedClientTools();
107
+ }
108
+ if (changes['PageContext'] ||
109
+ changes['AppContext'] ||
110
+ changes['FallbackBrandKitId']) {
111
+ this.rebuildEffectiveAppContext();
112
+ }
113
+ }
114
+ ngOnDestroy() {
115
+ this.stateSub?.unsubscribe();
116
+ this.stateSub = null;
117
+ }
118
+ get IsOpen() {
119
+ return this.SlideInState.IsOpen;
120
+ }
121
+ get ConversationId() {
122
+ return this.SlideInState.ConversationId;
123
+ }
124
+ get PendingArtifactId() {
125
+ return this.SlideInState.PendingArtifactId;
126
+ }
127
+ get PendingArtifactVersionNumber() {
128
+ return this.SlideInState.PendingArtifactVersionNumber;
129
+ }
130
+ get EffectiveCurrentUser() {
131
+ return this.CurrentUser ?? this.ProviderToUse?.CurrentUser ?? null;
132
+ }
133
+ OpenNewProduction() {
134
+ this.SlideInState.OpenNewProduction();
135
+ this.OpenChange.emit(true);
136
+ this.cdr.markForCheck();
137
+ }
138
+ Reopen() {
139
+ this.SlideInState.Reopen();
140
+ this.OpenChange.emit(true);
141
+ this.cdr.markForCheck();
142
+ }
143
+ Close() {
144
+ this.SlideInState.Close();
145
+ this.OpenChange.emit(false);
146
+ this.cdr.markForCheck();
147
+ }
148
+ OnEscapeKeydown(event) {
149
+ if (!this.IsOpen || event.defaultPrevented) {
150
+ return;
151
+ }
152
+ const target = event.target instanceof Node ? event.target : null;
153
+ if (!target || !this.elementRef.nativeElement.contains(target)) {
154
+ return;
155
+ }
156
+ if (target instanceof Element &&
157
+ target.closest('mj-image-viewer, .image-viewer-backdrop, mj-dialog, [role="dialog"], .mj-calendar')) {
158
+ return;
159
+ }
160
+ if (this.CopilotPanel?.IsImageViewerOpen ||
161
+ this.CopilotPanel?.IsCreatingConversation) {
162
+ return;
163
+ }
164
+ this.Close();
165
+ }
166
+ OnConversationCreated(event) {
167
+ this.SlideInState.SetConversationId(event.conversation.ID);
168
+ this.ConversationCreated.emit(event);
169
+ this.cdr.markForCheck();
170
+ }
171
+ OnPendingArtifactConsumed() {
172
+ this.SlideInState.ClearPendingArtifact();
173
+ this.PendingArtifactConsumed.emit();
174
+ this.cdr.markForCheck();
175
+ }
176
+ OnBriefStateChange(snapshot) {
177
+ this.SlideInState.ApplyBriefSnapshot(snapshot);
178
+ this.BriefStateChange.emit(snapshot);
179
+ this.cdr.markForCheck();
180
+ }
181
+ OnBriefStartRequested(event) {
182
+ this.BriefStartRequested.emit(event);
183
+ this.cdr.markForCheck();
184
+ }
185
+ OnNavigationRequest(event) {
186
+ this.NavigationRequest.emit(event);
187
+ }
188
+ rebuildEffectiveAppContext() {
189
+ this.EffectiveAppContext = this.SlideInState.BuildCombinedAppContext(this._pageContext ?? this._appContext, this._fallbackBrandKitId);
190
+ }
191
+ registerCombinedClientTools() {
192
+ if (!this.navigationService || !this.PageSource) {
193
+ return;
194
+ }
195
+ const briefTools = this.SlideInState.BuildBriefClientTools({
196
+ Provider: this.ProviderToUse,
197
+ GetBriefComponent: () => this.CopilotPanel?.BriefComponent,
198
+ OnBriefMutated: () => {
199
+ this.rebuildEffectiveAppContext();
200
+ this.cdr.markForCheck();
201
+ },
202
+ });
203
+ this.navigationService.SetAgentClientTools(this.PageSource, [
204
+ ...this.PageTools,
205
+ ...briefTools,
206
+ ]);
207
+ }
208
+ static ɵfac = /*@__PURE__*/ (() => { let ɵVSStudioSlideInComponent_BaseFactory; return function VSStudioSlideInComponent_Factory(__ngFactoryType__) { return (ɵVSStudioSlideInComponent_BaseFactory || (ɵVSStudioSlideInComponent_BaseFactory = i0.ɵɵgetInheritedFactory(VSStudioSlideInComponent)))(__ngFactoryType__ || VSStudioSlideInComponent); }; })();
209
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VSStudioSlideInComponent, selectors: [["vs-studio-slide-in"]], viewQuery: function VSStudioSlideInComponent_Query(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵviewQuery(_c0, 5);
211
+ } if (rf & 2) {
212
+ let _t;
213
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CopilotPanel = _t.first);
214
+ } }, hostAttrs: ["data-testid", "vs-studio-slide-in"], hostVars: 2, hostBindings: function VSStudioSlideInComponent_HostBindings(rf, ctx) { if (rf & 1) {
215
+ i0.ɵɵlistener("keydown.escape", function VSStudioSlideInComponent_keydown_escape_HostBindingHandler($event) { return ctx.OnEscapeKeydown($event); });
216
+ } if (rf & 2) {
217
+ i0.ɵɵclassProp("vs-studio-slide-in--open", ctx.IsOpen);
218
+ } }, inputs: { CurrentUser: "CurrentUser", EnvironmentId: "EnvironmentId", ApplicationId: "ApplicationId", PageSource: "PageSource", PageContext: "PageContext", AppContext: "AppContext", PageTools: "PageTools", FallbackBrandKitId: "FallbackBrandKitId", HeaderTitle: "HeaderTitle" }, outputs: { OpenChange: "OpenChange", ConversationCreated: "ConversationCreated", PendingArtifactConsumed: "PendingArtifactConsumed", BriefStateChange: "BriefStateChange", BriefStartRequested: "BriefStartRequested", NavigationRequest: "NavigationRequest" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["copilotPanel", ""], ["type", "button", "data-testid", "productions-copilot-strip", "title", "Open Video Studio", "aria-label", "Open Video Studio", 1, "vs-copilot-strip"], ["data-testid", "productions-copilot-slidein", "role", "complementary", "aria-label", "Video Studio", 1, "vs-copilot-slidein"], ["type", "button", "data-testid", "productions-copilot-strip", "title", "Open Video Studio", "aria-label", "Open Video Studio", 1, "vs-copilot-strip", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-wand-magic-sparkles"], [1, "vs-copilot-strip__label"], [1, "vs-copilot-slidein__body"], [3, "ConversationCreated", "PendingArtifactConsumed", "BriefStateChange", "BriefStartRequested", "NavigationRequest", "CloseRequested", "Provider", "CurrentUser", "EnvironmentId", "ApplicationId", "ConversationId", "PendingArtifactId", "PendingArtifactVersionNumber", "AppContext", "HeaderTitle", "ShowCloseButton", "BriefSelectedArchetype", "BriefSelectedBrandKit", "BriefSelectedBrandKitExplicitNone", "BriefSelectedFormats", "BriefDurationSeconds", "BriefTopic", "BriefSelectedQueries", "BriefNarrationEnabled", "BriefCaptionsMode"]], template: function VSStudioSlideInComponent_Template(rf, ctx) { if (rf & 1) {
219
+ i0.ɵɵconditionalCreate(0, VSStudioSlideInComponent_Conditional_0_Template, 4, 0, "button", 1);
220
+ i0.ɵɵconditionalCreate(1, VSStudioSlideInComponent_Conditional_1_Template, 4, 19, "aside", 2);
221
+ } if (rf & 2) {
222
+ i0.ɵɵconditional(!ctx.IsOpen ? 0 : -1);
223
+ i0.ɵɵadvance();
224
+ i0.ɵɵconditional(ctx.IsOpen ? 1 : -1);
225
+ } }, dependencies: [CommonModule, VSCopilotPanelComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n align-items: stretch;\n height: 100%;\n min-height: 0;\n flex-shrink: 0;\n}\n\n.vs-copilot-strip[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2);\n width: var(--mj-space-9);\n flex-shrink: 0;\n padding: var(--mj-space-4) var(--mj-space-1);\n border: none;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n}\n\n.vs-copilot-strip[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-strip[_ngcontent-%COMP%]:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n}\n\n.vs-copilot-strip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-strip__label[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n text-orientation: mixed;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.04em;\n}\n\n.vs-copilot-slidein[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: clamp(360px, 30vw, 480px);\n height: 100%;\n min-height: 0;\n flex-shrink: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.vs-copilot-slidein__body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n@media (max-width: 1180px) {\n [_nghost-%COMP%] {\n position: static;\n }\n\n .vs-copilot-slidein[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 20;\n width: clamp(360px, 30vw, 480px);\n max-width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .vs-copilot-strip[_ngcontent-%COMP%] {\n transition: none;\n }\n}"], changeDetection: 0 });
226
+ }
227
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VSStudioSlideInComponent, [{
228
+ type: Component,
229
+ args: [{ standalone: true, selector: 'vs-studio-slide-in', imports: [CommonModule, VSCopilotPanelComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
230
+ 'data-testid': 'vs-studio-slide-in',
231
+ '[class.vs-studio-slide-in--open]': 'IsOpen',
232
+ }, template: "@if (!IsOpen) {\n <button\n type=\"button\"\n class=\"vs-copilot-strip\"\n data-testid=\"productions-copilot-strip\"\n title=\"Open Video Studio\"\n aria-label=\"Open Video Studio\"\n (click)=\"Reopen()\"\n >\n <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"></i>\n <span class=\"vs-copilot-strip__label\">Video Studio</span>\n </button>\n}\n\n@if (IsOpen) {\n <aside\n class=\"vs-copilot-slidein\"\n data-testid=\"productions-copilot-slidein\"\n role=\"complementary\"\n aria-label=\"Video Studio\"\n >\n <div class=\"vs-copilot-slidein__body\">\n <vs-copilot-panel\n #copilotPanel\n [Provider]=\"ProviderToUse\"\n [CurrentUser]=\"EffectiveCurrentUser\"\n [EnvironmentId]=\"EnvironmentId\"\n [ApplicationId]=\"ApplicationId\"\n [ConversationId]=\"ConversationId\"\n [PendingArtifactId]=\"PendingArtifactId\"\n [PendingArtifactVersionNumber]=\"PendingArtifactVersionNumber\"\n [AppContext]=\"EffectiveAppContext\"\n [HeaderTitle]=\"HeaderTitle\"\n [ShowCloseButton]=\"true\"\n [BriefSelectedArchetype]=\"SlideInState.BriefSelectedArchetype\"\n [BriefSelectedBrandKit]=\"SlideInState.BriefSelectedBrandKit\"\n [BriefSelectedBrandKitExplicitNone]=\"SlideInState.BriefSelectedBrandKitExplicitNone\"\n [BriefSelectedFormats]=\"SlideInState.BriefSelectedFormats\"\n [BriefDurationSeconds]=\"SlideInState.BriefDurationSeconds\"\n [BriefTopic]=\"SlideInState.BriefTopic\"\n [BriefSelectedQueries]=\"SlideInState.BriefSelectedQueries\"\n [BriefNarrationEnabled]=\"SlideInState.NarrationEnabled\"\n [BriefCaptionsMode]=\"SlideInState.CaptionsMode\"\n (ConversationCreated)=\"OnConversationCreated($event)\"\n (PendingArtifactConsumed)=\"OnPendingArtifactConsumed()\"\n (BriefStateChange)=\"OnBriefStateChange($event)\"\n (BriefStartRequested)=\"OnBriefStartRequested($event)\"\n (NavigationRequest)=\"OnNavigationRequest($event)\"\n (CloseRequested)=\"Close()\"\n ></vs-copilot-panel>\n </div>\n </aside>\n}\n", styles: [":host {\n display: flex;\n align-items: stretch;\n height: 100%;\n min-height: 0;\n flex-shrink: 0;\n}\n\n.vs-copilot-strip {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2);\n width: var(--mj-space-9);\n flex-shrink: 0;\n padding: var(--mj-space-4) var(--mj-space-1);\n border: none;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: var(--mj-transition-colors);\n}\n\n.vs-copilot-strip:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-strip:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n}\n\n.vs-copilot-strip i {\n font-size: var(--mj-text-sm);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-strip__label {\n writing-mode: vertical-rl;\n text-orientation: mixed;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n letter-spacing: 0.04em;\n}\n\n.vs-copilot-slidein {\n display: flex;\n flex-direction: column;\n width: clamp(360px, 30vw, 480px);\n height: 100%;\n min-height: 0;\n flex-shrink: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.vs-copilot-slidein__body {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n@media (max-width: 1180px) {\n :host {\n position: static;\n }\n\n .vs-copilot-slidein {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 20;\n width: clamp(360px, 30vw, 480px);\n max-width: 100%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .vs-copilot-strip {\n transition: none;\n }\n}\n"] }]
233
+ }], null, { CurrentUser: [{
234
+ type: Input
235
+ }], EnvironmentId: [{
236
+ type: Input
237
+ }], ApplicationId: [{
238
+ type: Input
239
+ }], PageSource: [{
240
+ type: Input
241
+ }], PageContext: [{
242
+ type: Input
243
+ }], AppContext: [{
244
+ type: Input
245
+ }], PageTools: [{
246
+ type: Input
247
+ }], FallbackBrandKitId: [{
248
+ type: Input
249
+ }], HeaderTitle: [{
250
+ type: Input
251
+ }], OpenChange: [{
252
+ type: Output
253
+ }], ConversationCreated: [{
254
+ type: Output
255
+ }], PendingArtifactConsumed: [{
256
+ type: Output
257
+ }], BriefStateChange: [{
258
+ type: Output
259
+ }], BriefStartRequested: [{
260
+ type: Output
261
+ }], NavigationRequest: [{
262
+ type: Output
263
+ }], CopilotPanel: [{
264
+ type: ViewChild,
265
+ args: ['copilotPanel']
266
+ }], OnEscapeKeydown: [{
267
+ type: HostListener,
268
+ args: ['keydown.escape', ['$event']]
269
+ }] }); })();
270
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VSStudioSlideInComponent, { className: "VSStudioSlideInComponent", filePath: "src/VideoStudio/components/vs-studio-slide-in.component.ts", lineNumber: 58 }); })();
271
+ //# sourceMappingURL=vs-studio-slide-in.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vs-studio-slide-in.component.js","sourceRoot":"","sources":["../../../src/VideoStudio/components/vs-studio-slide-in.component.ts","../../../src/VideoStudio/components/vs-studio-slide-in.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { UserInfo } from '@memberjunction/core';\nimport { MJEnvironmentEntityExtended } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { NavigationRequest } from '@memberjunction/ng-artifacts';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { VSStudioSlideInStateService } from '../services/vs-studio-slide-in-state.service';\nimport { StudioBriefClientToolDefinition } from '../video-studio-agent-context';\nimport {\n VSCopilotConversationCreatedEvent,\n VSCopilotPanelComponent,\n} from './vs-copilot-panel.component';\nimport {\n VSProductionBriefStartEvent,\n VSProductionBriefStateSnapshot,\n} from './vs-production-brief.component';\n\n/**\n * Shared right-side Video Studio slide-in host (`vs-studio-slide-in`).\n *\n * Renders the collapsed right-edge reopen strip (`button.vs-copilot-strip`) when closed\n * and the `<aside class=\"vs-copilot-slidein\">` wrapping `<vs-copilot-panel>` when open.\n * Backed by the root-provided {@link VSStudioSlideInStateService} so open/closed state\n * and the active conversation ID survive navigation across Productions, Brand Kits,\n * and Archetypes. Also combines the hosting resource page's `[PageContext]` and `[PageTools]`\n * with the Video Studio brief context and brief form-fill client tools.\n */\n@Component({\n standalone: true,\n selector: 'vs-studio-slide-in',\n imports: [CommonModule, VSCopilotPanelComponent],\n templateUrl: './vs-studio-slide-in.component.html',\n styleUrls: ['./vs-studio-slide-in.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-testid': 'vs-studio-slide-in',\n '[class.vs-studio-slide-in--open]': 'IsOpen',\n },\n})\nexport class VSStudioSlideInComponent\n extends BaseAngularComponent\n implements OnInit, OnChanges, OnDestroy\n{\n private _pageContext: Record<string, unknown> | null = null;\n private _appContext: Record<string, unknown> | null = null;\n private _fallbackBrandKitId: string | null = null;\n\n @Input() CurrentUser: UserInfo | null = null;\n @Input() EnvironmentId: string = MJEnvironmentEntityExtended.DefaultEnvironmentID;\n @Input() ApplicationId = '';\n @Input() PageSource: BaseResourceComponent | null = null;\n @Input()\n set PageContext(value: Record<string, unknown> | null) {\n this._pageContext = value;\n this.rebuildEffectiveAppContext();\n }\n get PageContext(): Record<string, unknown> | null {\n return this._pageContext;\n }\n @Input()\n set AppContext(value: Record<string, unknown> | null) {\n this._appContext = value;\n this.rebuildEffectiveAppContext();\n }\n get AppContext(): Record<string, unknown> | null {\n return this._appContext;\n }\n @Input() PageTools: StudioBriefClientToolDefinition[] = [];\n @Input()\n set FallbackBrandKitId(value: string | null) {\n this._fallbackBrandKitId = value;\n this.rebuildEffectiveAppContext();\n }\n get FallbackBrandKitId(): string | null {\n return this._fallbackBrandKitId;\n }\n @Input() HeaderTitle = 'Video Studio';\n\n @Output() OpenChange = new EventEmitter<boolean>();\n @Output() ConversationCreated = new EventEmitter<VSCopilotConversationCreatedEvent>();\n @Output() PendingArtifactConsumed = new EventEmitter<void>();\n @Output() BriefStateChange = new EventEmitter<VSProductionBriefStateSnapshot>();\n @Output() BriefStartRequested = new EventEmitter<VSProductionBriefStartEvent>();\n @Output() NavigationRequest = new EventEmitter<NavigationRequest>();\n\n @ViewChild('copilotPanel')\n public CopilotPanel?: VSCopilotPanelComponent;\n\n public readonly SlideInState = inject(VSStudioSlideInStateService);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly navigationService = inject(NavigationService, { optional: true });\n private readonly cdr = inject(ChangeDetectorRef);\n private stateSub: Subscription | null = null;\n private lastBriefShowingState: boolean | null = null;\n\n public EffectiveAppContext: Record<string, unknown> =\n this.SlideInState.BuildCombinedAppContext(null, null);\n\n ngOnInit(): void {\n this.lastBriefShowingState = this.SlideInState.IsBriefShowing;\n this.rebuildEffectiveAppContext();\n this.registerCombinedClientTools();\n this.stateSub = this.SlideInState.State$.subscribe((snapshot) => {\n this.rebuildEffectiveAppContext();\n if (this.lastBriefShowingState !== this.SlideInState.IsBriefShowing) {\n this.lastBriefShowingState = this.SlideInState.IsBriefShowing;\n this.registerCombinedClientTools();\n }\n if (\n snapshot.PendingArtifactId &&\n snapshot.ConversationId &&\n this.CopilotPanel &&\n UUIDsEqual(snapshot.ConversationId, this.CopilotPanel.ConversationId)\n ) {\n this.CopilotPanel.OpenIterateArtifact(\n snapshot.PendingArtifactId,\n snapshot.PendingArtifactVersionNumber,\n );\n }\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['PageTools'] && !changes['PageTools'].firstChange) {\n this.registerCombinedClientTools();\n }\n if (\n changes['PageContext'] ||\n changes['AppContext'] ||\n changes['FallbackBrandKitId']\n ) {\n this.rebuildEffectiveAppContext();\n }\n }\n\n ngOnDestroy(): void {\n this.stateSub?.unsubscribe();\n this.stateSub = null;\n }\n\n public get IsOpen(): boolean {\n return this.SlideInState.IsOpen;\n }\n\n public get ConversationId(): string | null {\n return this.SlideInState.ConversationId;\n }\n\n public get PendingArtifactId(): string | null {\n return this.SlideInState.PendingArtifactId;\n }\n\n public get PendingArtifactVersionNumber(): number | null {\n return this.SlideInState.PendingArtifactVersionNumber;\n }\n\n public get EffectiveCurrentUser(): UserInfo | null {\n return this.CurrentUser ?? this.ProviderToUse?.CurrentUser ?? null;\n }\n\n public OpenNewProduction(): void {\n this.SlideInState.OpenNewProduction();\n this.OpenChange.emit(true);\n this.cdr.markForCheck();\n }\n\n public Reopen(): void {\n this.SlideInState.Reopen();\n this.OpenChange.emit(true);\n this.cdr.markForCheck();\n }\n\n public Close(): void {\n this.SlideInState.Close();\n this.OpenChange.emit(false);\n this.cdr.markForCheck();\n }\n\n @HostListener('keydown.escape', ['$event'])\n public OnEscapeKeydown(event: Event): void {\n if (!this.IsOpen || event.defaultPrevented) {\n return;\n }\n const target = event.target instanceof Node ? event.target : null;\n if (!target || !this.elementRef.nativeElement.contains(target)) {\n return;\n }\n if (\n target instanceof Element &&\n target.closest(\n 'mj-image-viewer, .image-viewer-backdrop, mj-dialog, [role=\"dialog\"], .mj-calendar',\n )\n ) {\n return;\n }\n if (\n this.CopilotPanel?.IsImageViewerOpen ||\n this.CopilotPanel?.IsCreatingConversation\n ) {\n return;\n }\n this.Close();\n }\n\n public OnConversationCreated(event: VSCopilotConversationCreatedEvent): void {\n this.SlideInState.SetConversationId(event.conversation.ID);\n this.ConversationCreated.emit(event);\n this.cdr.markForCheck();\n }\n\n public OnPendingArtifactConsumed(): void {\n this.SlideInState.ClearPendingArtifact();\n this.PendingArtifactConsumed.emit();\n this.cdr.markForCheck();\n }\n\n public OnBriefStateChange(snapshot: VSProductionBriefStateSnapshot): void {\n this.SlideInState.ApplyBriefSnapshot(snapshot);\n this.BriefStateChange.emit(snapshot);\n this.cdr.markForCheck();\n }\n\n public OnBriefStartRequested(event: VSProductionBriefStartEvent): void {\n this.BriefStartRequested.emit(event);\n this.cdr.markForCheck();\n }\n\n public OnNavigationRequest(event: NavigationRequest): void {\n this.NavigationRequest.emit(event);\n }\n\n private rebuildEffectiveAppContext(): void {\n this.EffectiveAppContext = this.SlideInState.BuildCombinedAppContext(\n this._pageContext ?? this._appContext,\n this._fallbackBrandKitId,\n );\n }\n\n private registerCombinedClientTools(): void {\n if (!this.navigationService || !this.PageSource) {\n return;\n }\n const briefTools = this.SlideInState.BuildBriefClientTools({\n Provider: this.ProviderToUse,\n GetBriefComponent: () => this.CopilotPanel?.BriefComponent,\n OnBriefMutated: () => {\n this.rebuildEffectiveAppContext();\n this.cdr.markForCheck();\n },\n });\n this.navigationService.SetAgentClientTools(this.PageSource, [\n ...this.PageTools,\n ...briefTools,\n ]);\n }\n}\n","@if (!IsOpen) {\n <button\n type=\"button\"\n class=\"vs-copilot-strip\"\n data-testid=\"productions-copilot-strip\"\n title=\"Open Video Studio\"\n aria-label=\"Open Video Studio\"\n (click)=\"Reopen()\"\n >\n <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"></i>\n <span class=\"vs-copilot-strip__label\">Video Studio</span>\n </button>\n}\n\n@if (IsOpen) {\n <aside\n class=\"vs-copilot-slidein\"\n data-testid=\"productions-copilot-slidein\"\n role=\"complementary\"\n aria-label=\"Video Studio\"\n >\n <div class=\"vs-copilot-slidein__body\">\n <vs-copilot-panel\n #copilotPanel\n [Provider]=\"ProviderToUse\"\n [CurrentUser]=\"EffectiveCurrentUser\"\n [EnvironmentId]=\"EnvironmentId\"\n [ApplicationId]=\"ApplicationId\"\n [ConversationId]=\"ConversationId\"\n [PendingArtifactId]=\"PendingArtifactId\"\n [PendingArtifactVersionNumber]=\"PendingArtifactVersionNumber\"\n [AppContext]=\"EffectiveAppContext\"\n [HeaderTitle]=\"HeaderTitle\"\n [ShowCloseButton]=\"true\"\n [BriefSelectedArchetype]=\"SlideInState.BriefSelectedArchetype\"\n [BriefSelectedBrandKit]=\"SlideInState.BriefSelectedBrandKit\"\n [BriefSelectedBrandKitExplicitNone]=\"SlideInState.BriefSelectedBrandKitExplicitNone\"\n [BriefSelectedFormats]=\"SlideInState.BriefSelectedFormats\"\n [BriefDurationSeconds]=\"SlideInState.BriefDurationSeconds\"\n [BriefTopic]=\"SlideInState.BriefTopic\"\n [BriefSelectedQueries]=\"SlideInState.BriefSelectedQueries\"\n [BriefNarrationEnabled]=\"SlideInState.NarrationEnabled\"\n [BriefCaptionsMode]=\"SlideInState.CaptionsMode\"\n (ConversationCreated)=\"OnConversationCreated($event)\"\n (PendingArtifactConsumed)=\"OnPendingArtifactConsumed()\"\n (BriefStateChange)=\"OnBriefStateChange($event)\"\n (BriefStartRequested)=\"OnBriefStartRequested($event)\"\n (NavigationRequest)=\"OnNavigationRequest($event)\"\n (CloseRequested)=\"Close()\"\n ></vs-copilot-panel>\n </div>\n </aside>\n}\n"]}
@@ -0,0 +1,12 @@
1
+ export * from './video-studio-agent-context';
2
+ export * from './services/vs-studio-slide-in-state.service';
3
+ export * from './components/vs-audio-options.component';
4
+ export * from './components/vs-archetype-editor.component';
5
+ export * from './components/vs-production-brief.component';
6
+ export * from './components/vs-copilot-panel.component';
7
+ export * from './components/vs-studio-slide-in.component';
8
+ export * from './components/vs-setup-health-card.component';
9
+ export * from './resources/video-studio-productions-resource.component';
10
+ export * from './resources/video-studio-brand-kits-resource.component';
11
+ export * from './resources/video-studio-archetypes-resource.component';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/VideoStudio/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,wDAAwD,CAAC;AACvE,cAAc,wDAAwD,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from './video-studio-agent-context';
2
+ export * from './services/vs-studio-slide-in-state.service';
3
+ export * from './components/vs-audio-options.component';
4
+ export * from './components/vs-archetype-editor.component';
5
+ export * from './components/vs-production-brief.component';
6
+ export * from './components/vs-copilot-panel.component';
7
+ export * from './components/vs-studio-slide-in.component';
8
+ export * from './components/vs-setup-health-card.component';
9
+ export * from './resources/video-studio-productions-resource.component';
10
+ export * from './resources/video-studio-brand-kits-resource.component';
11
+ export * from './resources/video-studio-archetypes-resource.component';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VideoStudio/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,wDAAwD,CAAC;AACvE,cAAc,wDAAwD,CAAC","sourcesContent":["export * from './video-studio-agent-context';\nexport * from './services/vs-studio-slide-in-state.service';\nexport * from './components/vs-audio-options.component';\nexport * from './components/vs-archetype-editor.component';\nexport * from './components/vs-production-brief.component';\nexport * from './components/vs-copilot-panel.component';\nexport * from './components/vs-studio-slide-in.component';\nexport * from './components/vs-setup-health-card.component';\nexport * from './resources/video-studio-productions-resource.component';\nexport * from './resources/video-studio-brand-kits-resource.component';\nexport * from './resources/video-studio-archetypes-resource.component';\n\n\n"]}
@@ -0,0 +1,118 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UserInfo } from '@memberjunction/core';
3
+ import { ResourceData } from '@memberjunction/core-entities';
4
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
5
+ import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
6
+ import { ArchetypeEditorMode } from '../components/vs-archetype-editor.component';
7
+ import { ArchetypeCardSnapshot, ArchetypeCategory, ArchetypeCategoryFilter, ArchetypeCategoryGroup, ArchetypeScopeFilter, StudioBriefClientToolDefinition } from '../video-studio-agent-context';
8
+ import * as i0 from "@angular/core";
9
+ export interface ArchetypeBeatBlock {
10
+ Key: string;
11
+ Label: string;
12
+ Purpose: string;
13
+ MinDurationSeconds: number;
14
+ MaxDurationSeconds: number;
15
+ DefaultDurationSeconds?: number;
16
+ ComputedDurationSeconds: number;
17
+ WidthPercent: number;
18
+ Guidance?: string;
19
+ RequiresDataBinding?: boolean;
20
+ }
21
+ export interface ArchetypePacingView {
22
+ AvgSecondsBetweenChanges: number;
23
+ HoldRules: string;
24
+ MinBeatDurationSeconds?: number;
25
+ MaxBeatDurationSeconds?: number;
26
+ }
27
+ export interface ArchetypeViewItem extends ArchetypeCardSnapshot {
28
+ DefaultInteractionMode: string;
29
+ Guidance: string | null;
30
+ BeatTemplateRaw: string;
31
+ PacingRaw: string | null;
32
+ Beats: ArchetypeBeatBlock[];
33
+ Pacing: ArchetypePacingView | null;
34
+ }
35
+ export interface ArchetypeCategoryChipItem {
36
+ Category: ArchetypeCategory;
37
+ Label: string;
38
+ Count: number;
39
+ }
40
+ /**
41
+ * Archetypes resource tab for the Video Studio application.
42
+ *
43
+ * Displays all `MJ: Video Archetypes` from `VideoStudioEngine` in a single
44
+ * grid with `<mj-filter-chip>` filters for `Category` (`Announcement | Briefing |
45
+ * DataStory | Explainer | Product | Social | Tutorial`) and scope (`Shipped` /
46
+ * `Yours`), proportional beat-timeline strips (`arch.BeatTemplateObject`), and an
47
+ * inline slide-out preview showing the full beat template, pacing rules,
48
+ * and narrative guidance.
49
+ *
50
+ * Company archetypes (`CompanyID` non-null) provide an "Edit" button that opens
51
+ * `vs-archetype-editor` plus an "Open record" link to the entity form, while
52
+ * shipped archetypes (`CompanyID IS NULL`) are read-only with a "Make a copy"
53
+ * button that opens `vs-archetype-editor` pre-filled with the shipped row.
54
+ */
55
+ export declare class VideoStudioArchetypesResourceComponent extends BaseResourceComponent implements OnInit {
56
+ IsLoading: boolean;
57
+ LoadError: string | null;
58
+ AllArchetypes: ArchetypeViewItem[];
59
+ FilteredArchetypes: ArchetypeViewItem[];
60
+ CategoryGroups: ArchetypeCategoryGroup<ArchetypeViewItem>[];
61
+ CategoryChipItems: ArchetypeCategoryChipItem[];
62
+ CategoryAllCount: number;
63
+ SelectedArchetype: ArchetypeViewItem | null;
64
+ SearchText: string;
65
+ CategoryFilter: ArchetypeCategoryFilter;
66
+ ScopeFilter: ArchetypeScopeFilter;
67
+ FilterFields: FilterFieldConfig[];
68
+ FilterValues: Record<string, unknown>;
69
+ IsEditorOpen: boolean;
70
+ EditorMode: ArchetypeEditorMode;
71
+ EditorSourceArchetypeId: string | null;
72
+ EditorEditingArchetypeId: string | null;
73
+ PageContext: Record<string, unknown>;
74
+ readonly PageTools: StudioBriefClientToolDefinition[];
75
+ private readonly cdr;
76
+ get CurrentUser(): UserInfo | null;
77
+ get EnvironmentId(): string;
78
+ get ApplicationId(): string;
79
+ ngOnInit(): Promise<void>;
80
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
81
+ GetResourceIconClass(_data: ResourceData): Promise<string>;
82
+ get TotalCount(): number;
83
+ get FilteredCount(): number;
84
+ get ShippedCount(): number;
85
+ get CompanyCount(): number;
86
+ get EditorDialogTitle(): string;
87
+ get ActivePopoverFilterCount(): number;
88
+ Refresh(): Promise<void>;
89
+ LoadArchetypes(forceRefresh?: boolean): Promise<void>;
90
+ OnSearchChange(value: string): void;
91
+ OnFilterValuesChange(values: Record<string, unknown>): void;
92
+ SelectCategoryChip(category: ArchetypeCategoryFilter): void;
93
+ ToggleScopeChip(scope: 'shipped' | 'company'): void;
94
+ ClearAllFilters(): void;
95
+ SelectArchetype(item: ArchetypeViewItem | null): void;
96
+ CloseSlideOut(): void;
97
+ OpenNewArchetypeEditor(): void;
98
+ OpenCopyArchetypeEditor(item: ArchetypeViewItem, event?: Event): void;
99
+ OpenEditArchetypeEditor(item: ArchetypeViewItem, event?: Event): void;
100
+ OpenArchetypeRecord(item: ArchetypeViewItem, event?: Event): void;
101
+ CloseArchetypeEditor(): void;
102
+ OnArchetypeEditorSaved(savedArchetypeId: string): Promise<void>;
103
+ FormatCategoryLabel(category: ArchetypeCategory | string): string;
104
+ FormatTime(seconds: number): string;
105
+ FormatTimeRange(minSeconds: number, maxSeconds: number): string;
106
+ ParseFormats(formatsRaw: string): string[];
107
+ ResetFiltersAndSearch(): void;
108
+ private rebuildCategoryChips;
109
+ private mapArchetypeToCard;
110
+ private currentFilterState;
111
+ private applyFiltersAndSync;
112
+ private buildArchetypesContext;
113
+ private syncAgentContext;
114
+ private buildArchetypesClientTools;
115
+ static ɵfac: i0.ɵɵFactoryDeclaration<VideoStudioArchetypesResourceComponent, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<VideoStudioArchetypesResourceComponent, "mj-video-studio-archetypes-resource", never, {}, {}, never, never, false, never>;
117
+ }
118
+ //# sourceMappingURL=video-studio-archetypes-resource.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-studio-archetypes-resource.component.d.ts","sourceRoot":"","sources":["../../../src/VideoStudio/resources/video-studio-archetypes-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEP,MAAM,eAAe,CAAC;AACvB,OAAO,EAA0B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAGL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAEL,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EAEtB,oBAAoB,EAOpB,+BAA+B,EAChC,MAAM,+BAA+B,CAAC;;AAEvC,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAQa,sCACX,SAAQ,qBACR,YAAW,MAAM;IAEV,SAAS,UAAS;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,aAAa,EAAE,iBAAiB,EAAE,CAAM;IACxC,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IAC7C,cAAc,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CAAM;IACjE,iBAAiB,EAAE,yBAAyB,EAAE,CAAM;IACpD,gBAAgB,SAAK;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAEnD,UAAU,SAAM;IAChB,cAAc,EAAE,uBAAuB,CAAS;IAChD,WAAW,EAAE,oBAAoB,CAAS;IAE1C,YAAY,EAAE,iBAAiB,EAAE,CAuBtC;IAEK,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG1C;IAGK,YAAY,UAAS;IACrB,UAAU,EAAE,mBAAmB,CAAU;IACzC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9C,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAiC;IAC5E,SAAgB,SAAS,EAAE,+BAA+B,EAAE,CAAqC;IAEjG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEjD,IAAW,WAAW,IAAI,QAAQ,GAAG,IAAI,CAExC;IAED,IAAW,aAAa,IAAI,MAAM,CAKjC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvE,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,iBAAiB,IAAI,MAAM,CAgBrC;IAED,IAAW,wBAAwB,IAAI,MAAM,CAS5C;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,cAAc,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAa3D,kBAAkB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAW3D,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAUnD,eAAe,IAAI,IAAI;IAUvB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAMrD,aAAa,IAAI,IAAI;IAIrB,sBAAsB,IAAI,IAAI;IAQ9B,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IASrE,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAarE,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAYjE,oBAAoB,IAAI,IAAI;IAOtB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM;IAOjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAInC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAI/D,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAI1C,qBAAqB,IAAI,IAAI;IAKpC,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,0BAA0B;yCA3ZvB,sCAAsC;2CAAtC,sCAAsC;CAyiBlD"}