@memberjunction/ng-dashboards 4.4.0 → 5.0.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 (411) hide show
  1. package/dist/AI/ai-dashboard.component.d.ts +62 -0
  2. package/dist/AI/ai-dashboard.component.d.ts.map +1 -0
  3. package/dist/AI/ai-dashboard.component.js +338 -0
  4. package/dist/AI/ai-dashboard.component.js.map +1 -0
  5. package/dist/AI/components/agents/agent-configuration.component.js +7 -7
  6. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  7. package/dist/AI/components/agents/agent-editor.component.js +4 -4
  8. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  9. package/dist/AI/components/agents/agent-filter-panel.component.js +1 -1
  10. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  11. package/dist/AI/components/charts/performance-heatmap.component.js +3 -3
  12. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  13. package/dist/AI/components/charts/time-series-chart.component.js +1 -1
  14. package/dist/AI/components/execution-monitoring.component.js +2 -2
  15. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  16. package/dist/AI/components/models/model-management-v2.component.d.ts +96 -0
  17. package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
  18. package/dist/AI/components/models/model-management-v2.component.js +981 -0
  19. package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
  20. package/dist/AI/components/models/model-management.component.d.ts +3 -3
  21. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  22. package/dist/AI/components/models/model-management.component.js +4 -4
  23. package/dist/AI/components/models/model-management.component.js.map +1 -1
  24. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -2
  25. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  26. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +3 -3
  27. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  28. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +4 -4
  29. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
  30. package/dist/AI/components/prompts/prompt-filter-panel.component.js +1 -1
  31. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  32. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +97 -0
  33. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
  34. package/dist/AI/components/prompts/prompt-management-v2.component.js +811 -0
  35. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
  36. package/dist/AI/components/prompts/prompt-management.component.d.ts +5 -5
  37. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  38. package/dist/AI/components/prompts/prompt-management.component.js +12 -12
  39. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  40. package/dist/AI/components/prompts/prompt-version-control.component.d.ts +4 -4
  41. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  42. package/dist/AI/components/prompts/prompt-version-control.component.js +5 -5
  43. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  44. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +3 -3
  45. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
  46. package/dist/AI/components/system/system-config-filter-panel.component.js +1 -1
  47. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  48. package/dist/AI/components/system/system-configuration.component.d.ts +6 -6
  49. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  50. package/dist/AI/components/system/system-configuration.component.js +2 -2
  51. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  52. package/dist/AI/components/widgets/kpi-card.component.js +1 -1
  53. package/dist/AI/components/widgets/live-execution-widget.component.js +1 -1
  54. package/dist/APIKeys/api-applications-panel.component.d.ts +6 -6
  55. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  56. package/dist/APIKeys/api-applications-panel.component.js +1 -1
  57. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  58. package/dist/APIKeys/api-key-create-dialog.component.d.ts +2 -2
  59. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  60. package/dist/APIKeys/api-key-create-dialog.component.js +1 -1
  61. package/dist/APIKeys/api-key-edit-panel.component.d.ts +5 -5
  62. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  63. package/dist/APIKeys/api-key-edit-panel.component.js +1 -1
  64. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  65. package/dist/APIKeys/api-key-list.component.d.ts +8 -8
  66. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  67. package/dist/APIKeys/api-key-list.component.js +1 -1
  68. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  69. package/dist/APIKeys/api-keys-resource.component.d.ts +6 -6
  70. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  71. package/dist/APIKeys/api-keys-resource.component.js +1 -1
  72. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  73. package/dist/APIKeys/api-scopes-panel.component.d.ts +8 -8
  74. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  75. package/dist/APIKeys/api-scopes-panel.component.js +1 -1
  76. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  77. package/dist/APIKeys/api-usage-panel.component.js +1 -1
  78. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  79. package/dist/Actions/actions-management-dashboard.component.d.ts +52 -0
  80. package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -0
  81. package/dist/Actions/actions-management-dashboard.component.js +308 -0
  82. package/dist/Actions/actions-management-dashboard.component.js.map +1 -0
  83. package/dist/Actions/components/actions-list-view.component.d.ts +7 -7
  84. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  85. package/dist/Actions/components/actions-list-view.component.js +4 -4
  86. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  87. package/dist/Actions/components/actions-overview.component.d.ts +8 -8
  88. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  89. package/dist/Actions/components/actions-overview.component.js +8 -8
  90. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  91. package/dist/Actions/components/categories-list-view.component.d.ts +4 -4
  92. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  93. package/dist/Actions/components/categories-list-view.component.js +4 -4
  94. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  95. package/dist/Actions/components/code-management.component.js +1 -1
  96. package/dist/Actions/components/entity-integration.component.js +1 -1
  97. package/dist/Actions/components/execution-monitoring.component.d.ts +6 -6
  98. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  99. package/dist/Actions/components/execution-monitoring.component.js +5 -5
  100. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  101. package/dist/Actions/components/executions-list-view.component.js +1 -1
  102. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts +2 -2
  103. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
  104. package/dist/Actions/components/explorer/action-breadcrumb.component.js +1 -1
  105. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
  106. package/dist/Actions/components/explorer/action-card.component.d.ts +2 -2
  107. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  108. package/dist/Actions/components/explorer/action-card.component.js +3 -3
  109. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  110. package/dist/Actions/components/explorer/action-explorer.component.d.ts +7 -7
  111. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  112. package/dist/Actions/components/explorer/action-explorer.component.js +5 -5
  113. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  114. package/dist/Actions/components/explorer/action-list-item.component.d.ts +2 -2
  115. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
  116. package/dist/Actions/components/explorer/action-list-item.component.js +1 -1
  117. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  118. package/dist/Actions/components/explorer/action-toolbar.component.js +1 -1
  119. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts +5 -5
  120. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
  121. package/dist/Actions/components/explorer/action-tree-panel.component.js +1 -1
  122. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  123. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +3 -3
  124. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  125. package/dist/Actions/components/explorer/new-action-panel.component.js +3 -3
  126. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  127. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +3 -3
  128. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  129. package/dist/Actions/components/explorer/new-category-panel.component.js +2 -2
  130. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  131. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  132. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  133. package/dist/Actions/components/security-permissions.component.js +1 -1
  134. package/dist/Communication/communication-dashboard.component.js +1 -1
  135. package/dist/Communication/communication-logs-resource.component.d.ts +3 -3
  136. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  137. package/dist/Communication/communication-logs-resource.component.js +2 -2
  138. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  139. package/dist/Communication/communication-monitor-resource.component.d.ts +4 -4
  140. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  141. package/dist/Communication/communication-monitor-resource.component.js +7 -7
  142. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  143. package/dist/Communication/communication-providers-resource.component.d.ts +4 -4
  144. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  145. package/dist/Communication/communication-providers-resource.component.js +6 -6
  146. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  147. package/dist/Communication/communication-runs-resource.component.d.ts +2 -2
  148. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  149. package/dist/Communication/communication-runs-resource.component.js +5 -5
  150. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  151. package/dist/Communication/communication-templates-resource.component.d.ts +3 -3
  152. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  153. package/dist/Communication/communication-templates-resource.component.js +6 -6
  154. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  155. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -1
  156. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  157. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +2 -2
  158. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  159. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +13 -13
  160. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  161. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +2 -2
  162. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  163. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +8 -8
  164. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  165. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -2
  166. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  167. package/dist/ComponentStudio/components/browser/component-browser.component.js +1 -1
  168. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +1 -1
  169. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +1 -1
  170. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +1 -1
  171. package/dist/ComponentStudio/components/editors/spec-editor.component.js +1 -1
  172. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +1 -1
  173. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +1 -1
  174. package/dist/ComponentStudio/components/text-import-dialog.component.js +1 -1
  175. package/dist/ComponentStudio/components/workspace/component-preview.component.js +1 -1
  176. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +1 -1
  177. package/dist/ComponentStudio/services/component-version.service.d.ts +1 -1
  178. package/dist/ComponentStudio/services/component-version.service.js +3 -3
  179. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  180. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +44 -0
  181. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +1 -0
  182. package/dist/Credentials/components/credential-category-edit-panel.component.js +456 -0
  183. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +1 -0
  184. package/dist/Credentials/components/credential-edit-panel.component.d.ts +70 -0
  185. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +1 -0
  186. package/dist/Credentials/components/credential-edit-panel.component.js +694 -0
  187. package/dist/Credentials/components/credential-edit-panel.component.js.map +1 -0
  188. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +56 -0
  189. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +1 -0
  190. package/dist/Credentials/components/credential-type-edit-panel.component.js +563 -0
  191. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +1 -0
  192. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +2 -2
  193. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  194. package/dist/Credentials/components/credentials-audit-resource.component.js +2 -2
  195. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  196. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +6 -6
  197. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  198. package/dist/Credentials/components/credentials-categories-resource.component.js +1 -1
  199. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  200. package/dist/Credentials/components/credentials-list-resource.component.d.ts +18 -18
  201. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  202. package/dist/Credentials/components/credentials-list-resource.component.js +1 -1
  203. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  204. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  205. package/dist/Credentials/components/credentials-overview-resource.component.js +2 -2
  206. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  207. package/dist/Credentials/components/credentials-types-resource.component.d.ts +4 -4
  208. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  209. package/dist/Credentials/components/credentials-types-resource.component.js +1 -1
  210. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  211. package/dist/Credentials/credentials-dashboard.component.js +1 -1
  212. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +7 -7
  213. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  214. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +3 -3
  215. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  216. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +9 -9
  217. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  218. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +2 -2
  219. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  220. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +1 -1
  221. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +4 -4
  222. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  223. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
  224. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
  225. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
  226. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
  227. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +60 -2
  228. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  229. package/dist/DataExplorer/components/view-selector/view-selector.component.js +454 -107
  230. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  231. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +81 -2
  232. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  233. package/dist/DataExplorer/data-explorer-dashboard.component.js +557 -185
  234. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  235. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  236. package/dist/DataExplorer/data-explorer-resource.component.js +1 -1
  237. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  238. package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
  239. package/dist/DataExplorer/services/explorer-state.service.js +6 -6
  240. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  241. package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
  242. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
  243. package/dist/EntityAdmin/components/entity-details.component.js +680 -0
  244. package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
  245. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
  246. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
  247. package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
  248. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
  249. package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
  250. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
  251. package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
  252. package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
  253. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
  254. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
  255. package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
  256. package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
  257. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  258. package/dist/EntityAdmin/entity-admin-dashboard.component.js +1 -1
  259. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  260. package/dist/Home/home-dashboard.component.d.ts +8 -8
  261. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  262. package/dist/Home/home-dashboard.component.js +2 -2
  263. package/dist/Home/home-dashboard.component.js.map +1 -1
  264. package/dist/Lists/components/lists-browse-resource.component.d.ts +7 -7
  265. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  266. package/dist/Lists/components/lists-browse-resource.component.js +9 -9
  267. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  268. package/dist/Lists/components/lists-categories-resource.component.d.ts +10 -10
  269. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  270. package/dist/Lists/components/lists-categories-resource.component.js +4 -4
  271. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  272. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +9 -9
  273. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  274. package/dist/Lists/components/lists-my-lists-resource.component.js +8 -8
  275. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  276. package/dist/Lists/components/lists-operations-resource.component.d.ts +6 -6
  277. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  278. package/dist/Lists/components/lists-operations-resource.component.js +5 -5
  279. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  280. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +1 -1
  281. package/dist/Lists/services/list-set-operations.service.d.ts +2 -2
  282. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  283. package/dist/Lists/services/list-set-operations.service.js +2 -2
  284. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  285. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +2 -2
  286. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  287. package/dist/MCP/components/mcp-connection-dialog.component.js +2 -2
  288. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  289. package/dist/MCP/components/mcp-log-detail-panel.component.js +1 -1
  290. package/dist/MCP/components/mcp-server-dialog.component.js +1 -1
  291. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  292. package/dist/MCP/components/mcp-test-tool-dialog.component.js +1 -1
  293. package/dist/MCP/mcp-dashboard.component.js +1 -1
  294. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  295. package/dist/MCP/mcp-filter-panel.component.js +1 -1
  296. package/dist/MCP/mcp-resource.component.js +1 -1
  297. package/dist/QueryBrowser/query-browser-resource.component.js +3 -3
  298. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  299. package/dist/Scheduling/components/job-slideout.component.js +1 -1
  300. package/dist/Scheduling/components/scheduling-activity-resource.component.js +1 -1
  301. package/dist/Scheduling/components/scheduling-activity.component.js +1 -1
  302. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +20 -0
  303. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +1 -0
  304. package/dist/Scheduling/components/scheduling-health-resource.component.js +55 -0
  305. package/dist/Scheduling/components/scheduling-health-resource.component.js.map +1 -0
  306. package/dist/Scheduling/components/scheduling-health.component.d.ts +30 -0
  307. package/dist/Scheduling/components/scheduling-health.component.d.ts.map +1 -0
  308. package/dist/Scheduling/components/scheduling-health.component.js +315 -0
  309. package/dist/Scheduling/components/scheduling-health.component.js.map +1 -0
  310. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +20 -0
  311. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +1 -0
  312. package/dist/Scheduling/components/scheduling-history-resource.component.js +55 -0
  313. package/dist/Scheduling/components/scheduling-history-resource.component.js.map +1 -0
  314. package/dist/Scheduling/components/scheduling-history.component.d.ts +48 -0
  315. package/dist/Scheduling/components/scheduling-history.component.d.ts.map +1 -0
  316. package/dist/Scheduling/components/scheduling-history.component.js +377 -0
  317. package/dist/Scheduling/components/scheduling-history.component.js.map +1 -0
  318. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +1 -1
  319. package/dist/Scheduling/components/scheduling-jobs.component.js +2 -2
  320. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  321. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +20 -0
  322. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +1 -0
  323. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +55 -0
  324. package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +1 -0
  325. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +37 -0
  326. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +1 -0
  327. package/dist/Scheduling/components/scheduling-monitoring.component.js +488 -0
  328. package/dist/Scheduling/components/scheduling-monitoring.component.js.map +1 -0
  329. package/dist/Scheduling/components/scheduling-overview-resource.component.js +1 -1
  330. package/dist/Scheduling/components/scheduling-overview.component.js +1 -1
  331. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts +20 -0
  332. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +1 -0
  333. package/dist/Scheduling/components/scheduling-types-resource.component.js +55 -0
  334. package/dist/Scheduling/components/scheduling-types-resource.component.js.map +1 -0
  335. package/dist/Scheduling/components/scheduling-types.component.d.ts +22 -0
  336. package/dist/Scheduling/components/scheduling-types.component.d.ts.map +1 -0
  337. package/dist/Scheduling/components/scheduling-types.component.js +165 -0
  338. package/dist/Scheduling/components/scheduling-types.component.js.map +1 -0
  339. package/dist/Scheduling/scheduling-dashboard.component.js +1 -1
  340. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  341. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  342. package/dist/SystemDiagnostics/system-diagnostics.component.js +1 -1
  343. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  344. package/dist/Testing/components/testing-analytics-resource.component.js +1 -1
  345. package/dist/Testing/components/testing-analytics.component.js +1 -1
  346. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
  347. package/dist/Testing/components/testing-dashboard-tab.component.js +1 -1
  348. package/dist/Testing/components/testing-execution-resource.component.d.ts +20 -0
  349. package/dist/Testing/components/testing-execution-resource.component.d.ts.map +1 -0
  350. package/dist/Testing/components/testing-execution-resource.component.js +55 -0
  351. package/dist/Testing/components/testing-execution-resource.component.js.map +1 -0
  352. package/dist/Testing/components/testing-execution.component.d.ts +71 -0
  353. package/dist/Testing/components/testing-execution.component.d.ts.map +1 -0
  354. package/dist/Testing/components/testing-execution.component.js +845 -0
  355. package/dist/Testing/components/testing-execution.component.js.map +1 -0
  356. package/dist/Testing/components/testing-explorer-resource.component.js +1 -1
  357. package/dist/Testing/components/testing-explorer.component.d.ts +4 -4
  358. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  359. package/dist/Testing/components/testing-explorer.component.js +1 -1
  360. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  361. package/dist/Testing/components/testing-feedback-resource.component.d.ts +20 -0
  362. package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +1 -0
  363. package/dist/Testing/components/testing-feedback-resource.component.js +55 -0
  364. package/dist/Testing/components/testing-feedback-resource.component.js.map +1 -0
  365. package/dist/Testing/components/testing-feedback.component.d.ts +111 -0
  366. package/dist/Testing/components/testing-feedback.component.d.ts.map +1 -0
  367. package/dist/Testing/components/testing-feedback.component.js +1486 -0
  368. package/dist/Testing/components/testing-feedback.component.js.map +1 -0
  369. package/dist/Testing/components/testing-overview-resource.component.d.ts +20 -0
  370. package/dist/Testing/components/testing-overview-resource.component.d.ts.map +1 -0
  371. package/dist/Testing/components/testing-overview-resource.component.js +55 -0
  372. package/dist/Testing/components/testing-overview-resource.component.js.map +1 -0
  373. package/dist/Testing/components/testing-overview.component.d.ts +30 -0
  374. package/dist/Testing/components/testing-overview.component.d.ts.map +1 -0
  375. package/dist/Testing/components/testing-overview.component.js +361 -0
  376. package/dist/Testing/components/testing-overview.component.js.map +1 -0
  377. package/dist/Testing/components/testing-review-resource.component.js +1 -1
  378. package/dist/Testing/components/testing-review.component.js +1 -1
  379. package/dist/Testing/components/testing-runs-resource.component.js +1 -1
  380. package/dist/Testing/components/testing-runs.component.js +1 -1
  381. package/dist/Testing/components/testing-version-comparison.component.d.ts +62 -0
  382. package/dist/Testing/components/testing-version-comparison.component.d.ts.map +1 -0
  383. package/dist/Testing/components/testing-version-comparison.component.js +815 -0
  384. package/dist/Testing/components/testing-version-comparison.component.js.map +1 -0
  385. package/dist/Testing/components/testing-version-resource.component.d.ts +20 -0
  386. package/dist/Testing/components/testing-version-resource.component.d.ts.map +1 -0
  387. package/dist/Testing/components/testing-version-resource.component.js +55 -0
  388. package/dist/Testing/components/testing-version-resource.component.js.map +1 -0
  389. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +1 -1
  390. package/dist/Testing/components/widgets/suite-tree.component.js +2 -2
  391. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +1 -1
  392. package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
  393. package/dist/Testing/testing-dashboard.component.js +1 -1
  394. package/dist/VersionHistory/components/diff-resource.component.d.ts +5 -5
  395. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  396. package/dist/VersionHistory/components/diff-resource.component.js +4 -4
  397. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  398. package/dist/VersionHistory/components/graph-resource.component.js +1 -1
  399. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -7
  400. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  401. package/dist/VersionHistory/components/labels-resource.component.js +1 -1
  402. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  403. package/dist/VersionHistory/components/restore-resource.component.d.ts +4 -4
  404. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
  405. package/dist/VersionHistory/components/restore-resource.component.js +1 -1
  406. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  407. package/dist/generic/base-dashboard.d.ts +65 -0
  408. package/dist/generic/base-dashboard.d.ts.map +1 -0
  409. package/dist/generic/base-dashboard.js +74 -0
  410. package/dist/generic/base-dashboard.js.map +1 -0
  411. package/package.json +38 -38
@@ -0,0 +1,456 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import { Metadata, RunView } from '@memberjunction/core';
3
+ import { MJNotificationService } from '@memberjunction/ng-notifications';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@memberjunction/ng-shared-generic";
8
+ function CredentialCategoryEditPanelComponent_div_0_span_9_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelementStart(0, "span", 21);
10
+ i0.ɵɵtext(1);
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const ctx_r1 = i0.ɵɵnextContext(2);
14
+ i0.ɵɵadvance();
15
+ i0.ɵɵtextInterpolate1(" Under: ", ctx_r1.getParentPath(ctx_r1.parentId), " ");
16
+ } }
17
+ function CredentialCategoryEditPanelComponent_div_0_span_10_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "span", 21);
19
+ i0.ɵɵtext(1, "Root category");
20
+ i0.ɵɵelementEnd();
21
+ } }
22
+ function CredentialCategoryEditPanelComponent_div_0_mj_loading_14_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelement(0, "mj-loading", 22);
24
+ } }
25
+ function CredentialCategoryEditPanelComponent_div_0_form_15_option_15_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "option", 32);
27
+ i0.ɵɵtext(1);
28
+ i0.ɵɵelementEnd();
29
+ } if (rf & 2) {
30
+ const cat_r4 = ctx.$implicit;
31
+ const ctx_r1 = i0.ɵɵnextContext(3);
32
+ i0.ɵɵproperty("ngValue", cat_r4.ID);
33
+ i0.ɵɵadvance();
34
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getParentPath(cat_r4.ID), " ");
35
+ } }
36
+ function CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template(rf, ctx) { if (rf & 1) {
37
+ const _r5 = i0.ɵɵgetCurrentView();
38
+ i0.ɵɵelementStart(0, "button", 45);
39
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template_button_click_0_listener() { const suggestion_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.selectIcon(suggestion_r6.icon)); });
40
+ i0.ɵɵelement(1, "i");
41
+ i0.ɵɵelementEnd();
42
+ } if (rf & 2) {
43
+ const suggestion_r6 = ctx.$implicit;
44
+ const ctx_r1 = i0.ɵɵnextContext(3);
45
+ i0.ɵɵclassProp("selected", ctx_r1.iconClass === suggestion_r6.icon);
46
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving)("title", suggestion_r6.label);
47
+ i0.ɵɵadvance();
48
+ i0.ɵɵclassMap(suggestion_r6.icon);
49
+ } }
50
+ function CredentialCategoryEditPanelComponent_div_0_form_15_div_37_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 47);
52
+ i0.ɵɵtext(2, "Preview:");
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵelementStart(3, "div", 48);
55
+ i0.ɵɵelement(4, "i");
56
+ i0.ɵɵelementEnd()();
57
+ } if (rf & 2) {
58
+ const ctx_r1 = i0.ɵɵnextContext(3);
59
+ i0.ɵɵadvance(4);
60
+ i0.ɵɵclassMap(ctx_r1.iconClass);
61
+ } }
62
+ function CredentialCategoryEditPanelComponent_div_0_form_15_Template(rf, ctx) { if (rf & 1) {
63
+ const _r3 = i0.ɵɵgetCurrentView();
64
+ i0.ɵɵelementStart(0, "form", 23);
65
+ i0.ɵɵlistener("submit", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_form_submit_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); $event.preventDefault(); return i0.ɵɵresetView(ctx_r1.save()); });
66
+ i0.ɵɵelementStart(1, "div", 24)(2, "h3", 25);
67
+ i0.ɵɵelement(3, "i", 26);
68
+ i0.ɵɵtext(4, " Basic Information ");
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(5, "div", 27)(6, "label", 28);
71
+ i0.ɵɵtext(7, "Name");
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementStart(8, "input", 29);
74
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.name, $event) || (ctx_r1.name = $event); return i0.ɵɵresetView($event); });
75
+ i0.ɵɵelementEnd()();
76
+ i0.ɵɵelementStart(9, "div", 27)(10, "label", 30);
77
+ i0.ɵɵtext(11, "Parent Category");
78
+ i0.ɵɵelementEnd();
79
+ i0.ɵɵelementStart(12, "select", 31);
80
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_select_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.parentId, $event) || (ctx_r1.parentId = $event); return i0.ɵɵresetView($event); });
81
+ i0.ɵɵelementStart(13, "option", 32);
82
+ i0.ɵɵtext(14, "No parent (root category)");
83
+ i0.ɵɵelementEnd();
84
+ i0.ɵɵtemplate(15, CredentialCategoryEditPanelComponent_div_0_form_15_option_15_Template, 2, 2, "option", 33);
85
+ i0.ɵɵelementEnd();
86
+ i0.ɵɵelementStart(16, "span", 34);
87
+ i0.ɵɵtext(17, "Select a parent to create a subcategory");
88
+ i0.ɵɵelementEnd()();
89
+ i0.ɵɵelementStart(18, "div", 27)(19, "label", 35);
90
+ i0.ɵɵtext(20, "Description");
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(21, "textarea", 36);
93
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_textarea_ngModelChange_21_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.description, $event) || (ctx_r1.description = $event); return i0.ɵɵresetView($event); });
94
+ i0.ɵɵelementEnd()()();
95
+ i0.ɵɵelementStart(22, "div", 24)(23, "h3", 25);
96
+ i0.ɵɵelement(24, "i", 37);
97
+ i0.ɵɵtext(25, " Icon ");
98
+ i0.ɵɵelementEnd();
99
+ i0.ɵɵelementStart(26, "div", 27)(27, "label", 38);
100
+ i0.ɵɵtext(28, "Custom Icon Class");
101
+ i0.ɵɵelementEnd();
102
+ i0.ɵɵelementStart(29, "input", 39);
103
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_input_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.iconClass, $event) || (ctx_r1.iconClass = $event); return i0.ɵɵresetView($event); });
104
+ i0.ɵɵelementEnd();
105
+ i0.ɵɵelementStart(30, "span", 34);
106
+ i0.ɵɵtext(31, "Font Awesome icon class");
107
+ i0.ɵɵelementEnd()();
108
+ i0.ɵɵelementStart(32, "div", 40)(33, "p", 41);
109
+ i0.ɵɵtext(34, "Quick pick:");
110
+ i0.ɵɵelementEnd();
111
+ i0.ɵɵelementStart(35, "div", 42);
112
+ i0.ɵɵtemplate(36, CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template, 2, 6, "button", 43);
113
+ i0.ɵɵelementEnd()();
114
+ i0.ɵɵtemplate(37, CredentialCategoryEditPanelComponent_div_0_form_15_div_37_Template, 5, 2, "div", 44);
115
+ i0.ɵɵelementEnd()();
116
+ } if (rf & 2) {
117
+ const ctx_r1 = i0.ɵɵnextContext(2);
118
+ i0.ɵɵadvance(8);
119
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.name);
120
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
121
+ i0.ɵɵadvance(4);
122
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.parentId);
123
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
124
+ i0.ɵɵadvance();
125
+ i0.ɵɵproperty("ngValue", "");
126
+ i0.ɵɵadvance(2);
127
+ i0.ɵɵproperty("ngForOf", ctx_r1.availableParentCategories);
128
+ i0.ɵɵadvance(6);
129
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.description);
130
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
131
+ i0.ɵɵadvance(8);
132
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.iconClass);
133
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
134
+ i0.ɵɵadvance(7);
135
+ i0.ɵɵproperty("ngForOf", ctx_r1.iconSuggestions);
136
+ i0.ɵɵadvance();
137
+ i0.ɵɵproperty("ngIf", ctx_r1.iconClass);
138
+ } }
139
+ function CredentialCategoryEditPanelComponent_div_0_button_18_Template(rf, ctx) { if (rf & 1) {
140
+ const _r7 = i0.ɵɵgetCurrentView();
141
+ i0.ɵɵelementStart(0, "button", 49);
142
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_button_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.deleteCategory()); });
143
+ i0.ɵɵelement(1, "i", 50);
144
+ i0.ɵɵelementStart(2, "span");
145
+ i0.ɵɵtext(3, "Delete");
146
+ i0.ɵɵelementEnd()();
147
+ } if (rf & 2) {
148
+ const ctx_r1 = i0.ɵɵnextContext(2);
149
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
150
+ } }
151
+ function CredentialCategoryEditPanelComponent_div_0_i_23_Template(rf, ctx) { if (rf & 1) {
152
+ i0.ɵɵelement(0, "i", 51);
153
+ } }
154
+ function CredentialCategoryEditPanelComponent_div_0_i_24_Template(rf, ctx) { if (rf & 1) {
155
+ i0.ɵɵelement(0, "i", 52);
156
+ } }
157
+ function CredentialCategoryEditPanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
158
+ const _r1 = i0.ɵɵgetCurrentView();
159
+ i0.ɵɵelementStart(0, "div", 1);
160
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBackdropClick($event)); });
161
+ i0.ɵɵelementStart(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5);
162
+ i0.ɵɵelement(5, "i");
163
+ i0.ɵɵelementEnd();
164
+ i0.ɵɵelementStart(6, "div", 6)(7, "h2");
165
+ i0.ɵɵtext(8);
166
+ i0.ɵɵelementEnd();
167
+ i0.ɵɵtemplate(9, CredentialCategoryEditPanelComponent_div_0_span_9_Template, 2, 1, "span", 7)(10, CredentialCategoryEditPanelComponent_div_0_span_10_Template, 2, 0, "span", 7);
168
+ i0.ɵɵelementEnd()();
169
+ i0.ɵɵelementStart(11, "button", 8);
170
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
171
+ i0.ɵɵelement(12, "i", 9);
172
+ i0.ɵɵelementEnd()();
173
+ i0.ɵɵelementStart(13, "div", 10);
174
+ i0.ɵɵtemplate(14, CredentialCategoryEditPanelComponent_div_0_mj_loading_14_Template, 1, 0, "mj-loading", 11)(15, CredentialCategoryEditPanelComponent_div_0_form_15_Template, 38, 12, "form", 12);
175
+ i0.ɵɵelementEnd();
176
+ i0.ɵɵelementStart(16, "div", 13)(17, "div", 14);
177
+ i0.ɵɵtemplate(18, CredentialCategoryEditPanelComponent_div_0_button_18_Template, 4, 1, "button", 15);
178
+ i0.ɵɵelementEnd();
179
+ i0.ɵɵelementStart(19, "div", 16)(20, "button", 17);
180
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
181
+ i0.ɵɵtext(21, " Cancel ");
182
+ i0.ɵɵelementEnd();
183
+ i0.ɵɵelementStart(22, "button", 18);
184
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.save()); });
185
+ i0.ɵɵtemplate(23, CredentialCategoryEditPanelComponent_div_0_i_23_Template, 1, 0, "i", 19)(24, CredentialCategoryEditPanelComponent_div_0_i_24_Template, 1, 0, "i", 20);
186
+ i0.ɵɵelementStart(25, "span");
187
+ i0.ɵɵtext(26);
188
+ i0.ɵɵelementEnd()()()()()();
189
+ } if (rf & 2) {
190
+ const ctx_r1 = i0.ɵɵnextContext();
191
+ i0.ɵɵadvance();
192
+ i0.ɵɵclassProp("open", ctx_r1.isOpen);
193
+ i0.ɵɵadvance(3);
194
+ i0.ɵɵstyleProp("background-color", "#6366f1" + "15")("color", "#6366f1");
195
+ i0.ɵɵadvance();
196
+ i0.ɵɵclassMap(ctx_r1.iconClass || "fa-solid fa-folder");
197
+ i0.ɵɵadvance(3);
198
+ i0.ɵɵtextInterpolate(ctx_r1.panelTitle);
199
+ i0.ɵɵadvance();
200
+ i0.ɵɵproperty("ngIf", ctx_r1.parentId);
201
+ i0.ɵɵadvance();
202
+ i0.ɵɵproperty("ngIf", !ctx_r1.parentId);
203
+ i0.ɵɵadvance();
204
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
205
+ i0.ɵɵadvance(3);
206
+ i0.ɵɵproperty("ngIf", ctx_r1.isLoading);
207
+ i0.ɵɵadvance();
208
+ i0.ɵɵproperty("ngIf", !ctx_r1.isLoading);
209
+ i0.ɵɵadvance(3);
210
+ i0.ɵɵproperty("ngIf", !ctx_r1.isNew);
211
+ i0.ɵɵadvance(2);
212
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
213
+ i0.ɵɵadvance(2);
214
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving || !ctx_r1.canSave);
215
+ i0.ɵɵadvance();
216
+ i0.ɵɵproperty("ngIf", ctx_r1.isSaving);
217
+ i0.ɵɵadvance();
218
+ i0.ɵɵproperty("ngIf", !ctx_r1.isSaving);
219
+ i0.ɵɵadvance(2);
220
+ i0.ɵɵtextInterpolate(ctx_r1.isNew ? "Create" : "Save");
221
+ } }
222
+ export function LoadCredentialCategoryEditPanel() {
223
+ // Prevents tree-shaking
224
+ }
225
+ export class CredentialCategoryEditPanelComponent {
226
+ cdr;
227
+ category = null;
228
+ isOpen = false;
229
+ close = new EventEmitter();
230
+ saved = new EventEmitter();
231
+ deleted = new EventEmitter();
232
+ isLoading = false;
233
+ isSaving = false;
234
+ isNew = false;
235
+ // All categories for parent selection
236
+ allCategories = [];
237
+ // Form fields
238
+ name = '';
239
+ description = '';
240
+ parentId = '';
241
+ iconClass = '';
242
+ // Icon suggestions
243
+ iconSuggestions = [
244
+ { icon: 'fa-solid fa-folder', label: 'Folder' },
245
+ { icon: 'fa-solid fa-lock', label: 'Lock' },
246
+ { icon: 'fa-solid fa-shield-halved', label: 'Shield' },
247
+ { icon: 'fa-solid fa-key', label: 'Key' },
248
+ { icon: 'fa-solid fa-cloud', label: 'Cloud' },
249
+ { icon: 'fa-solid fa-database', label: 'Database' },
250
+ { icon: 'fa-solid fa-brain', label: 'AI' },
251
+ { icon: 'fa-solid fa-envelope', label: 'Email' },
252
+ { icon: 'fa-solid fa-plug', label: 'Integration' },
253
+ { icon: 'fa-solid fa-server', label: 'Server' },
254
+ { icon: 'fa-solid fa-code', label: 'Code' },
255
+ { icon: 'fa-solid fa-globe', label: 'Web' }
256
+ ];
257
+ _metadata = new Metadata();
258
+ constructor(cdr) {
259
+ this.cdr = cdr;
260
+ }
261
+ ngOnInit() {
262
+ this.loadCategories();
263
+ }
264
+ get panelTitle() {
265
+ return this.isNew ? 'Create Category' : 'Edit Category';
266
+ }
267
+ get canSave() {
268
+ return this.name.trim().length > 0;
269
+ }
270
+ get availableParentCategories() {
271
+ // Exclude the current category and its descendants from parent options
272
+ if (!this.category || this.isNew) {
273
+ return this.allCategories;
274
+ }
275
+ const currentId = this.category.ID;
276
+ const descendantIds = this.getDescendantIds(currentId);
277
+ descendantIds.add(currentId);
278
+ return this.allCategories.filter(c => !descendantIds.has(c.ID));
279
+ }
280
+ getDescendantIds(categoryId) {
281
+ const descendants = new Set();
282
+ const findChildren = (parentId) => {
283
+ for (const cat of this.allCategories) {
284
+ if (cat.ParentID === parentId) {
285
+ descendants.add(cat.ID);
286
+ findChildren(cat.ID);
287
+ }
288
+ }
289
+ };
290
+ findChildren(categoryId);
291
+ return descendants;
292
+ }
293
+ async open(category, preselectedParentId) {
294
+ this.isLoading = true;
295
+ this.isOpen = true;
296
+ this.category = category;
297
+ this.isNew = !category || !category.ID;
298
+ this.cdr.markForCheck();
299
+ await this.loadCategories();
300
+ this.resetForm();
301
+ if (category && category.ID) {
302
+ this.populateFromCategory(category);
303
+ }
304
+ else if (preselectedParentId) {
305
+ this.parentId = preselectedParentId;
306
+ }
307
+ this.isLoading = false;
308
+ this.cdr.markForCheck();
309
+ }
310
+ async loadCategories() {
311
+ try {
312
+ const rv = new RunView();
313
+ const result = await rv.RunView({
314
+ EntityName: 'MJ: Credential Categories',
315
+ OrderBy: 'Name',
316
+ ResultType: 'entity_object'
317
+ });
318
+ if (result.Success) {
319
+ this.allCategories = result.Results;
320
+ }
321
+ }
322
+ catch (error) {
323
+ console.error('Error loading categories:', error);
324
+ }
325
+ this.cdr.markForCheck();
326
+ }
327
+ resetForm() {
328
+ this.name = '';
329
+ this.description = '';
330
+ this.parentId = '';
331
+ this.iconClass = '';
332
+ }
333
+ populateFromCategory(category) {
334
+ this.name = category.Name || '';
335
+ this.description = category.Description || '';
336
+ this.parentId = category.ParentID || '';
337
+ this.iconClass = category.IconClass || '';
338
+ }
339
+ selectIcon(icon) {
340
+ this.iconClass = icon;
341
+ this.cdr.markForCheck();
342
+ }
343
+ async save() {
344
+ if (!this.canSave) {
345
+ MJNotificationService.Instance.CreateSimpleNotification('Please enter a category name', 'warning', 3000);
346
+ return;
347
+ }
348
+ this.isSaving = true;
349
+ this.cdr.markForCheck();
350
+ try {
351
+ let entity;
352
+ if (this.isNew) {
353
+ entity = await this._metadata.GetEntityObject('MJ: Credential Categories');
354
+ }
355
+ else {
356
+ entity = this.category;
357
+ }
358
+ entity.Name = this.name.trim();
359
+ entity.Description = this.description.trim() || null;
360
+ entity.ParentID = this.parentId || null;
361
+ entity.IconClass = this.iconClass.trim() || null;
362
+ const success = await entity.Save();
363
+ if (success) {
364
+ const action = this.isNew ? 'created' : 'updated';
365
+ MJNotificationService.Instance.CreateSimpleNotification(`Category "${entity.Name}" ${action} successfully`, 'success', 3000);
366
+ this.saved.emit(entity);
367
+ this.closePanel();
368
+ }
369
+ else {
370
+ const errorMessage = entity.LatestResult?.Message || 'Unknown error';
371
+ console.error('Save failed:', errorMessage);
372
+ MJNotificationService.Instance.CreateSimpleNotification(`Failed to save category: ${errorMessage}`, 'error', 5000);
373
+ }
374
+ }
375
+ catch (error) {
376
+ console.error('Error saving category:', error);
377
+ MJNotificationService.Instance.CreateSimpleNotification('Error saving category', 'error', 3000);
378
+ }
379
+ finally {
380
+ this.isSaving = false;
381
+ this.cdr.markForCheck();
382
+ }
383
+ }
384
+ async deleteCategory() {
385
+ if (this.isNew || !this.category)
386
+ return;
387
+ const confirmed = confirm(`Are you sure you want to delete "${this.category.Name}"? This action cannot be undone.`);
388
+ if (!confirmed)
389
+ return;
390
+ this.isSaving = true;
391
+ this.cdr.markForCheck();
392
+ try {
393
+ const success = await this.category.Delete();
394
+ if (success) {
395
+ MJNotificationService.Instance.CreateSimpleNotification(`Category "${this.category.Name}" deleted successfully`, 'success', 3000);
396
+ this.deleted.emit(this.category.ID);
397
+ this.closePanel();
398
+ }
399
+ else {
400
+ const errorMessage = this.category.LatestResult?.Message || 'Unknown error';
401
+ MJNotificationService.Instance.CreateSimpleNotification(`Failed to delete category: ${errorMessage}`, 'error', 5000);
402
+ }
403
+ }
404
+ catch (error) {
405
+ console.error('Error deleting category:', error);
406
+ MJNotificationService.Instance.CreateSimpleNotification('Error deleting category', 'error', 3000);
407
+ }
408
+ finally {
409
+ this.isSaving = false;
410
+ this.cdr.markForCheck();
411
+ }
412
+ }
413
+ closePanel() {
414
+ this.isOpen = false;
415
+ this.category = null;
416
+ this.resetForm();
417
+ this.close.emit();
418
+ this.cdr.markForCheck();
419
+ }
420
+ onBackdropClick(event) {
421
+ if (event.target.classList.contains('panel-backdrop')) {
422
+ this.closePanel();
423
+ }
424
+ }
425
+ getParentPath(categoryId) {
426
+ const parts = [];
427
+ let current = this.allCategories.find(c => c.ID === categoryId);
428
+ while (current) {
429
+ parts.unshift(current.Name);
430
+ current = current.ParentID ? this.allCategories.find(c => c.ID === current.ParentID) : undefined;
431
+ }
432
+ return parts.join(' / ');
433
+ }
434
+ static ɵfac = function CredentialCategoryEditPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CredentialCategoryEditPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
435
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CredentialCategoryEditPanelComponent, selectors: [["mj-credential-category-edit-panel"]], inputs: { category: "category", isOpen: "isOpen" }, outputs: { close: "close", saved: "saved", deleted: "deleted" }, decls: 1, vars: 1, consts: [["class", "panel-backdrop", 3, "click", 4, "ngIf"], [1, "panel-backdrop", 3, "click"], [1, "edit-panel"], [1, "panel-header"], [1, "header-content"], [1, "header-icon"], [1, "header-text"], ["class", "header-subtitle", 4, "ngIf"], [1, "close-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], [1, "panel-body"], ["text", "Loading...", 4, "ngIf"], ["class", "category-form", 3, "submit", 4, "ngIf"], [1, "panel-footer"], [1, "footer-left"], ["class", "btn-delete", 3, "disabled", "click", 4, "ngIf"], [1, "footer-right"], [1, "btn-secondary", 3, "click", "disabled"], [1, "btn-primary", 3, "click", "disabled"], ["class", "fa-solid fa-spinner fa-spin", 4, "ngIf"], ["class", "fa-solid fa-check", 4, "ngIf"], [1, "header-subtitle"], ["text", "Loading..."], [1, "category-form", 3, "submit"], [1, "form-section"], [1, "section-title"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "categoryName", 1, "required"], ["type", "text", "id", "categoryName", "name", "categoryName", "placeholder", "e.g., Production, Development, API Keys", "required", "", 3, "ngModelChange", "ngModel", "disabled"], ["for", "categoryParent"], ["id", "categoryParent", "name", "categoryParent", 3, "ngModelChange", "ngModel", "disabled"], [3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "field-hint"], ["for", "categoryDescription"], ["id", "categoryDescription", "name", "categoryDescription", "placeholder", "Optional description of this category...", "rows", "3", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-icons"], ["for", "categoryIcon"], ["type", "text", "id", "categoryIcon", "name", "categoryIcon", "placeholder", "e.g., fa-solid fa-folder", 3, "ngModelChange", "ngModel", "disabled"], [1, "icon-suggestions"], [1, "suggestions-label"], [1, "icon-grid"], ["type", "button", "class", "icon-btn", 3, "selected", "disabled", "title", "click", 4, "ngFor", "ngForOf"], ["class", "icon-preview", 4, "ngIf"], ["type", "button", 1, "icon-btn", 3, "click", "disabled", "title"], [1, "icon-preview"], [1, "preview-label"], [1, "preview-icon"], [1, "btn-delete", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"]], template: function CredentialCategoryEditPanelComponent_Template(rf, ctx) { if (rf & 1) {
436
+ i0.ɵɵtemplate(0, CredentialCategoryEditPanelComponent_div_0_Template, 27, 20, "div", 0);
437
+ } if (rf & 2) {
438
+ i0.ɵɵproperty("ngIf", ctx.isOpen);
439
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.ɵNgNoValidate, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.RequiredValidator, i2.NgModel, i2.NgForm, i3.LoadingComponent], styles: ["\n\n.panel-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n justify-content: flex-end;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n\n\n.edit-panel[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 500px;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n animation: _ngcontent-%COMP%_slideIn 0.3s ease-out forwards;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: #1e293b;\n margin: 0 0 4px 0;\n}\n\n.header-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #64748b;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: none;\n background: #f1f5f9;\n border-radius: 8px;\n cursor: pointer;\n color: #64748b;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #e2e8f0;\n color: #334155;\n}\n\n.close-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.form-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 600;\n color: #334155;\n margin: 0 0 16px 0;\n padding-bottom: 10px;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 14px;\n}\n\n\n\n.form-group[_ngcontent-%COMP%] {\n margin-bottom: 18px;\n}\n\n.form-group[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 500;\n color: #475569;\n margin-bottom: 6px;\n}\n\n.form-group[_ngcontent-%COMP%] label.required[_ngcontent-%COMP%]::after {\n content: '*';\n color: #ef4444;\n margin-left: 4px;\n}\n\n.form-group[_ngcontent-%COMP%] input[type=\"text\"][_ngcontent-%COMP%], \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%], \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n font-size: 14px;\n color: #1e293b;\n background: #ffffff;\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n.form-group[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus, \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:focus, \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-group[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled, \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:disabled, \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:disabled {\n background: #f8fafc;\n color: #94a3b8;\n cursor: not-allowed;\n}\n\n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n}\n\n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #94a3b8;\n margin-top: 5px;\n}\n\n\n\n.icon-suggestions[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.suggestions-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n margin: 0 0 10px 0;\n}\n\n.icon-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n gap: 8px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 100%;\n aspect-ratio: 1;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: #64748b;\n transition: all 0.15s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n border-color: #6366f1;\n color: #6366f1;\n background: #f0f1ff;\n}\n\n.icon-btn.selected[_ngcontent-%COMP%] {\n border-color: #6366f1;\n background: #6366f1;\n color: #ffffff;\n}\n\n.icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.icon-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n}\n\n.preview-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\n}\n\n\n\n.panel-footer[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-top: 1px solid #e5e7eb;\n background: #f8fafc;\n}\n\n.footer-left[_ngcontent-%COMP%], \n.footer-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-primary[_ngcontent-%COMP%], \n.btn-secondary[_ngcontent-%COMP%], \n.btn-delete[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: #6366f1;\n color: #ffffff;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #4f46e5;\n}\n\n.btn-primary[_ngcontent-%COMP%]:disabled {\n background: #c7d2fe;\n cursor: not-allowed;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: #ffffff;\n color: #475569;\n border: 1px solid #d1d5db;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #f1f5f9;\n border-color: #94a3b8;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-delete[_ngcontent-%COMP%] {\n background: transparent;\n color: #dc2626;\n padding: 10px 16px;\n}\n\n.btn-delete[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #fef2f2;\n}\n\n.btn-delete[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n@media (max-width: 768px) {\n .edit-panel[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n\n .panel-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .header-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .panel-body[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n .icon-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(4, 1fr);\n }\n\n .panel-footer[_ngcontent-%COMP%] {\n padding: 14px 20px;\n flex-direction: column-reverse;\n gap: 12px;\n }\n\n .footer-left[_ngcontent-%COMP%], \n .footer-right[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .footer-right[_ngcontent-%COMP%] {\n flex-direction: row;\n }\n\n .footer-right[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%], \n .footer-right[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n .btn-delete[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n background: #fef2f2;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header[_ngcontent-%COMP%] {\n padding: 14px 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n gap: 12px;\n }\n\n .header-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 16px;\n border-radius: 10px;\n }\n\n .header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .header-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .panel-body[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .icon-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .preview-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .panel-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .btn-primary[_ngcontent-%COMP%], \n .btn-secondary[_ngcontent-%COMP%] {\n padding: 10px 16px;\n font-size: 13px;\n }\n}\n\n\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n.fa-spin[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}"], changeDetection: 0 });
440
+ }
441
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialCategoryEditPanelComponent, [{
442
+ type: Component,
443
+ args: [{ selector: 'mj-credential-category-edit-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"panel-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\">\n <div class=\"edit-panel\" [class.open]=\"isOpen\">\n <!-- Panel Header -->\n <div class=\"panel-header\">\n <div class=\"header-content\">\n <div class=\"header-icon\" [style.backgroundColor]=\"'#6366f1' + '15'\" [style.color]=\"'#6366f1'\">\n <i [class]=\"iconClass || 'fa-solid fa-folder'\"></i>\n </div>\n <div class=\"header-text\">\n <h2>{{panelTitle}}</h2>\n <span class=\"header-subtitle\" *ngIf=\"parentId\">\n Under: {{getParentPath(parentId)}}\n </span>\n <span class=\"header-subtitle\" *ngIf=\"!parentId\">Root category</span>\n </div>\n </div>\n <button class=\"close-btn\" (click)=\"closePanel()\" [disabled]=\"isSaving\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Body -->\n <div class=\"panel-body\">\n <mj-loading *ngIf=\"isLoading\" text=\"Loading...\"></mj-loading>\n\n <form *ngIf=\"!isLoading\" class=\"category-form\" (submit)=\"$event.preventDefault(); save()\">\n <!-- Basic Info Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Basic Information\n </h3>\n\n <div class=\"form-group\">\n <label for=\"categoryName\" class=\"required\">Name</label>\n <input\n type=\"text\"\n id=\"categoryName\"\n name=\"categoryName\"\n [(ngModel)]=\"name\"\n placeholder=\"e.g., Production, Development, API Keys\"\n [disabled]=\"isSaving\"\n required\n />\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryParent\">Parent Category</label>\n <select\n id=\"categoryParent\"\n name=\"categoryParent\"\n [(ngModel)]=\"parentId\"\n [disabled]=\"isSaving\"\n >\n <option [ngValue]=\"''\">No parent (root category)</option>\n <option *ngFor=\"let cat of availableParentCategories\" [ngValue]=\"cat.ID\">\n {{getParentPath(cat.ID)}}\n </option>\n </select>\n <span class=\"field-hint\">Select a parent to create a subcategory</span>\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryDescription\">Description</label>\n <textarea\n id=\"categoryDescription\"\n name=\"categoryDescription\"\n [(ngModel)]=\"description\"\n placeholder=\"Optional description of this category...\"\n rows=\"3\"\n [disabled]=\"isSaving\"\n ></textarea>\n </div>\n </div>\n\n <!-- Icon Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-icons\"></i>\n Icon\n </h3>\n\n <div class=\"form-group\">\n <label for=\"categoryIcon\">Custom Icon Class</label>\n <input\n type=\"text\"\n id=\"categoryIcon\"\n name=\"categoryIcon\"\n [(ngModel)]=\"iconClass\"\n placeholder=\"e.g., fa-solid fa-folder\"\n [disabled]=\"isSaving\"\n />\n <span class=\"field-hint\">Font Awesome icon class</span>\n </div>\n\n <div class=\"icon-suggestions\">\n <p class=\"suggestions-label\">Quick pick:</p>\n <div class=\"icon-grid\">\n <button\n type=\"button\"\n class=\"icon-btn\"\n *ngFor=\"let suggestion of iconSuggestions\"\n [class.selected]=\"iconClass === suggestion.icon\"\n (click)=\"selectIcon(suggestion.icon)\"\n [disabled]=\"isSaving\"\n [title]=\"suggestion.label\"\n >\n <i [class]=\"suggestion.icon\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"icon-preview\" *ngIf=\"iconClass\">\n <div class=\"preview-label\">Preview:</div>\n <div class=\"preview-icon\">\n <i [class]=\"iconClass\"></i>\n </div>\n </div>\n </div>\n </form>\n </div>\n\n <!-- Panel Footer -->\n <div class=\"panel-footer\">\n <div class=\"footer-left\">\n <button\n class=\"btn-delete\"\n *ngIf=\"!isNew\"\n (click)=\"deleteCategory()\"\n [disabled]=\"isSaving\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n <span>Delete</span>\n </button>\n </div>\n <div class=\"footer-right\">\n <button\n class=\"btn-secondary\"\n (click)=\"closePanel()\"\n [disabled]=\"isSaving\"\n >\n Cancel\n </button>\n <button\n class=\"btn-primary\"\n (click)=\"save()\"\n [disabled]=\"isSaving || !canSave\"\n >\n <i class=\"fa-solid fa-spinner fa-spin\" *ngIf=\"isSaving\"></i>\n <i class=\"fa-solid fa-check\" *ngIf=\"!isSaving\"></i>\n <span>{{isNew ? 'Create' : 'Save'}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* Panel Backdrop */\n.panel-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n justify-content: flex-end;\n animation: fadeIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* Slide-in Panel */\n.edit-panel {\n width: 100%;\n max-width: 500px;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n animation: slideIn 0.3s ease-out forwards;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n/* Panel Header */\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);\n}\n\n.header-content {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-icon {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.header-text h2 {\n font-size: 18px;\n font-weight: 600;\n color: #1e293b;\n margin: 0 0 4px 0;\n}\n\n.header-subtitle {\n font-size: 13px;\n color: #64748b;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n border: none;\n background: #f1f5f9;\n border-radius: 8px;\n cursor: pointer;\n color: #64748b;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n}\n\n.close-btn:hover:not(:disabled) {\n background: #e2e8f0;\n color: #334155;\n}\n\n.close-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Panel Body */\n.panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n/* Form Sections */\n.form-section {\n margin-bottom: 28px;\n}\n\n.form-section:last-child {\n margin-bottom: 0;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 600;\n color: #334155;\n margin: 0 0 16px 0;\n padding-bottom: 10px;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.section-title i {\n color: #6366f1;\n font-size: 14px;\n}\n\n/* Form Groups */\n.form-group {\n margin-bottom: 18px;\n}\n\n.form-group:last-child {\n margin-bottom: 0;\n}\n\n.form-group label {\n display: block;\n font-size: 13px;\n font-weight: 500;\n color: #475569;\n margin-bottom: 6px;\n}\n\n.form-group label.required::after {\n content: '*';\n color: #ef4444;\n margin-left: 4px;\n}\n\n.form-group input[type=\"text\"],\n.form-group select,\n.form-group textarea {\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n font-size: 14px;\n color: #1e293b;\n background: #ffffff;\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n.form-group input:focus,\n.form-group select:focus,\n.form-group textarea:focus {\n outline: none;\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-group input:disabled,\n.form-group select:disabled,\n.form-group textarea:disabled {\n background: #f8fafc;\n color: #94a3b8;\n cursor: not-allowed;\n}\n\n.form-group textarea {\n resize: vertical;\n min-height: 80px;\n}\n\n.form-group select {\n cursor: pointer;\n}\n\n.field-hint {\n display: block;\n font-size: 12px;\n color: #94a3b8;\n margin-top: 5px;\n}\n\n/* Icon Suggestions */\n.icon-suggestions {\n margin-top: 16px;\n}\n\n.suggestions-label {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n margin: 0 0 10px 0;\n}\n\n.icon-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n gap: 8px;\n}\n\n.icon-btn {\n width: 100%;\n aspect-ratio: 1;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: #64748b;\n transition: all 0.15s ease;\n}\n\n.icon-btn:hover:not(:disabled) {\n border-color: #6366f1;\n color: #6366f1;\n background: #f0f1ff;\n}\n\n.icon-btn.selected {\n border-color: #6366f1;\n background: #6366f1;\n color: #ffffff;\n}\n\n.icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Icon Preview */\n.icon-preview {\n margin-top: 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n}\n\n.preview-icon {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\n}\n\n/* Panel Footer */\n.panel-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-top: 1px solid #e5e7eb;\n background: #f8fafc;\n}\n\n.footer-left,\n.footer-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-primary,\n.btn-secondary,\n.btn-delete {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: #6366f1;\n color: #ffffff;\n}\n\n.btn-primary:hover:not(:disabled) {\n background: #4f46e5;\n}\n\n.btn-primary:disabled {\n background: #c7d2fe;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n background: #ffffff;\n color: #475569;\n border: 1px solid #d1d5db;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #f1f5f9;\n border-color: #94a3b8;\n}\n\n.btn-secondary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-delete {\n background: transparent;\n color: #dc2626;\n padding: 10px 16px;\n}\n\n.btn-delete:hover:not(:disabled) {\n background: #fef2f2;\n}\n\n.btn-delete:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Mobile Responsiveness */\n@media (max-width: 768px) {\n .edit-panel {\n max-width: 100%;\n }\n\n .panel-header {\n padding: 16px 20px;\n }\n\n .header-icon {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .header-text h2 {\n font-size: 16px;\n }\n\n .panel-body {\n padding: 20px;\n }\n\n .icon-grid {\n grid-template-columns: repeat(4, 1fr);\n }\n\n .panel-footer {\n padding: 14px 20px;\n flex-direction: column-reverse;\n gap: 12px;\n }\n\n .footer-left,\n .footer-right {\n width: 100%;\n }\n\n .footer-right {\n flex-direction: row;\n }\n\n .footer-right .btn-primary,\n .footer-right .btn-secondary {\n flex: 1;\n justify-content: center;\n }\n\n .btn-delete {\n width: 100%;\n justify-content: center;\n background: #fef2f2;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header {\n padding: 14px 16px;\n }\n\n .header-content {\n gap: 12px;\n }\n\n .header-icon {\n width: 36px;\n height: 36px;\n font-size: 16px;\n border-radius: 10px;\n }\n\n .header-text h2 {\n font-size: 15px;\n }\n\n .header-subtitle {\n font-size: 12px;\n }\n\n .panel-body {\n padding: 16px;\n }\n\n .icon-grid {\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n }\n\n .icon-btn {\n font-size: 14px;\n }\n\n .preview-icon {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .panel-footer {\n padding: 12px 16px;\n }\n\n .btn-primary,\n .btn-secondary {\n padding: 10px 16px;\n font-size: 13px;\n }\n}\n\n/* Custom scrollbar */\n.panel-body::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-body::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.panel-body::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n}\n\n.panel-body::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n/* Animations */\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n.fa-spin {\n animation: spin 1s linear infinite;\n}\n"] }]
444
+ }], () => [{ type: i0.ChangeDetectorRef }], { category: [{
445
+ type: Input
446
+ }], isOpen: [{
447
+ type: Input
448
+ }], close: [{
449
+ type: Output
450
+ }], saved: [{
451
+ type: Output
452
+ }], deleted: [{
453
+ type: Output
454
+ }] }); })();
455
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialCategoryEditPanelComponent, { className: "CredentialCategoryEditPanelComponent" }); })();
456
+ //# sourceMappingURL=credential-category-edit-panel.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-category-edit-panel.component.js","sourceRoot":"","sources":["../../../src/Credentials/components/credential-category-edit-panel.component.ts","../../../src/Credentials/components/credential-category-edit-panel.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { EventEmitter, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
2
+ import { CredentialEntity, CredentialTypeEntity, CredentialCategoryEntity } from '@memberjunction/core-entities';
3
+ import * as i0 from "@angular/core";
4
+ export declare function LoadCredentialEditPanel(): void;
5
+ interface FieldSchemaProperty {
6
+ name: string;
7
+ type: string;
8
+ title: string;
9
+ description: string;
10
+ isSecret: boolean;
11
+ required: boolean;
12
+ order: number;
13
+ }
14
+ interface CredentialValues {
15
+ [key: string]: string | number | boolean;
16
+ }
17
+ export declare class CredentialEditPanelComponent implements OnInit, OnDestroy {
18
+ private cdr;
19
+ credential: CredentialEntity | null;
20
+ credentialTypes: CredentialTypeEntity[];
21
+ isOpen: boolean;
22
+ close: EventEmitter<void>;
23
+ saved: EventEmitter<CredentialEntity>;
24
+ deleted: EventEmitter<string>;
25
+ isLoading: boolean;
26
+ isSaving: boolean;
27
+ isNew: boolean;
28
+ categories: CredentialCategoryEntity[];
29
+ name: string;
30
+ description: string;
31
+ selectedTypeId: string;
32
+ selectedCategoryId: string;
33
+ isActive: boolean;
34
+ isDefault: boolean;
35
+ expiresAt: Date | null;
36
+ credentialValues: CredentialValues;
37
+ schemaFields: FieldSchemaProperty[];
38
+ showSecretFields: Set<string>;
39
+ private _metadata;
40
+ constructor(cdr: ChangeDetectorRef);
41
+ ngOnInit(): void;
42
+ ngOnDestroy(): void;
43
+ get selectedType(): CredentialTypeEntity | null;
44
+ get panelTitle(): string;
45
+ get canSave(): boolean;
46
+ open(credential: CredentialEntity | null, preselectedTypeId?: string, preselectedCategoryId?: string): Promise<void>;
47
+ private resetForm;
48
+ private populateFromCredential;
49
+ private loadCategories;
50
+ onTypeChange(): void;
51
+ toggleSecretVisibility(fieldName: string): void;
52
+ isSecretVisible(fieldName: string): boolean;
53
+ save(): Promise<void>;
54
+ deleteCredential(): Promise<void>;
55
+ closePanel(): void;
56
+ onBackdropClick(event: MouseEvent): void;
57
+ get groupedCredentialTypes(): Array<{
58
+ category: string;
59
+ types: CredentialTypeEntity[];
60
+ }>;
61
+ getTypeIcon(type: CredentialTypeEntity): string;
62
+ getTypeColor(type: CredentialTypeEntity): string;
63
+ onValueChange(fieldName: string, value: string): void;
64
+ formatDateForInput(date: Date | null): string;
65
+ onExpiresAtChange(value: string): void;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<CredentialEditPanelComponent, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<CredentialEditPanelComponent, "mj-credential-edit-panel", never, { "credential": { "alias": "credential"; "required": false; }; "credentialTypes": { "alias": "credentialTypes"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "close": "close"; "saved": "saved"; "deleted": "deleted"; }, never, never, false, never>;
68
+ }
69
+ export {};
70
+ //# sourceMappingURL=credential-edit-panel.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-edit-panel.component.d.ts","sourceRoot":"","sources":["../../../src/Credentials/components/credential-edit-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,iBAAiB,EAA2B,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtI,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAIjH,wBAAgB,uBAAuB,SAEtC;AAED,UAAU,mBAAmB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,qBAMa,4BAA6B,YAAW,MAAM,EAAE,SAAS;IA8BtD,OAAO,CAAC,GAAG;IA7Bd,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC3C,eAAe,EAAE,oBAAoB,EAAE,CAAM;IAC7C,MAAM,UAAS;IAEd,KAAK,qBAA4B;IACjC,KAAK,iCAAwC;IAC7C,OAAO,uBAA8B;IAExC,SAAS,UAAS;IAClB,QAAQ,UAAS;IACjB,KAAK,UAAS;IACd,UAAU,EAAE,wBAAwB,EAAE,CAAM;IAG5C,IAAI,SAAM;IACV,WAAW,SAAM;IACjB,cAAc,SAAM;IACpB,kBAAkB,SAAM;IACxB,QAAQ,UAAQ;IAChB,SAAS,UAAS;IAClB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG9B,gBAAgB,EAAE,gBAAgB,CAAM;IACxC,YAAY,EAAE,mBAAmB,EAAE,CAAM;IACzC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEjD,OAAO,CAAC,SAAS,CAAkB;gBAEf,GAAG,EAAE,iBAAiB;IAE1C,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,IAAW,YAAY,IAAI,oBAAoB,GAAG,IAAI,CAErD;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,OAAO,IAAI,OAAO,CAW5B;IAEY,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjI,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,sBAAsB;YAuBhB,cAAc;IAkBrB,YAAY,IAAI,IAAI;IAyCpB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAS/C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DrB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvC,UAAU,IAAI,IAAI;IAQlB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAM/C,IAAW,sBAAsB,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC,CAU9F;IAEM,WAAW,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAY/C,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAYhD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrD,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAM7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;yCAxWpC,4BAA4B;2CAA5B,4BAA4B;CA4WxC"}