@memberjunction/ng-dashboards 5.22.0 → 5.24.0

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 (245) hide show
  1. package/README.md +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +947 -64
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7645 -430
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +285 -6
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2454 -277
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +20 -2
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +419 -232
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  27. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  28. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  29. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  30. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  31. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  32. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  33. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  34. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  35. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  36. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  37. package/dist/Actions/components/actions-list-view.component.js +82 -96
  38. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  39. package/dist/Actions/components/actions-overview.component.js +130 -134
  40. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  41. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  42. package/dist/Actions/components/categories-list-view.component.js +40 -46
  43. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  44. package/dist/Actions/components/code-management.component.js +2 -2
  45. package/dist/Actions/components/code-management.component.js.map +1 -1
  46. package/dist/Actions/components/entity-integration.component.js +2 -2
  47. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  49. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  50. package/dist/Actions/components/executions-list-view.component.js +2 -2
  51. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  53. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  54. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  55. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  56. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  57. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  58. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  59. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  61. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  63. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  65. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  66. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  67. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  68. package/dist/Actions/components/security-permissions.component.js +2 -2
  69. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  70. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  71. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  72. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  73. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  74. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  75. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  76. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  77. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  78. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  79. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  81. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  83. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  84. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  88. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  96. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  98. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  100. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  102. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  104. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  105. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  106. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  107. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  108. package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -17
  109. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  110. package/dist/Home/home-dashboard.component.js +4 -4
  111. package/dist/Home/home-dashboard.component.js.map +1 -1
  112. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  113. package/dist/Integration/components/activity/activity.component.js +1 -0
  114. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  115. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  116. package/dist/Integration/components/connections/connections.component.js +5 -4
  117. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  118. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  119. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +247 -259
  120. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  121. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  122. package/dist/Integration/components/overview/overview.component.js +1 -0
  123. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  124. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  125. package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
  126. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  127. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  128. package/dist/Integration/components/schedules/schedules.component.js +1 -0
  129. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  130. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  131. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  132. package/dist/Integration/integration.module.d.ts +6 -10
  133. package/dist/Integration/integration.module.d.ts.map +1 -1
  134. package/dist/Integration/integration.module.js +12 -20
  135. package/dist/Integration/integration.module.js.map +1 -1
  136. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +411 -0
  137. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
  138. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4266 -0
  139. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
  140. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +140 -0
  141. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  142. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +780 -0
  143. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  144. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +8 -2
  145. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  146. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +246 -195
  147. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  148. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +75 -0
  149. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
  150. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +601 -0
  151. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
  152. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +93 -12
  153. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -1
  154. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +637 -107
  155. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -1
  156. package/dist/KnowledgeHub/index.d.ts +3 -0
  157. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  158. package/dist/KnowledgeHub/index.js +3 -0
  159. package/dist/KnowledgeHub/index.js.map +1 -1
  160. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  161. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  162. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  163. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  164. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  165. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  166. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  167. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  168. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  169. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  170. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  171. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  172. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  173. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  174. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  175. package/dist/MCP/mcp-dashboard.component.js +2 -2
  176. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  177. package/dist/MCP/mcp.module.d.ts +6 -9
  178. package/dist/MCP/mcp.module.d.ts.map +1 -1
  179. package/dist/MCP/mcp.module.js +20 -22
  180. package/dist/MCP/mcp.module.js.map +1 -1
  181. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  182. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  183. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  184. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  185. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  186. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  187. package/dist/Testing/testing-dashboard.component.js +9 -10
  188. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  189. package/dist/__tests__/analytics-resource.test.d.ts +2 -0
  190. package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
  191. package/dist/__tests__/analytics-resource.test.js +181 -0
  192. package/dist/__tests__/analytics-resource.test.js.map +1 -0
  193. package/dist/__tests__/scheduling.test.d.ts +2 -0
  194. package/dist/__tests__/scheduling.test.d.ts.map +1 -0
  195. package/dist/__tests__/scheduling.test.js +205 -0
  196. package/dist/__tests__/scheduling.test.js.map +1 -0
  197. package/dist/actions-dashboards.module.d.ts +8 -13
  198. package/dist/actions-dashboards.module.d.ts.map +1 -1
  199. package/dist/actions-dashboards.module.js +6 -27
  200. package/dist/actions-dashboards.module.js.map +1 -1
  201. package/dist/ai-dashboards.module.d.ts +20 -20
  202. package/dist/ai-dashboards.module.d.ts.map +1 -1
  203. package/dist/ai-dashboards.module.js +43 -44
  204. package/dist/ai-dashboards.module.js.map +1 -1
  205. package/dist/communication-dashboards.module.d.ts +4 -8
  206. package/dist/communication-dashboards.module.d.ts.map +1 -1
  207. package/dist/communication-dashboards.module.js +0 -19
  208. package/dist/communication-dashboards.module.js.map +1 -1
  209. package/dist/component-studio-dashboards.module.d.ts +7 -11
  210. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  211. package/dist/component-studio-dashboards.module.js +22 -34
  212. package/dist/component-studio-dashboards.module.js.map +1 -1
  213. package/dist/core-dashboards.module.d.ts +12 -18
  214. package/dist/core-dashboards.module.d.ts.map +1 -1
  215. package/dist/core-dashboards.module.js +15 -31
  216. package/dist/core-dashboards.module.js.map +1 -1
  217. package/dist/credentials-dashboards.module.d.ts +5 -8
  218. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  219. package/dist/credentials-dashboards.module.js +3 -19
  220. package/dist/credentials-dashboards.module.js.map +1 -1
  221. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  222. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  223. package/dist/data-explorer-dashboards.module.js +0 -27
  224. package/dist/data-explorer-dashboards.module.js.map +1 -1
  225. package/dist/lists-dashboards.module.d.ts +5 -8
  226. package/dist/lists-dashboards.module.d.ts.map +1 -1
  227. package/dist/lists-dashboards.module.js +3 -19
  228. package/dist/lists-dashboards.module.js.map +1 -1
  229. package/dist/public-api.d.ts +2 -0
  230. package/dist/public-api.d.ts.map +1 -1
  231. package/dist/public-api.js +2 -0
  232. package/dist/public-api.js.map +1 -1
  233. package/dist/scheduling-dashboards.module.d.ts +6 -10
  234. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  235. package/dist/scheduling-dashboards.module.js +3 -23
  236. package/dist/scheduling-dashboards.module.js.map +1 -1
  237. package/dist/shared/entity-field-display.d.ts +44 -0
  238. package/dist/shared/entity-field-display.d.ts.map +1 -0
  239. package/dist/shared/entity-field-display.js +118 -0
  240. package/dist/shared/entity-field-display.js.map +1 -0
  241. package/dist/testing-dashboards.module.d.ts +7 -13
  242. package/dist/testing-dashboards.module.d.ts.map +1 -1
  243. package/dist/testing-dashboards.module.js +0 -27
  244. package/dist/testing-dashboards.module.js.map +1 -1
  245. package/package.json +48 -55
@@ -1,24 +1,22 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, Input, Output, EventEmitter, inject } from '@angular/core';
2
2
  import { RunView, Metadata } from '@memberjunction/core';
3
3
  import { UUIDsEqual } from '@memberjunction/global';
4
4
  import { Subject, debounceTime, distinctUntilChanged } from 'rxjs';
5
5
  import { takeUntil } from 'rxjs/operators';
6
+ import { MJNotificationService } from '@memberjunction/ng-notifications';
6
7
  import * as i0 from "@angular/core";
7
- import * as i1 from "@progress/kendo-angular-dialog";
8
- import * as i2 from "@memberjunction/ng-notifications";
9
- import * as i3 from "@angular/forms";
10
- import * as i4 from "@progress/kendo-angular-buttons";
11
- import * as i5 from "@progress/kendo-angular-inputs";
12
- import * as i6 from "@memberjunction/ng-shared-generic";
13
- import * as i7 from "@angular/common";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@memberjunction/ng-shared-generic";
10
+ import * as i3 from "@memberjunction/ng-ui-components";
11
+ import * as i4 from "@angular/common";
14
12
  const _forTrack0 = ($index, $item) => $item.ID;
15
- function ArtifactSelectionDialogComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
13
+ function ArtifactSelectionDialogComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
16
14
  i0.ɵɵelementStart(0, "span");
17
15
  i0.ɵɵtext(1, "Filters");
18
16
  i0.ɵɵelementEnd();
19
17
  } }
20
- function ArtifactSelectionDialogComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "span", 8);
18
+ function ArtifactSelectionDialogComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "span", 6);
22
20
  i0.ɵɵtext(1);
23
21
  i0.ɵɵelementEnd();
24
22
  } if (rf & 2) {
@@ -26,39 +24,39 @@ function ArtifactSelectionDialogComponent_Conditional_11_Template(rf, ctx) { if
26
24
  i0.ɵɵadvance();
27
25
  i0.ɵɵtextInterpolate(ctx_r0.getActiveFilterCount());
28
26
  } }
29
- function ArtifactSelectionDialogComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
27
+ function ArtifactSelectionDialogComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
30
28
  const _r2 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 27)(2, "label");
29
+ i0.ɵɵelementStart(0, "div", 7)(1, "div", 26)(2, "label");
32
30
  i0.ɵɵtext(3, "Search");
33
31
  i0.ɵɵelementEnd();
34
- i0.ɵɵelementStart(4, "input", 28);
35
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_12_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.searchTerm, $event) || (ctx_r0.searchTerm = $event); return i0.ɵɵresetView($event); });
36
- i0.ɵɵlistener("input", function ArtifactSelectionDialogComponent_Conditional_12_Template_input_input_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSearchInput()); });
32
+ i0.ɵɵelementStart(4, "input", 27);
33
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_8_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.searchTerm, $event) || (ctx_r0.searchTerm = $event); return i0.ɵɵresetView($event); });
34
+ i0.ɵɵlistener("input", function ArtifactSelectionDialogComponent_Conditional_8_Template_input_input_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSearchInput()); });
37
35
  i0.ɵɵelementEnd()();
38
- i0.ɵɵelementStart(5, "div", 27)(6, "label");
36
+ i0.ɵɵelementStart(5, "div", 26)(6, "label");
39
37
  i0.ɵɵtext(7, "Artifact Type");
40
38
  i0.ɵɵelementEnd();
41
- i0.ɵɵelementStart(8, "select", 29);
42
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_12_Template_select_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.selectedArtifactType, $event) || (ctx_r0.selectedArtifactType = $event); return i0.ɵɵresetView($event); });
43
- i0.ɵɵlistener("change", function ArtifactSelectionDialogComponent_Conditional_12_Template_select_change_8_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onArtifactTypeChange()); });
44
- i0.ɵɵelementStart(9, "option", 30);
39
+ i0.ɵɵelementStart(8, "select", 28);
40
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_8_Template_select_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.selectedArtifactType, $event) || (ctx_r0.selectedArtifactType = $event); return i0.ɵɵresetView($event); });
41
+ i0.ɵɵlistener("change", function ArtifactSelectionDialogComponent_Conditional_8_Template_select_change_8_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onArtifactTypeChange()); });
42
+ i0.ɵɵelementStart(9, "option", 29);
45
43
  i0.ɵɵtext(10, "All Types");
46
44
  i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(11, "option", 31);
45
+ i0.ɵɵelementStart(11, "option", 30);
48
46
  i0.ɵɵtext(12, "Component");
49
47
  i0.ɵɵelementEnd();
50
- i0.ɵɵelementStart(13, "option", 32);
48
+ i0.ɵɵelementStart(13, "option", 31);
51
49
  i0.ɵɵtext(14, "Report");
52
50
  i0.ɵɵelementEnd();
53
- i0.ɵɵelementStart(15, "option", 33);
51
+ i0.ɵɵelementStart(15, "option", 32);
54
52
  i0.ɵɵtext(16, "Dashboard");
55
53
  i0.ɵɵelementEnd()()();
56
- i0.ɵɵelementStart(17, "div", 27)(18, "label");
54
+ i0.ɵɵelementStart(17, "div", 26)(18, "label");
57
55
  i0.ɵɵtext(19, "Filter by User");
58
56
  i0.ɵɵelementEnd();
59
- i0.ɵɵelementStart(20, "input", 34);
60
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_12_Template_input_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.userEmail, $event) || (ctx_r0.userEmail = $event); return i0.ɵɵresetView($event); });
61
- i0.ɵɵlistener("input", function ArtifactSelectionDialogComponent_Conditional_12_Template_input_input_20_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.filterArtifacts()); });
57
+ i0.ɵɵelementStart(20, "input", 33);
58
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_8_Template_input_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.userEmail, $event) || (ctx_r0.userEmail = $event); return i0.ɵɵresetView($event); });
59
+ i0.ɵɵlistener("input", function ArtifactSelectionDialogComponent_Conditional_8_Template_input_input_20_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.filterArtifacts()); });
62
60
  i0.ɵɵelementEnd()()();
63
61
  } if (rf & 2) {
64
62
  const ctx_r0 = i0.ɵɵnextContext();
@@ -69,20 +67,20 @@ function ArtifactSelectionDialogComponent_Conditional_12_Template(rf, ctx) { if
69
67
  i0.ɵɵadvance(12);
70
68
  i0.ɵɵtwoWayProperty("ngModel", ctx_r0.userEmail);
71
69
  } }
72
- function ArtifactSelectionDialogComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵelementStart(0, "div", 17);
74
- i0.ɵɵelement(1, "mj-loading", 35);
70
+ function ArtifactSelectionDialogComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "div", 15);
72
+ i0.ɵɵelement(1, "mj-loading", 34);
75
73
  i0.ɵɵelementEnd();
76
74
  } }
77
- function ArtifactSelectionDialogComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div", 18);
79
- i0.ɵɵelement(1, "i", 36);
75
+ function ArtifactSelectionDialogComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵelementStart(0, "div", 16);
77
+ i0.ɵɵelement(1, "i", 35);
80
78
  i0.ɵɵelementStart(2, "p");
81
79
  i0.ɵɵtext(3, "No artifacts found");
82
80
  i0.ɵɵelementEnd()();
83
81
  } }
84
- function ArtifactSelectionDialogComponent_Conditional_26_For_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "div", 43);
82
+ function ArtifactSelectionDialogComponent_Conditional_22_For_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵelementStart(0, "div", 42);
86
84
  i0.ɵɵtext(1);
87
85
  i0.ɵɵelementEnd();
88
86
  } if (rf & 2) {
@@ -90,18 +88,18 @@ function ArtifactSelectionDialogComponent_Conditional_26_For_1_Conditional_7_Tem
90
88
  i0.ɵɵadvance();
91
89
  i0.ɵɵtextInterpolate1(" ", artifact_r4.Description, " ");
92
90
  } }
93
- function ArtifactSelectionDialogComponent_Conditional_26_For_1_Template(rf, ctx) { if (rf & 1) {
91
+ function ArtifactSelectionDialogComponent_Conditional_22_For_1_Template(rf, ctx) { if (rf & 1) {
94
92
  const _r3 = i0.ɵɵgetCurrentView();
95
- i0.ɵɵelementStart(0, "div", 38);
96
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Conditional_26_For_1_Template_div_click_0_listener() { const artifact_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectArtifact(artifact_r4)); });
97
- i0.ɵɵelementStart(1, "div", 39)(2, "div", 40)(3, "div", 41);
98
- i0.ɵɵelement(4, "i", 42);
93
+ i0.ɵɵelementStart(0, "div", 37);
94
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Conditional_22_For_1_Template_div_click_0_listener() { const artifact_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectArtifact(artifact_r4)); });
95
+ i0.ɵɵelementStart(1, "div", 38)(2, "div", 39)(3, "div", 40);
96
+ i0.ɵɵelement(4, "i", 41);
99
97
  i0.ɵɵelementStart(5, "span");
100
98
  i0.ɵɵtext(6);
101
99
  i0.ɵɵelementEnd()();
102
- i0.ɵɵconditionalCreate(7, ArtifactSelectionDialogComponent_Conditional_26_For_1_Conditional_7_Template, 2, 1, "div", 43);
100
+ i0.ɵɵconditionalCreate(7, ArtifactSelectionDialogComponent_Conditional_22_For_1_Conditional_7_Template, 2, 1, "div", 42);
103
101
  i0.ɵɵelementEnd();
104
- i0.ɵɵelementStart(8, "div", 44)(9, "div");
102
+ i0.ɵɵelementStart(8, "div", 43)(9, "div");
105
103
  i0.ɵɵtext(10);
106
104
  i0.ɵɵelementEnd();
107
105
  i0.ɵɵelementStart(11, "div");
@@ -121,36 +119,37 @@ function ArtifactSelectionDialogComponent_Conditional_26_For_1_Template(rf, ctx)
121
119
  i0.ɵɵadvance(2);
122
120
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(13, 6, artifact_r4.__mj_UpdatedAt, "short"));
123
121
  } }
124
- function ArtifactSelectionDialogComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵrepeaterCreate(0, ArtifactSelectionDialogComponent_Conditional_26_For_1_Template, 14, 9, "div", 37, _forTrack0);
122
+ function ArtifactSelectionDialogComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵrepeaterCreate(0, ArtifactSelectionDialogComponent_Conditional_22_For_1_Template, 14, 9, "div", 36, _forTrack0);
126
124
  } if (rf & 2) {
127
125
  const ctx_r0 = i0.ɵɵnextContext();
128
126
  i0.ɵɵrepeater(ctx_r0.artifacts);
129
127
  } }
130
- function ArtifactSelectionDialogComponent_Conditional_33_Template(rf, ctx) { if (rf & 1) {
128
+ function ArtifactSelectionDialogComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
131
129
  const _r5 = i0.ɵɵgetCurrentView();
132
- i0.ɵɵelementStart(0, "div", 23)(1, "kendo-textbox", 45);
133
- i0.ɵɵtwoWayListener("valueChange", function ArtifactSelectionDialogComponent_Conditional_33_Template_kendo_textbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.newArtifactName, $event) || (ctx_r0.newArtifactName = $event); return i0.ɵɵresetView($event); });
130
+ i0.ɵɵelementStart(0, "div", 21)(1, "input", 44);
131
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_29_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.newArtifactName, $event) || (ctx_r0.newArtifactName = $event); return i0.ɵɵresetView($event); });
134
132
  i0.ɵɵelementEnd();
135
- i0.ɵɵelementStart(2, "kendo-textarea", 46);
136
- i0.ɵɵtwoWayListener("valueChange", function ArtifactSelectionDialogComponent_Conditional_33_Template_kendo_textarea_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.newArtifactDescription, $event) || (ctx_r0.newArtifactDescription = $event); return i0.ɵɵresetView($event); });
133
+ i0.ɵɵelementStart(2, "textarea", 45);
134
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_29_Template_textarea_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.newArtifactDescription, $event) || (ctx_r0.newArtifactDescription = $event); return i0.ɵɵresetView($event); });
135
+ i0.ɵɵtext(3, " ");
137
136
  i0.ɵɵelementEnd()();
138
137
  } if (rf & 2) {
139
138
  const ctx_r0 = i0.ɵɵnextContext();
140
139
  i0.ɵɵadvance();
141
- i0.ɵɵtwoWayProperty("value", ctx_r0.newArtifactName);
140
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.newArtifactName);
142
141
  i0.ɵɵadvance();
143
- i0.ɵɵtwoWayProperty("value", ctx_r0.newArtifactDescription);
142
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.newArtifactDescription);
144
143
  } }
145
- function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_For_4_Template(rf, ctx) { if (rf & 1) {
144
+ function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_For_4_Template(rf, ctx) { if (rf & 1) {
146
145
  const _r7 = i0.ɵɵgetCurrentView();
147
- i0.ɵɵelementStart(0, "label", 57)(1, "input", 58);
148
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_For_4_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r0.selectedVersion, $event) || (ctx_r0.selectedVersion = $event); return i0.ɵɵresetView($event); });
146
+ i0.ɵɵelementStart(0, "label", 56)(1, "input", 57);
147
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_For_4_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r0.selectedVersion, $event) || (ctx_r0.selectedVersion = $event); return i0.ɵɵresetView($event); });
149
148
  i0.ɵɵelementEnd();
150
- i0.ɵɵelementStart(2, "div", 59)(3, "div", 60);
149
+ i0.ɵɵelementStart(2, "div", 58)(3, "div", 59);
151
150
  i0.ɵɵtext(4);
152
151
  i0.ɵɵelementEnd();
153
- i0.ɵɵelementStart(5, "div", 61);
152
+ i0.ɵɵelementStart(5, "div", 60);
154
153
  i0.ɵɵtext(6);
155
154
  i0.ɵɵpipe(7, "date");
156
155
  i0.ɵɵelementEnd()()();
@@ -166,9 +165,9 @@ function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Condition
166
165
  i0.ɵɵadvance(2);
167
166
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 6, version_r8.__mj_UpdatedAt, "short"));
168
167
  } }
169
- function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
170
- i0.ɵɵelementStart(0, "div", 56);
171
- i0.ɵɵelement(1, "i", 62);
168
+ function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
169
+ i0.ɵɵelementStart(0, "div", 55);
170
+ i0.ɵɵelement(1, "i", 61);
172
171
  i0.ɵɵelementStart(2, "span");
173
172
  i0.ɵɵtext(3);
174
173
  i0.ɵɵelementEnd()();
@@ -177,13 +176,13 @@ function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Condition
177
176
  i0.ɵɵadvance(3);
178
177
  i0.ɵɵtextInterpolate1("Warning: This will overwrite version ", ctx_r0.selectedVersion.VersionNumber);
179
178
  } }
180
- function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
181
- i0.ɵɵelementStart(0, "div", 54)(1, "label");
179
+ function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵelementStart(0, "div", 53)(1, "label");
182
181
  i0.ɵɵtext(2, "Select Version");
183
182
  i0.ɵɵelementEnd();
184
- i0.ɵɵrepeaterCreate(3, ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_For_4_Template, 8, 9, "label", 55, _forTrack0);
183
+ i0.ɵɵrepeaterCreate(3, ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_For_4_Template, 8, 9, "label", 54, _forTrack0);
185
184
  i0.ɵɵelementEnd();
186
- i0.ɵɵconditionalCreate(5, ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_Conditional_5_Template, 4, 1, "div", 56);
185
+ i0.ɵɵconditionalCreate(5, ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_Conditional_5_Template, 4, 1, "div", 55);
187
186
  } if (rf & 2) {
188
187
  const ctx_r0 = i0.ɵɵnextContext(3);
189
188
  i0.ɵɵadvance(3);
@@ -191,25 +190,25 @@ function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Condition
191
190
  i0.ɵɵadvance(2);
192
191
  i0.ɵɵconditional(ctx_r0.selectedVersion ? 5 : -1);
193
192
  } }
194
- function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template(rf, ctx) { if (rf & 1) {
193
+ function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Template(rf, ctx) { if (rf & 1) {
195
194
  const _r6 = i0.ɵɵgetCurrentView();
196
- i0.ɵɵelementStart(0, "div", 48)(1, "div", 50)(2, "label");
195
+ i0.ɵɵelementStart(0, "div", 47)(1, "div", 49)(2, "label");
197
196
  i0.ɵɵtext(3, "Action");
198
197
  i0.ɵɵelementEnd();
199
- i0.ɵɵelementStart(4, "label", 51)(5, "input", 52);
200
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.versionAction, $event) || (ctx_r0.versionAction = $event); return i0.ɵɵresetView($event); });
201
- i0.ɵɵlistener("change", function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template_input_change_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectedVersion = null); });
198
+ i0.ɵɵelementStart(4, "label", 50)(5, "input", 51);
199
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.versionAction, $event) || (ctx_r0.versionAction = $event); return i0.ɵɵresetView($event); });
200
+ i0.ɵɵlistener("change", function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Template_input_change_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectedVersion = null); });
202
201
  i0.ɵɵelementEnd();
203
202
  i0.ɵɵelementStart(6, "span");
204
203
  i0.ɵɵtext(7);
205
204
  i0.ɵɵelementEnd()();
206
- i0.ɵɵelementStart(8, "label", 51)(9, "input", 53);
207
- i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.versionAction, $event) || (ctx_r0.versionAction = $event); return i0.ɵɵresetView($event); });
205
+ i0.ɵɵelementStart(8, "label", 50)(9, "input", 52);
206
+ i0.ɵɵtwoWayListener("ngModelChange", function ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.versionAction, $event) || (ctx_r0.versionAction = $event); return i0.ɵɵresetView($event); });
208
207
  i0.ɵɵelementEnd();
209
208
  i0.ɵɵelementStart(10, "span");
210
209
  i0.ɵɵtext(11, "Update Existing Version");
211
210
  i0.ɵɵelementEnd()()();
212
- i0.ɵɵconditionalCreate(12, ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Conditional_12_Template, 6, 1);
211
+ i0.ɵɵconditionalCreate(12, ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Conditional_12_Template, 6, 1);
213
212
  i0.ɵɵelementEnd();
214
213
  } if (rf & 2) {
215
214
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -222,9 +221,9 @@ function ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template(
222
221
  i0.ɵɵadvance(3);
223
222
  i0.ɵɵconditional(ctx_r0.versionAction === "update" ? 12 : -1);
224
223
  } }
225
- function ArtifactSelectionDialogComponent_Conditional_34_Conditional_6_Template(rf, ctx) { if (rf & 1) {
226
- i0.ɵɵelementStart(0, "div", 49);
227
- i0.ɵɵelement(1, "i", 63);
224
+ function ArtifactSelectionDialogComponent_Conditional_30_Conditional_6_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelementStart(0, "div", 48);
226
+ i0.ɵɵelement(1, "i", 62);
228
227
  i0.ɵɵelementStart(2, "p");
229
228
  i0.ɵɵtext(3, "No versions available for this artifact.");
230
229
  i0.ɵɵelementEnd();
@@ -232,12 +231,12 @@ function ArtifactSelectionDialogComponent_Conditional_34_Conditional_6_Template(
232
231
  i0.ɵɵtext(5, "A new version will be created.");
233
232
  i0.ɵɵelementEnd()();
234
233
  } }
235
- function ArtifactSelectionDialogComponent_Conditional_34_Template(rf, ctx) { if (rf & 1) {
236
- i0.ɵɵelementStart(0, "div", 24)(1, "div", 5)(2, "h4");
237
- i0.ɵɵelement(3, "i", 47);
234
+ function ArtifactSelectionDialogComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
235
+ i0.ɵɵelementStart(0, "div", 22)(1, "div", 3)(2, "h4");
236
+ i0.ɵɵelement(3, "i", 46);
238
237
  i0.ɵɵtext(4, " Version");
239
238
  i0.ɵɵelementEnd()();
240
- i0.ɵɵconditionalCreate(5, ArtifactSelectionDialogComponent_Conditional_34_Conditional_5_Template, 13, 4, "div", 48)(6, ArtifactSelectionDialogComponent_Conditional_34_Conditional_6_Template, 6, 0, "div", 49);
239
+ i0.ɵɵconditionalCreate(5, ArtifactSelectionDialogComponent_Conditional_30_Conditional_5_Template, 13, 4, "div", 47)(6, ArtifactSelectionDialogComponent_Conditional_30_Conditional_6_Template, 6, 0, "div", 48);
241
240
  i0.ɵɵelementEnd();
242
241
  } if (rf & 2) {
243
242
  const ctx_r0 = i0.ɵɵnextContext();
@@ -245,8 +244,8 @@ function ArtifactSelectionDialogComponent_Conditional_34_Template(rf, ctx) { if
245
244
  i0.ɵɵconditional(ctx_r0.artifactVersions.length > 0 ? 5 : 6);
246
245
  } }
247
246
  export class ArtifactSelectionDialogComponent {
248
- dialog;
249
- notificationService;
247
+ Visible = false;
248
+ Close = new EventEmitter();
250
249
  // Data
251
250
  artifacts = [];
252
251
  artifactVersions = [];
@@ -273,10 +272,7 @@ export class ArtifactSelectionDialogComponent {
273
272
  currentUser = null;
274
273
  destroy$ = new Subject();
275
274
  searchSubject = new Subject();
276
- constructor(dialog, notificationService) {
277
- this.dialog = dialog;
278
- this.notificationService = notificationService;
279
- }
275
+ notificationService = inject(MJNotificationService);
280
276
  async ngOnInit() {
281
277
  // Setup search debouncing
282
278
  this.searchSubject.pipe(debounceTime(300), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(() => {
@@ -445,7 +441,7 @@ export class ArtifactSelectionDialogComponent {
445
441
  return `Save as Version ${this.getNextVersionNumber()}`;
446
442
  }
447
443
  cancel() {
448
- this.dialog.close(undefined);
444
+ this.Close.emit(undefined);
449
445
  }
450
446
  async save() {
451
447
  if (!this.canSave())
@@ -458,7 +454,7 @@ export class ArtifactSelectionDialogComponent {
458
454
  artifact: newArtifact,
459
455
  action: 'new-version'
460
456
  };
461
- this.dialog.close(result);
457
+ this.Close.emit(result);
462
458
  }
463
459
  return;
464
460
  }
@@ -475,7 +471,7 @@ export class ArtifactSelectionDialogComponent {
475
471
  if (!confirm)
476
472
  return;
477
473
  }
478
- this.dialog.close(result);
474
+ this.Close.emit(result);
479
475
  }
480
476
  }
481
477
  async createNewArtifact() {
@@ -525,95 +521,93 @@ export class ArtifactSelectionDialogComponent {
525
521
  IsVersionSelected(version) {
526
522
  return UUIDsEqual(this.selectedVersion?.ID, version.ID);
527
523
  }
528
- static ɵfac = function ArtifactSelectionDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ArtifactSelectionDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogRef), i0.ɵɵdirectiveInject(i2.MJNotificationService)); };
529
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactSelectionDialogComponent, selectors: [["app-artifact-selection-dialog"]], standalone: false, decls: 41, vars: 23, consts: [[3, "close"], [2, "font-size", "18px"], [1, "fa-solid", "fa-save"], [1, "artifact-selection-content"], [1, "filter-panel"], [1, "panel-header"], ["kendoButton", "", 3, "click", "fillMode", "themeColor"], [1, "fa-solid", "fa-filter"], [1, "filter-count"], [1, "filter-content"], [1, "main-content"], [1, "paging-controls"], ["kendoButton", "", 3, "click", "disabled", "themeColor"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], [1, "artifacts-list"], [1, "loading-state"], [1, "empty-state"], [1, "create-section"], [1, "divider"], ["kendoButton", "", 1, "create-btn", 3, "click", "themeColor"], [1, "fa-solid", "fa-plus"], [1, "new-artifact-form"], [1, "version-panel"], ["kendoButton", "", 3, "click", "themeColor", "disabled"], ["kendoButton", "", 3, "click"], [1, "filter-group"], ["type", "text", "placeholder", "Name or description...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], [1, "filter-select", 3, "ngModelChange", "change", "ngModel"], ["value", ""], ["value", "Component"], ["value", "Report"], ["value", "Dashboard"], ["type", "text", "placeholder", "Enter user email...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], ["text", "Loading artifacts...", "size", "small"], [1, "fa-solid", "fa-inbox"], [1, "artifact-item", 3, "selected"], [1, "artifact-item", 3, "click"], [1, "artifact-content"], [1, "artifact-main"], [1, "artifact-name"], [1, "fa-solid", "fa-file-code"], [1, "artifact-description"], [1, "artifact-meta"], ["placeholder", "Artifact name...", 3, "valueChange", "value"], ["placeholder", "Description (optional)...", 3, "valueChange", "value"], [1, "fa-solid", "fa-code-branch"], [1, "version-content"], [1, "info-state"], [1, "version-actions"], [1, "radio-label"], ["type", "radio", "name", "versionAction", "value", "new", 3, "ngModelChange", "change", "ngModel"], ["type", "radio", "name", "versionAction", "value", "update", 3, "ngModelChange", "ngModel"], [1, "version-selection"], [1, "version-item", 3, "selected"], [1, "warning"], [1, "version-item"], ["type", "radio", "name", "selectedVersion", 3, "ngModelChange", "value", "ngModel"], [1, "version-info"], [1, "version-number"], [1, "version-date"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-info-circle"]], template: function ArtifactSelectionDialogComponent_Template(rf, ctx) { if (rf & 1) {
530
- i0.ɵɵelementStart(0, "div")(1, "kendo-dialog-titlebar", 0);
531
- i0.ɵɵlistener("close", function ArtifactSelectionDialogComponent_Template_kendo_dialog_titlebar_close_1_listener() { return ctx.cancel(); });
532
- i0.ɵɵelementStart(2, "div", 1);
533
- i0.ɵɵelement(3, "i", 2);
534
- i0.ɵɵtext(4, " Save Component to Artifact ");
524
+ static ɵfac = function ArtifactSelectionDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ArtifactSelectionDialogComponent)(); };
525
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactSelectionDialogComponent, selectors: [["app-artifact-selection-dialog"]], inputs: { Visible: "Visible" }, outputs: { Close: "Close" }, standalone: false, decls: 37, vars: 21, consts: [["Title", "Save Component to Artifact", 3, "Close", "Visible", "Width", "MinWidth"], [1, "artifact-selection-content"], [1, "filter-panel"], [1, "panel-header"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "filter-count"], [1, "filter-content"], [1, "main-content"], [1, "paging-controls"], ["mjButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], [1, "artifacts-list"], [1, "loading-state"], [1, "empty-state"], [1, "create-section"], [1, "divider"], ["mjButton", "", "variant", "primary", 1, "create-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "new-artifact-form"], [1, "version-panel"], ["mjButton", "", 3, "click", "variant", "disabled"], [1, "fa-solid", "fa-save"], ["mjButton", "", 3, "click"], [1, "filter-group"], ["type", "text", "placeholder", "Name or description...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], [1, "filter-select", 3, "ngModelChange", "change", "ngModel"], ["value", ""], ["value", "Component"], ["value", "Report"], ["value", "Dashboard"], ["type", "text", "placeholder", "Enter user email...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], ["text", "Loading artifacts...", "size", "small"], [1, "fa-solid", "fa-inbox"], [1, "artifact-item", 3, "selected"], [1, "artifact-item", 3, "click"], [1, "artifact-content"], [1, "artifact-main"], [1, "artifact-name"], [1, "fa-solid", "fa-file-code"], [1, "artifact-description"], [1, "artifact-meta"], ["placeholder", "Artifact name...", 1, "mj-input", 3, "ngModelChange", "ngModel"], ["placeholder", "Description (optional)...", 1, "mj-textarea", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-code-branch"], [1, "version-content"], [1, "info-state"], [1, "version-actions"], [1, "radio-label"], ["type", "radio", "name", "versionAction", "value", "new", 3, "ngModelChange", "change", "ngModel"], ["type", "radio", "name", "versionAction", "value", "update", 3, "ngModelChange", "ngModel"], [1, "version-selection"], [1, "version-item", 3, "selected"], [1, "warning"], [1, "version-item"], ["type", "radio", "name", "selectedVersion", 3, "ngModelChange", "value", "ngModel"], [1, "version-info"], [1, "version-number"], [1, "version-date"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-info-circle"]], template: function ArtifactSelectionDialogComponent_Template(rf, ctx) { if (rf & 1) {
526
+ i0.ɵɵelementStart(0, "mj-dialog", 0);
527
+ i0.ɵɵlistener("Close", function ArtifactSelectionDialogComponent_Template_mj_dialog_Close_0_listener() { return ctx.cancel(); });
528
+ i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "div", 3);
529
+ i0.ɵɵconditionalCreate(4, ArtifactSelectionDialogComponent_Conditional_4_Template, 2, 0, "span");
530
+ i0.ɵɵelementStart(5, "button", 4);
531
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_5_listener() { return ctx.toggleFilterPanel(); });
532
+ i0.ɵɵelement(6, "i", 5);
533
+ i0.ɵɵconditionalCreate(7, ArtifactSelectionDialogComponent_Conditional_7_Template, 2, 1, "span", 6);
535
534
  i0.ɵɵelementEnd()();
536
- i0.ɵɵelementStart(5, "div", 3)(6, "div", 4)(7, "div", 5);
537
- i0.ɵɵconditionalCreate(8, ArtifactSelectionDialogComponent_Conditional_8_Template, 2, 0, "span");
538
- i0.ɵɵelementStart(9, "button", 6);
539
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_9_listener() { return ctx.toggleFilterPanel(); });
540
- i0.ɵɵelement(10, "i", 7);
541
- i0.ɵɵconditionalCreate(11, ArtifactSelectionDialogComponent_Conditional_11_Template, 2, 1, "span", 8);
542
- i0.ɵɵelementEnd()();
543
- i0.ɵɵconditionalCreate(12, ArtifactSelectionDialogComponent_Conditional_12_Template, 21, 3, "div", 9);
535
+ i0.ɵɵconditionalCreate(8, ArtifactSelectionDialogComponent_Conditional_8_Template, 21, 3, "div", 7);
544
536
  i0.ɵɵelementEnd();
545
- i0.ɵɵelementStart(13, "div", 10)(14, "div", 11)(15, "button", 12);
546
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_15_listener() { return ctx.previousPage(); });
547
- i0.ɵɵelement(16, "i", 13);
548
- i0.ɵɵtext(17, " Previous ");
537
+ i0.ɵɵelementStart(9, "div", 8)(10, "div", 9)(11, "button", 10);
538
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_11_listener() { return ctx.previousPage(); });
539
+ i0.ɵɵelement(12, "i", 11);
540
+ i0.ɵɵtext(13, " Previous ");
549
541
  i0.ɵɵelementEnd();
550
- i0.ɵɵelementStart(18, "span", 14);
551
- i0.ɵɵtext(19);
542
+ i0.ɵɵelementStart(14, "span", 12);
543
+ i0.ɵɵtext(15);
552
544
  i0.ɵɵelementEnd();
553
- i0.ɵɵelementStart(20, "button", 12);
554
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_20_listener() { return ctx.nextPage(); });
555
- i0.ɵɵtext(21, " Next ");
556
- i0.ɵɵelement(22, "i", 15);
545
+ i0.ɵɵelementStart(16, "button", 10);
546
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_16_listener() { return ctx.nextPage(); });
547
+ i0.ɵɵtext(17, " Next ");
548
+ i0.ɵɵelement(18, "i", 13);
557
549
  i0.ɵɵelementEnd()();
558
- i0.ɵɵelementStart(23, "div", 16);
559
- i0.ɵɵconditionalCreate(24, ArtifactSelectionDialogComponent_Conditional_24_Template, 2, 0, "div", 17)(25, ArtifactSelectionDialogComponent_Conditional_25_Template, 4, 0, "div", 18)(26, ArtifactSelectionDialogComponent_Conditional_26_Template, 2, 0);
550
+ i0.ɵɵelementStart(19, "div", 14);
551
+ i0.ɵɵconditionalCreate(20, ArtifactSelectionDialogComponent_Conditional_20_Template, 2, 0, "div", 15)(21, ArtifactSelectionDialogComponent_Conditional_21_Template, 4, 0, "div", 16)(22, ArtifactSelectionDialogComponent_Conditional_22_Template, 2, 0);
560
552
  i0.ɵɵelementEnd();
561
- i0.ɵɵelementStart(27, "div", 19)(28, "div", 20);
562
- i0.ɵɵtext(29, "OR CREATE NEW ARTIFACT");
553
+ i0.ɵɵelementStart(23, "div", 17)(24, "div", 18);
554
+ i0.ɵɵtext(25, "OR CREATE NEW ARTIFACT");
563
555
  i0.ɵɵelementEnd();
564
- i0.ɵɵelementStart(30, "button", 21);
565
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_30_listener() { return ctx.selectCreateNew(); });
566
- i0.ɵɵelement(31, "i", 22);
567
- i0.ɵɵtext(32, " Create New Artifact ");
556
+ i0.ɵɵelementStart(26, "button", 19);
557
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_26_listener() { return ctx.selectCreateNew(); });
558
+ i0.ɵɵelement(27, "i", 20);
559
+ i0.ɵɵtext(28, " Create New Artifact ");
568
560
  i0.ɵɵelementEnd();
569
- i0.ɵɵconditionalCreate(33, ArtifactSelectionDialogComponent_Conditional_33_Template, 3, 2, "div", 23);
561
+ i0.ɵɵconditionalCreate(29, ArtifactSelectionDialogComponent_Conditional_29_Template, 4, 2, "div", 21);
570
562
  i0.ɵɵelementEnd()();
571
- i0.ɵɵconditionalCreate(34, ArtifactSelectionDialogComponent_Conditional_34_Template, 7, 1, "div", 24);
563
+ i0.ɵɵconditionalCreate(30, ArtifactSelectionDialogComponent_Conditional_30_Template, 7, 1, "div", 22);
572
564
  i0.ɵɵelementEnd();
573
- i0.ɵɵelementStart(35, "kendo-dialog-actions")(36, "button", 25);
574
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_36_listener() { return ctx.save(); });
575
- i0.ɵɵelement(37, "i", 2);
576
- i0.ɵɵtext(38);
565
+ i0.ɵɵelementStart(31, "mj-dialog-actions")(32, "button", 23);
566
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_32_listener() { return ctx.save(); });
567
+ i0.ɵɵelement(33, "i", 24);
568
+ i0.ɵɵtext(34);
577
569
  i0.ɵɵelementEnd();
578
- i0.ɵɵelementStart(39, "button", 26);
579
- i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_39_listener() { return ctx.cancel(); });
580
- i0.ɵɵtext(40, "Cancel");
570
+ i0.ɵɵelementStart(35, "button", 25);
571
+ i0.ɵɵlistener("click", function ArtifactSelectionDialogComponent_Template_button_click_35_listener() { return ctx.cancel(); });
572
+ i0.ɵɵtext(36, "Cancel");
581
573
  i0.ɵɵelementEnd()()();
582
574
  } if (rf & 2) {
583
- i0.ɵɵadvance(6);
575
+ i0.ɵɵproperty("Visible", true)("Width", 1200)("MinWidth", 600);
576
+ i0.ɵɵadvance(2);
584
577
  i0.ɵɵstyleProp("width", ctx.isFilterPanelCollapsed ? "40px" : "280px");
585
578
  i0.ɵɵadvance(2);
586
- i0.ɵɵconditional(!ctx.isFilterPanelCollapsed ? 8 : -1);
579
+ i0.ɵɵconditional(!ctx.isFilterPanelCollapsed ? 4 : -1);
587
580
  i0.ɵɵadvance();
588
581
  i0.ɵɵclassProp("filter-active", ctx.getActiveFilterCount() > 0);
589
- i0.ɵɵproperty("fillMode", "flat")("themeColor", ctx.getActiveFilterCount() > 0 ? "primary" : "base");
590
582
  i0.ɵɵadvance(2);
591
- i0.ɵɵconditional(ctx.isFilterPanelCollapsed && ctx.getActiveFilterCount() > 0 ? 11 : -1);
583
+ i0.ɵɵconditional(ctx.isFilterPanelCollapsed && ctx.getActiveFilterCount() > 0 ? 7 : -1);
592
584
  i0.ɵɵadvance();
593
- i0.ɵɵconditional(!ctx.isFilterPanelCollapsed ? 12 : -1);
585
+ i0.ɵɵconditional(!ctx.isFilterPanelCollapsed ? 8 : -1);
594
586
  i0.ɵɵadvance(3);
595
- i0.ɵɵproperty("disabled", !ctx.canGoPrevious())("themeColor", "base");
587
+ i0.ɵɵproperty("disabled", !ctx.canGoPrevious());
596
588
  i0.ɵɵadvance(4);
597
589
  i0.ɵɵtextInterpolate3(" Page ", ctx.currentPage + 1, " of ", ctx.getTotalPages(), " (", ctx.totalArtifacts, " total items) ");
598
590
  i0.ɵɵadvance();
599
- i0.ɵɵproperty("disabled", !ctx.canGoNext())("themeColor", "base");
591
+ i0.ɵɵproperty("disabled", !ctx.canGoNext());
600
592
  i0.ɵɵadvance(4);
601
- i0.ɵɵconditional(ctx.isLoading ? 24 : ctx.artifacts.length === 0 ? 25 : 26);
602
- i0.ɵɵadvance(6);
603
- i0.ɵɵproperty("themeColor", "primary");
604
- i0.ɵɵadvance(3);
605
- i0.ɵɵconditional(ctx.showNewArtifactForm ? 33 : -1);
593
+ i0.ɵɵconditional(ctx.isLoading ? 20 : ctx.artifacts.length === 0 ? 21 : 22);
594
+ i0.ɵɵadvance(9);
595
+ i0.ɵɵconditional(ctx.showNewArtifactForm ? 29 : -1);
606
596
  i0.ɵɵadvance();
607
- i0.ɵɵconditional(ctx.selectedArtifact ? 34 : -1);
597
+ i0.ɵɵconditional(ctx.selectedArtifact ? 30 : -1);
608
598
  i0.ɵɵadvance(2);
609
- i0.ɵɵproperty("themeColor", ctx.versionAction === "update" && ctx.selectedVersion ? "warning" : "primary")("disabled", !ctx.canSave());
599
+ i0.ɵɵproperty("variant", ctx.versionAction === "update" && ctx.selectedVersion ? "warning" : "primary")("disabled", !ctx.canSave());
610
600
  i0.ɵɵadvance(2);
611
601
  i0.ɵɵtextInterpolate1(" ", ctx.getSaveButtonText(), " ");
612
- } }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.SelectControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.NgModel, i4.ButtonComponent, i5.TextBoxComponent, i5.TextAreaComponent, i1.DialogTitleBarComponent, i1.DialogActionsComponent, i6.LoadingComponent, i7.DatePipe], styles: ["\n\n.artifact-selection-content[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: row;\n}\n\n\n\n.filter-panel[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--mj-border-default);\n transition: width 0.3s ease;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: bold;\n color: var(--mj-text-secondary);\n}\n\n.filter-content[_ngcontent-%COMP%] {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.filter-group[_ngcontent-%COMP%] {\n margin-bottom: 15px;\n}\n\n.filter-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.filter-input[_ngcontent-%COMP%], \n.filter-select[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 4px;\n font-size: 14px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.filter-input[_ngcontent-%COMP%]:focus, \n.filter-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 2;\n min-width: 0; \n\n}\n\n.paging-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 15px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.page-info[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n}\n\n.artifacts-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 0 15px;\n}\n\n.loading-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 40px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 15px;\n color: var(--mj-text-muted);\n}\n\n.create-section[_ngcontent-%COMP%] {\n padding: 15px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.create-btn[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] {\n margin-top: 15px;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] kendo-textbox[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 10px;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] kendo-textarea[_ngcontent-%COMP%] {\n width: 100%;\n height: 60px;\n}\n\n.divider[_ngcontent-%COMP%] {\n text-align: center;\n padding: 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: 12px;\n margin-bottom: 10px;\n}\n\n.artifact-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin: 10px 0;\n padding: 15px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.artifact-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.artifact-item.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.artifact-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.artifact-main[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.artifact-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n}\n\n.artifact-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.artifact-name[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.artifact-description[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n margin-bottom: 8px;\n}\n\n.artifact-meta[_ngcontent-%COMP%] {\n text-align: right;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n\n\n.version-panel[_ngcontent-%COMP%] {\n width: 320px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.version-content[_ngcontent-%COMP%] {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.version-actions[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.version-actions[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:first-child {\n display: block;\n margin-bottom: 10px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.radio-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n cursor: pointer;\n}\n\n.radio-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n\n.version-selection[_ngcontent-%COMP%] {\n margin-bottom: 15px;\n}\n\n.version-selection[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]:first-child {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.version-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n padding: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.version-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.version-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n\n.version-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.version-number[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.version-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 4px;\n padding: 10px;\n}\n\n.warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n margin-right: 5px;\n}\n\n.warning[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 14px;\n}\n\n.info-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n padding: 15px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.info-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.info-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 5px 0;\n}\n\n.info-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child {\n font-size: 14px;\n}\n\n\n\n.filter-count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n border-radius: 50%;\n min-width: 18px;\n height: 18px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n margin-left: 4px;\n}\n\n.filter-active[_ngcontent-%COMP%] .filter-count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n}"] });
602
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.RadioControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.LoadingComponent, i3.MJButtonDirective, i3.MJDialogComponent, i3.MJDialogActionsComponent, i4.DatePipe], styles: ["\n\n.artifact-selection-content[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: row;\n}\n\n\n\n.filter-panel[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--mj-border-default);\n transition: width 0.3s ease;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: bold;\n color: var(--mj-text-secondary);\n}\n\n.filter-content[_ngcontent-%COMP%] {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.filter-group[_ngcontent-%COMP%] {\n margin-bottom: 15px;\n}\n\n.filter-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.filter-input[_ngcontent-%COMP%], \n.filter-select[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 4px;\n font-size: 14px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.filter-input[_ngcontent-%COMP%]:focus, \n.filter-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 2;\n min-width: 0; \n\n}\n\n.paging-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 15px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.page-info[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n}\n\n.artifacts-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 0 15px;\n}\n\n.loading-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 40px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 15px;\n color: var(--mj-text-muted);\n}\n\n.create-section[_ngcontent-%COMP%] {\n padding: 15px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.create-btn[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] {\n margin-top: 15px;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 10px;\n}\n\n.new-artifact-form[_ngcontent-%COMP%] .mj-textarea[_ngcontent-%COMP%] {\n width: 100%;\n height: 60px;\n}\n\n.divider[_ngcontent-%COMP%] {\n text-align: center;\n padding: 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: 12px;\n margin-bottom: 10px;\n}\n\n.artifact-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin: 10px 0;\n padding: 15px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.artifact-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.artifact-item.selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.artifact-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.artifact-main[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.artifact-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n}\n\n.artifact-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.artifact-name[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.artifact-description[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n margin-bottom: 8px;\n}\n\n.artifact-meta[_ngcontent-%COMP%] {\n text-align: right;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n\n\n.version-panel[_ngcontent-%COMP%] {\n width: 320px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.version-content[_ngcontent-%COMP%] {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.version-actions[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.version-actions[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:first-child {\n display: block;\n margin-bottom: 10px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.radio-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n cursor: pointer;\n}\n\n.radio-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n\n.version-selection[_ngcontent-%COMP%] {\n margin-bottom: 15px;\n}\n\n.version-selection[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]:first-child {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.version-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n padding: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.version-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.version-item[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-right: 8px;\n}\n\n.version-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.version-number[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.version-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.warning[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 4px;\n padding: 10px;\n}\n\n.warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n margin-right: 5px;\n}\n\n.warning[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 14px;\n}\n\n.info-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n padding: 15px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.info-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.info-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 5px 0;\n}\n\n.info-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child {\n font-size: 14px;\n}\n\n\n\n.filter-count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n border-radius: 50%;\n min-width: 18px;\n height: 18px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n margin-left: 4px;\n}\n\n.filter-active[_ngcontent-%COMP%] .filter-count[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n}"] });
613
603
  }
614
604
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactSelectionDialogComponent, [{
615
605
  type: Component,
616
- args: [{ standalone: false, selector: 'app-artifact-selection-dialog', template: "<div>\n <kendo-dialog-titlebar (close)=\"cancel()\">\n <div style=\"font-size: 18px;\">\n <i class=\"fa-solid fa-save\"></i> Save Component to Artifact\n </div>\n </kendo-dialog-titlebar>\n\n <div class=\"artifact-selection-content\">\n <!-- Left Filter Panel -->\n <div class=\"filter-panel\" [style.width]=\"isFilterPanelCollapsed ? '40px' : '280px'\">\n <!-- Panel Header -->\n <div class=\"panel-header\">\n @if (!isFilterPanelCollapsed) {\n <span>Filters</span>\n }\n <button kendoButton (click)=\"toggleFilterPanel()\" \n [fillMode]=\"'flat'\"\n [class.filter-active]=\"getActiveFilterCount() > 0\"\n [themeColor]=\"getActiveFilterCount() > 0 ? 'primary' : 'base'\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (isFilterPanelCollapsed && getActiveFilterCount() > 0) {\n <span class=\"filter-count\">{{ getActiveFilterCount() }}</span>\n }\n </button>\n </div>\n\n @if (!isFilterPanelCollapsed) {\n <div class=\"filter-content\">\n <!-- Search -->\n <div class=\"filter-group\">\n <label>Search</label>\n <input type=\"text\" \n [(ngModel)]=\"searchTerm\"\n (input)=\"onSearchInput()\"\n placeholder=\"Name or description...\"\n class=\"filter-input\">\n </div>\n\n <!-- Artifact Type -->\n <div class=\"filter-group\">\n <label>Artifact Type</label>\n <select [(ngModel)]=\"selectedArtifactType\" \n (change)=\"onArtifactTypeChange()\"\n class=\"filter-select\">\n <option value=\"\">All Types</option>\n <option value=\"Component\">Component</option>\n <option value=\"Report\">Report</option>\n <option value=\"Dashboard\">Dashboard</option>\n </select>\n </div>\n \n <!-- User Email -->\n <div class=\"filter-group\">\n <label>Filter by User</label>\n <input type=\"text\" \n [(ngModel)]=\"userEmail\"\n (input)=\"filterArtifacts()\"\n placeholder=\"Enter user email...\"\n class=\"filter-input\">\n </div>\n </div>\n }\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-content\">\n <!-- Paging Controls -->\n <div class=\"paging-controls\">\n <button kendoButton \n (click)=\"previousPage()\" \n [disabled]=\"!canGoPrevious()\"\n [themeColor]=\"'base'\">\n <i class=\"fa-solid fa-chevron-left\"></i> Previous\n </button>\n <span class=\"page-info\">\n Page {{ currentPage + 1 }} of {{ getTotalPages() }}\n ({{ totalArtifacts }} total items)\n </span>\n <button kendoButton \n (click)=\"nextPage()\" \n [disabled]=\"!canGoNext()\"\n [themeColor]=\"'base'\">\n Next <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n\n <!-- Existing Artifacts -->\n <div class=\"artifacts-list\">\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading artifacts...\" size=\"small\"></mj-loading>\n </div>\n } \n @else if (artifacts.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No artifacts found</p>\n </div>\n } \n @else {\n @for (artifact of artifacts; track artifact.ID) {\n <div class=\"artifact-item\" \n [class.selected]=\"IsArtifactSelected(artifact)\"\n (click)=\"selectArtifact(artifact)\">\n <div class=\"artifact-content\">\n <div class=\"artifact-main\">\n <div class=\"artifact-name\">\n <i class=\"fa-solid fa-file-code\"></i>\n <span>{{ artifact.Name }}</span>\n </div>\n @if (artifact.Description) {\n <div class=\"artifact-description\">\n {{ artifact.Description }}\n </div>\n }\n </div>\n <div class=\"artifact-meta\">\n <div>{{ artifact.Type }}</div>\n <div>{{ artifact.__mj_UpdatedAt | date:'short' }}</div>\n </div>\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Create New Artifact Section (at bottom) -->\n <div class=\"create-section\">\n <div class=\"divider\">OR CREATE NEW ARTIFACT</div>\n \n <button kendoButton \n (click)=\"selectCreateNew()\"\n [themeColor]=\"'primary'\"\n class=\"create-btn\">\n <i class=\"fa-solid fa-plus\"></i> Create New Artifact\n </button>\n \n @if (showNewArtifactForm) {\n <div class=\"new-artifact-form\">\n <kendo-textbox \n [(value)]=\"newArtifactName\"\n placeholder=\"Artifact name...\">\n </kendo-textbox>\n <kendo-textarea \n [(value)]=\"newArtifactDescription\"\n placeholder=\"Description (optional)...\">\n </kendo-textarea>\n </div>\n }\n </div>\n </div>\n\n <!-- Right Version Panel (only show when artifact selected) -->\n @if (selectedArtifact) {\n <div class=\"version-panel\">\n <div class=\"panel-header\">\n <h4><i class=\"fa-solid fa-code-branch\"></i> Version</h4>\n </div>\n \n @if (artifactVersions.length > 0) {\n <div class=\"version-content\">\n <div class=\"version-actions\">\n <label>Action</label>\n <label class=\"radio-label\">\n <input type=\"radio\" \n name=\"versionAction\" \n value=\"new\"\n [(ngModel)]=\"versionAction\"\n (change)=\"selectedVersion = null\">\n <span>Create New Version (v{{ getNextVersionNumber() }})</span>\n </label>\n \n <label class=\"radio-label\">\n <input type=\"radio\" \n name=\"versionAction\" \n value=\"update\"\n [(ngModel)]=\"versionAction\">\n <span>Update Existing Version</span>\n </label>\n </div>\n \n @if (versionAction === 'update') {\n <div class=\"version-selection\">\n <label>Select Version</label>\n @for (version of artifactVersions; track version.ID) {\n <label class=\"version-item\" \n [class.selected]=\"IsVersionSelected(version)\">\n <input type=\"radio\"\n name=\"selectedVersion\"\n [value]=\"version\"\n [(ngModel)]=\"selectedVersion\">\n <div class=\"version-info\">\n <div class=\"version-number\">Version {{ version.VersionNumber }}</div>\n <div class=\"version-date\">{{ version.__mj_UpdatedAt | date:'short' }}</div>\n </div>\n </label>\n }\n </div>\n \n @if (selectedVersion) {\n <div class=\"warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>Warning: This will overwrite version {{ selectedVersion.VersionNumber }}</span>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"info-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <p>No versions available for this artifact.</p>\n <p>A new version will be created.</p>\n </div>\n }\n </div>\n }\n </div>\n\n <kendo-dialog-actions>\n <button kendoButton \n [themeColor]=\"versionAction === 'update' && selectedVersion ? 'warning' : 'primary'\" \n (click)=\"save()\"\n [disabled]=\"!canSave()\">\n <i class=\"fa-solid fa-save\"></i> \n {{ getSaveButtonText() }}\n </button>\n <button kendoButton (click)=\"cancel()\">Cancel</button>\n </kendo-dialog-actions>\n</div>\n", styles: ["/* Main container */\n.artifact-selection-content {\n height: 100%;\n display: flex;\n flex-direction: row;\n}\n\n/* Filter Panel */\n.filter-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--mj-border-default);\n transition: width 0.3s ease;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: bold;\n color: var(--mj-text-secondary);\n}\n\n.filter-content {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.filter-group {\n margin-bottom: 15px;\n}\n\n.filter-group label {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.filter-input,\n.filter-select {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 4px;\n font-size: 14px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.filter-input:focus,\n.filter-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n/* Main Content Panel */\n.main-content {\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 2;\n min-width: 0; /* Prevents flex item from growing beyond container */\n}\n\n.paging-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 15px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.page-info {\n color: var(--mj-text-secondary);\n font-size: 14px;\n}\n\n.artifacts-list {\n flex: 1;\n overflow-y: auto;\n padding: 0 15px;\n}\n\n.loading-state,\n.empty-state {\n text-align: center;\n padding: 40px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 15px;\n color: var(--mj-text-muted);\n}\n\n.create-section {\n padding: 15px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.create-btn {\n width: 100%;\n}\n\n.new-artifact-form {\n margin-top: 15px;\n}\n\n.new-artifact-form kendo-textbox {\n width: 100%;\n margin-bottom: 10px;\n}\n\n.new-artifact-form kendo-textarea {\n width: 100%;\n height: 60px;\n}\n\n.divider {\n text-align: center;\n padding: 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: 12px;\n margin-bottom: 10px;\n}\n\n.artifact-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin: 10px 0;\n padding: 15px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.artifact-item:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.artifact-item.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.artifact-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.artifact-main {\n flex: 1;\n}\n\n.artifact-name {\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n}\n\n.artifact-name i {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.artifact-name span {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.artifact-description {\n color: var(--mj-text-secondary);\n font-size: 14px;\n margin-bottom: 8px;\n}\n\n.artifact-meta {\n text-align: right;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n/* Version Panel */\n.version-panel {\n width: 320px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.version-content {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.version-actions {\n margin-bottom: 20px;\n}\n\n.version-actions label:first-child {\n display: block;\n margin-bottom: 10px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.radio-label {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n cursor: pointer;\n}\n\n.radio-label input {\n margin-right: 8px;\n}\n\n.version-selection {\n margin-bottom: 15px;\n}\n\n.version-selection > label:first-child {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.version-item {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n padding: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.version-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.version-item input {\n margin-right: 8px;\n}\n\n.version-info {\n flex: 1;\n}\n\n.version-number {\n font-weight: 500;\n}\n\n.version-date {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 4px;\n padding: 10px;\n}\n\n.warning i {\n color: var(--mj-status-warning);\n margin-right: 5px;\n}\n\n.warning span {\n color: var(--mj-status-warning);\n font-size: 14px;\n}\n\n.info-state,\n.empty-state {\n padding: 15px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.info-state i,\n.empty-state i {\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.info-state p,\n.empty-state p {\n margin: 5px 0;\n}\n\n.info-state p:last-child {\n font-size: 14px;\n}\n\n/* Filter button styling */\n.filter-count {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n border-radius: 50%;\n min-width: 18px;\n height: 18px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n margin-left: 4px;\n}\n\n.filter-active .filter-count {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n}\n"] }]
617
- }], () => [{ type: i1.DialogRef }, { type: i2.MJNotificationService }], null); })();
618
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactSelectionDialogComponent, { className: "ArtifactSelectionDialogComponent", filePath: "src/ComponentStudio/components/artifact-selection-dialog.component.ts", lineNumber: 22 }); })();
606
+ args: [{ standalone: false, selector: 'app-artifact-selection-dialog', template: "<mj-dialog [Visible]=\"true\" Title=\"Save Component to Artifact\" (Close)=\"cancel()\" [Width]=\"1200\" [MinWidth]=\"600\">\n <div class=\"artifact-selection-content\">\n <!-- Left Filter Panel -->\n <div class=\"filter-panel\" [style.width]=\"isFilterPanelCollapsed ? '40px' : '280px'\">\n <!-- Panel Header -->\n <div class=\"panel-header\">\n @if (!isFilterPanelCollapsed) {\n <span>Filters</span>\n }\n <button mjButton (click)=\"toggleFilterPanel()\"\n variant=\"flat\"\n [class.filter-active]=\"getActiveFilterCount() > 0\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (isFilterPanelCollapsed && getActiveFilterCount() > 0) {\n <span class=\"filter-count\">{{ getActiveFilterCount() }}</span>\n }\n </button>\n </div>\n\n @if (!isFilterPanelCollapsed) {\n <div class=\"filter-content\">\n <!-- Search -->\n <div class=\"filter-group\">\n <label>Search</label>\n <input type=\"text\" \n [(ngModel)]=\"searchTerm\"\n (input)=\"onSearchInput()\"\n placeholder=\"Name or description...\"\n class=\"filter-input\">\n </div>\n\n <!-- Artifact Type -->\n <div class=\"filter-group\">\n <label>Artifact Type</label>\n <select [(ngModel)]=\"selectedArtifactType\" \n (change)=\"onArtifactTypeChange()\"\n class=\"filter-select\">\n <option value=\"\">All Types</option>\n <option value=\"Component\">Component</option>\n <option value=\"Report\">Report</option>\n <option value=\"Dashboard\">Dashboard</option>\n </select>\n </div>\n \n <!-- User Email -->\n <div class=\"filter-group\">\n <label>Filter by User</label>\n <input type=\"text\" \n [(ngModel)]=\"userEmail\"\n (input)=\"filterArtifacts()\"\n placeholder=\"Enter user email...\"\n class=\"filter-input\">\n </div>\n </div>\n }\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-content\">\n <!-- Paging Controls -->\n <div class=\"paging-controls\">\n <button mjButton\n (click)=\"previousPage()\"\n [disabled]=\"!canGoPrevious()\">\n <i class=\"fa-solid fa-chevron-left\"></i> Previous\n </button>\n <span class=\"page-info\">\n Page {{ currentPage + 1 }} of {{ getTotalPages() }}\n ({{ totalArtifacts }} total items)\n </span>\n <button mjButton\n (click)=\"nextPage()\"\n [disabled]=\"!canGoNext()\">\n Next <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n\n <!-- Existing Artifacts -->\n <div class=\"artifacts-list\">\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading artifacts...\" size=\"small\"></mj-loading>\n </div>\n } \n @else if (artifacts.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No artifacts found</p>\n </div>\n } \n @else {\n @for (artifact of artifacts; track artifact.ID) {\n <div class=\"artifact-item\" \n [class.selected]=\"IsArtifactSelected(artifact)\"\n (click)=\"selectArtifact(artifact)\">\n <div class=\"artifact-content\">\n <div class=\"artifact-main\">\n <div class=\"artifact-name\">\n <i class=\"fa-solid fa-file-code\"></i>\n <span>{{ artifact.Name }}</span>\n </div>\n @if (artifact.Description) {\n <div class=\"artifact-description\">\n {{ artifact.Description }}\n </div>\n }\n </div>\n <div class=\"artifact-meta\">\n <div>{{ artifact.Type }}</div>\n <div>{{ artifact.__mj_UpdatedAt | date:'short' }}</div>\n </div>\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Create New Artifact Section (at bottom) -->\n <div class=\"create-section\">\n <div class=\"divider\">OR CREATE NEW ARTIFACT</div>\n \n <button mjButton\n (click)=\"selectCreateNew()\"\n variant=\"primary\"\n class=\"create-btn\">\n <i class=\"fa-solid fa-plus\"></i> Create New Artifact\n </button>\n \n @if (showNewArtifactForm) {\n <div class=\"new-artifact-form\">\n <input class=\"mj-input\"\n [(ngModel)]=\"newArtifactName\"\n placeholder=\"Artifact name...\">\n <textarea class=\"mj-textarea\"\n [(ngModel)]=\"newArtifactDescription\"\n placeholder=\"Description (optional)...\">\n </textarea>\n </div>\n }\n </div>\n </div>\n\n <!-- Right Version Panel (only show when artifact selected) -->\n @if (selectedArtifact) {\n <div class=\"version-panel\">\n <div class=\"panel-header\">\n <h4><i class=\"fa-solid fa-code-branch\"></i> Version</h4>\n </div>\n \n @if (artifactVersions.length > 0) {\n <div class=\"version-content\">\n <div class=\"version-actions\">\n <label>Action</label>\n <label class=\"radio-label\">\n <input type=\"radio\" \n name=\"versionAction\" \n value=\"new\"\n [(ngModel)]=\"versionAction\"\n (change)=\"selectedVersion = null\">\n <span>Create New Version (v{{ getNextVersionNumber() }})</span>\n </label>\n \n <label class=\"radio-label\">\n <input type=\"radio\" \n name=\"versionAction\" \n value=\"update\"\n [(ngModel)]=\"versionAction\">\n <span>Update Existing Version</span>\n </label>\n </div>\n \n @if (versionAction === 'update') {\n <div class=\"version-selection\">\n <label>Select Version</label>\n @for (version of artifactVersions; track version.ID) {\n <label class=\"version-item\" \n [class.selected]=\"IsVersionSelected(version)\">\n <input type=\"radio\"\n name=\"selectedVersion\"\n [value]=\"version\"\n [(ngModel)]=\"selectedVersion\">\n <div class=\"version-info\">\n <div class=\"version-number\">Version {{ version.VersionNumber }}</div>\n <div class=\"version-date\">{{ version.__mj_UpdatedAt | date:'short' }}</div>\n </div>\n </label>\n }\n </div>\n \n @if (selectedVersion) {\n <div class=\"warning\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>Warning: This will overwrite version {{ selectedVersion.VersionNumber }}</span>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"info-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <p>No versions available for this artifact.</p>\n <p>A new version will be created.</p>\n </div>\n }\n </div>\n }\n </div>\n\n <mj-dialog-actions>\n <button mjButton\n [variant]=\"versionAction === 'update' && selectedVersion ? 'warning' : 'primary'\"\n (click)=\"save()\"\n [disabled]=\"!canSave()\">\n <i class=\"fa-solid fa-save\"></i>\n {{ getSaveButtonText() }}\n </button>\n <button mjButton (click)=\"cancel()\">Cancel</button>\n </mj-dialog-actions>\n</mj-dialog>\n", styles: ["/* Main container */\n.artifact-selection-content {\n height: 100%;\n display: flex;\n flex-direction: row;\n}\n\n/* Filter Panel */\n.filter-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--mj-border-default);\n transition: width 0.3s ease;\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: bold;\n color: var(--mj-text-secondary);\n}\n\n.filter-content {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.filter-group {\n margin-bottom: 15px;\n}\n\n.filter-group label {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.filter-input,\n.filter-select {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 4px;\n font-size: 14px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.filter-input:focus,\n.filter-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n/* Main Content Panel */\n.main-content {\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 2;\n min-width: 0; /* Prevents flex item from growing beyond container */\n}\n\n.paging-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 15px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.page-info {\n color: var(--mj-text-secondary);\n font-size: 14px;\n}\n\n.artifacts-list {\n flex: 1;\n overflow-y: auto;\n padding: 0 15px;\n}\n\n.loading-state,\n.empty-state {\n text-align: center;\n padding: 40px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 15px;\n color: var(--mj-text-muted);\n}\n\n.create-section {\n padding: 15px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.create-btn {\n width: 100%;\n}\n\n.new-artifact-form {\n margin-top: 15px;\n}\n\n.new-artifact-form .mj-input {\n width: 100%;\n margin-bottom: 10px;\n}\n\n.new-artifact-form .mj-textarea {\n width: 100%;\n height: 60px;\n}\n\n.divider {\n text-align: center;\n padding: 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n font-size: 12px;\n margin-bottom: 10px;\n}\n\n.artifact-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n margin: 10px 0;\n padding: 15px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.artifact-item:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.artifact-item.selected {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.artifact-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n\n.artifact-main {\n flex: 1;\n}\n\n.artifact-name {\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n}\n\n.artifact-name i {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n}\n\n.artifact-name span {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.artifact-description {\n color: var(--mj-text-secondary);\n font-size: 14px;\n margin-bottom: 8px;\n}\n\n.artifact-meta {\n text-align: right;\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n/* Version Panel */\n.version-panel {\n width: 320px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n background: var(--mj-bg-surface-sunken);\n}\n\n.version-content {\n flex: 1;\n padding: 15px;\n overflow-y: auto;\n}\n\n.version-actions {\n margin-bottom: 20px;\n}\n\n.version-actions label:first-child {\n display: block;\n margin-bottom: 10px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.radio-label {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n cursor: pointer;\n}\n\n.radio-label input {\n margin-right: 8px;\n}\n\n.version-selection {\n margin-bottom: 15px;\n}\n\n.version-selection > label:first-child {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.version-item {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n padding: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.version-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.version-item input {\n margin-right: 8px;\n}\n\n.version-info {\n flex: 1;\n}\n\n.version-number {\n font-weight: 500;\n}\n\n.version-date {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.warning {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 4px;\n padding: 10px;\n}\n\n.warning i {\n color: var(--mj-status-warning);\n margin-right: 5px;\n}\n\n.warning span {\n color: var(--mj-status-warning);\n font-size: 14px;\n}\n\n.info-state,\n.empty-state {\n padding: 15px;\n text-align: center;\n color: var(--mj-text-secondary);\n}\n\n.info-state i,\n.empty-state i {\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.info-state p,\n.empty-state p {\n margin: 5px 0;\n}\n\n.info-state p:last-child {\n font-size: 14px;\n}\n\n/* Filter button styling */\n.filter-count {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n border-radius: 50%;\n min-width: 18px;\n height: 18px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n margin-left: 4px;\n}\n\n.filter-active .filter-count {\n background: var(--mj-bg-surface-card);\n color: var(--mj-brand-primary);\n}\n"] }]
607
+ }], null, { Visible: [{
608
+ type: Input
609
+ }], Close: [{
610
+ type: Output
611
+ }] }); })();
612
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactSelectionDialogComponent, { className: "ArtifactSelectionDialogComponent", filePath: "src/ComponentStudio/components/artifact-selection-dialog.component.ts", lineNumber: 21 }); })();
619
613
  //# sourceMappingURL=artifact-selection-dialog.component.js.map