@memberjunction/ng-dashboards 3.3.0 → 4.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 (581) 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.d.ts +36 -5
  6. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-configuration.component.js +287 -141
  8. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  9. package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
  10. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  11. package/dist/AI/components/agents/agent-editor.component.js +149 -211
  12. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  13. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  14. package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
  15. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  16. package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
  17. package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
  18. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  19. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  20. package/dist/AI/components/charts/time-series-chart.component.js +6 -7
  21. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  22. package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
  23. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  24. package/dist/AI/components/execution-monitoring.component.js +33 -37
  25. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  26. package/dist/AI/components/models/model-management-v2.component.d.ts +96 -0
  27. package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
  28. package/dist/AI/components/models/model-management-v2.component.js +981 -0
  29. package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
  30. package/dist/AI/components/models/model-management.component.d.ts +26 -6
  31. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  32. package/dist/AI/components/models/model-management.component.js +216 -103
  33. package/dist/AI/components/models/model-management.component.js.map +1 -1
  34. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  35. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
  36. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  37. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
  38. package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
  39. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  40. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +97 -0
  41. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
  42. package/dist/AI/components/prompts/prompt-management-v2.component.js +811 -0
  43. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
  44. package/dist/AI/components/prompts/prompt-management.component.d.ts +26 -6
  45. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/prompts/prompt-management.component.js +164 -57
  47. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  49. package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
  50. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  51. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
  52. package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
  53. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  54. package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
  55. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.js +26 -27
  57. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  58. package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
  59. package/dist/AI/components/widgets/kpi-card.component.js +52 -42
  60. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  61. package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
  62. package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
  63. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  64. package/dist/APIKeys/api-applications-panel.component.d.ts +5 -5
  65. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  66. package/dist/APIKeys/api-applications-panel.component.js +242 -239
  67. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  68. package/dist/APIKeys/api-key-create-dialog.component.d.ts +4 -5
  69. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  70. package/dist/APIKeys/api-key-create-dialog.component.js +237 -217
  71. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  72. package/dist/APIKeys/api-key-edit-panel.component.d.ts +1 -3
  73. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  74. package/dist/APIKeys/api-key-edit-panel.component.js +268 -249
  75. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  76. package/dist/APIKeys/api-key-list.component.d.ts +2 -3
  77. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  78. package/dist/APIKeys/api-key-list.component.js +136 -133
  79. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  80. package/dist/APIKeys/api-keys-resource.component.d.ts +6 -6
  81. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  82. package/dist/APIKeys/api-keys-resource.component.js +335 -358
  83. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  84. package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
  85. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  86. package/dist/APIKeys/api-scopes-panel.component.js +151 -155
  87. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  88. package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
  89. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  90. package/dist/APIKeys/api-usage-panel.component.js +237 -234
  91. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  92. package/dist/Actions/actions-management-dashboard.component.d.ts +52 -0
  93. package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -0
  94. package/dist/Actions/actions-management-dashboard.component.js +308 -0
  95. package/dist/Actions/actions-management-dashboard.component.js.map +1 -0
  96. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  97. package/dist/Actions/components/actions-list-view.component.js +15 -14
  98. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  99. package/dist/Actions/components/actions-overview.component.d.ts +3 -6
  100. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  101. package/dist/Actions/components/actions-overview.component.js +17 -19
  102. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  103. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  104. package/dist/Actions/components/categories-list-view.component.js +6 -6
  105. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  106. package/dist/Actions/components/code-management.component.d.ts +0 -4
  107. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  108. package/dist/Actions/components/code-management.component.js +3 -9
  109. package/dist/Actions/components/code-management.component.js.map +1 -1
  110. package/dist/Actions/components/entity-integration.component.d.ts +0 -4
  111. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  112. package/dist/Actions/components/entity-integration.component.js +3 -9
  113. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  114. package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
  115. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  116. package/dist/Actions/components/execution-monitoring.component.js +13 -16
  117. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  118. package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
  119. package/dist/Actions/components/executions-list-view.component.js +3 -3
  120. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  121. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts +22 -0
  122. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -0
  123. package/dist/Actions/components/explorer/action-breadcrumb.component.js +139 -0
  124. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -0
  125. package/dist/Actions/components/explorer/action-card.component.d.ts +39 -0
  126. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -0
  127. package/dist/Actions/components/explorer/action-card.component.js +411 -0
  128. package/dist/Actions/components/explorer/action-card.component.js.map +1 -0
  129. package/dist/Actions/components/explorer/action-explorer.component.d.ts +58 -0
  130. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -0
  131. package/dist/Actions/components/explorer/action-explorer.component.js +523 -0
  132. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -0
  133. package/dist/Actions/components/explorer/action-list-item.component.d.ts +24 -0
  134. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -0
  135. package/dist/Actions/components/explorer/action-list-item.component.js +210 -0
  136. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -0
  137. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +63 -0
  138. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -0
  139. package/dist/Actions/components/explorer/action-toolbar.component.js +484 -0
  140. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -0
  141. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts +57 -0
  142. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -0
  143. package/dist/Actions/components/explorer/action-tree-panel.component.js +455 -0
  144. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -0
  145. package/dist/Actions/components/explorer/index.d.ts +9 -0
  146. package/dist/Actions/components/explorer/index.d.ts.map +1 -0
  147. package/dist/Actions/components/explorer/index.js +10 -0
  148. package/dist/Actions/components/explorer/index.js.map +1 -0
  149. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +49 -0
  150. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -0
  151. package/dist/Actions/components/explorer/new-action-panel.component.js +359 -0
  152. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -0
  153. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +37 -0
  154. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -0
  155. package/dist/Actions/components/explorer/new-category-panel.component.js +282 -0
  156. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -0
  157. package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
  158. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  159. package/dist/Actions/components/scheduled-actions.component.js +3 -9
  160. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  161. package/dist/Actions/components/security-permissions.component.d.ts +0 -4
  162. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  163. package/dist/Actions/components/security-permissions.component.js +3 -9
  164. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  165. package/dist/Actions/index.d.ts +2 -6
  166. package/dist/Actions/index.d.ts.map +1 -1
  167. package/dist/Actions/index.js +4 -7
  168. package/dist/Actions/index.js.map +1 -1
  169. package/dist/Actions/services/action-explorer-state.service.d.ts +104 -0
  170. package/dist/Actions/services/action-explorer-state.service.d.ts.map +1 -0
  171. package/dist/Actions/services/action-explorer-state.service.js +352 -0
  172. package/dist/Actions/services/action-explorer-state.service.js.map +1 -0
  173. package/dist/Communication/communication-dashboard.component.d.ts +2 -7
  174. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  175. package/dist/Communication/communication-dashboard.component.js +143 -107
  176. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  177. package/dist/Communication/communication-logs-resource.component.d.ts +10 -8
  178. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  179. package/dist/Communication/communication-logs-resource.component.js +270 -134
  180. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  181. package/dist/Communication/communication-monitor-resource.component.d.ts +38 -7
  182. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  183. package/dist/Communication/communication-monitor-resource.component.js +469 -186
  184. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  185. package/dist/Communication/communication-providers-resource.component.d.ts +16 -9
  186. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  187. package/dist/Communication/communication-providers-resource.component.js +262 -139
  188. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  189. package/dist/Communication/communication-runs-resource.component.d.ts +4 -6
  190. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  191. package/dist/Communication/communication-runs-resource.component.js +168 -159
  192. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  193. package/dist/Communication/communication-templates-resource.component.d.ts +39 -0
  194. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -0
  195. package/dist/Communication/communication-templates-resource.component.js +388 -0
  196. package/dist/Communication/communication-templates-resource.component.js.map +1 -0
  197. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +69 -271
  198. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  199. package/dist/ComponentStudio/component-studio-dashboard.component.js +705 -1808
  200. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  201. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +68 -0
  202. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -0
  203. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +400 -0
  204. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -0
  205. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  206. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
  207. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  208. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  209. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
  210. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  211. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts +44 -0
  212. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -0
  213. package/dist/ComponentStudio/components/browser/component-browser.component.js +638 -0
  214. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -0
  215. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts +35 -0
  216. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -0
  217. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +380 -0
  218. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -0
  219. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +24 -0
  220. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -0
  221. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +221 -0
  222. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -0
  223. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts +28 -0
  224. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -0
  225. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +263 -0
  226. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -0
  227. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts +34 -0
  228. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -0
  229. package/dist/ComponentStudio/components/editors/spec-editor.component.js +307 -0
  230. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -0
  231. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts +29 -0
  232. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -0
  233. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +159 -0
  234. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -0
  235. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts +20 -0
  236. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -0
  237. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +192 -0
  238. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -0
  239. package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
  240. package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
  241. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  242. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +57 -0
  243. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -0
  244. package/dist/ComponentStudio/components/workspace/component-preview.component.js +343 -0
  245. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -0
  246. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +15 -0
  247. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -0
  248. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +144 -0
  249. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -0
  250. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +203 -0
  251. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -0
  252. package/dist/ComponentStudio/services/component-studio-state.service.js +651 -0
  253. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -0
  254. package/dist/ComponentStudio/services/component-version.service.d.ts +120 -0
  255. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -0
  256. package/dist/ComponentStudio/services/component-version.service.js +394 -0
  257. package/dist/ComponentStudio/services/component-version.service.js.map +1 -0
  258. package/dist/Credentials/components/credential-category-edit-panel.component.js +1 -1
  259. package/dist/Credentials/components/credential-edit-panel.component.js +1 -1
  260. package/dist/Credentials/components/credential-type-edit-panel.component.js +1 -1
  261. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
  262. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  263. package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
  264. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  265. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +1 -2
  266. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  267. package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
  268. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  269. package/dist/Credentials/components/credentials-list-resource.component.d.ts +1 -2
  270. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  271. package/dist/Credentials/components/credentials-list-resource.component.js +252 -241
  272. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  273. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
  274. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  275. package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
  276. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  277. package/dist/Credentials/components/credentials-types-resource.component.d.ts +1 -2
  278. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  279. package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
  280. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  281. package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
  282. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  283. package/dist/Credentials/credentials-dashboard.component.js +31 -44
  284. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  285. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
  286. package/dist/Credentials/pipes/group-by.pipe.js +2 -1
  287. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  288. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
  289. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  290. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
  291. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  292. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  293. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
  294. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  295. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
  296. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
  297. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  298. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +2 -2
  299. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  300. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
  301. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  302. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
  303. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
  304. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
  305. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
  306. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  307. package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
  308. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  309. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +0 -4
  310. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  311. package/dist/DataExplorer/data-explorer-dashboard.component.js +49 -54
  312. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  313. package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
  314. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  315. package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
  316. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  317. package/dist/DataExplorer/index.d.ts +2 -2
  318. package/dist/DataExplorer/index.d.ts.map +1 -1
  319. package/dist/DataExplorer/index.js +2 -2
  320. package/dist/DataExplorer/index.js.map +1 -1
  321. package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
  322. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
  323. package/dist/EntityAdmin/components/entity-details.component.js +680 -0
  324. package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
  325. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
  326. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
  327. package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
  328. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
  329. package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
  330. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
  331. package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
  332. package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
  333. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
  334. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
  335. package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
  336. package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
  337. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
  338. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  339. package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
  340. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  341. package/dist/Home/home-application.d.ts +0 -5
  342. package/dist/Home/home-application.d.ts.map +1 -1
  343. package/dist/Home/home-application.js +0 -9
  344. package/dist/Home/home-application.js.map +1 -1
  345. package/dist/Home/home-dashboard.component.d.ts +0 -4
  346. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  347. package/dist/Home/home-dashboard.component.js +141 -139
  348. package/dist/Home/home-dashboard.component.js.map +1 -1
  349. package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
  350. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  351. package/dist/Lists/components/lists-browse-resource.component.js +761 -685
  352. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  353. package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
  354. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  355. package/dist/Lists/components/lists-categories-resource.component.js +340 -316
  356. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  357. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
  358. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  359. package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
  360. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  361. package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
  362. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  363. package/dist/Lists/components/lists-operations-resource.component.js +508 -455
  364. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  365. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  366. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
  367. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  368. package/dist/Lists/index.d.ts +0 -1
  369. package/dist/Lists/index.d.ts.map +1 -1
  370. package/dist/Lists/index.js +0 -11
  371. package/dist/Lists/index.js.map +1 -1
  372. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +68 -0
  373. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -0
  374. package/dist/MCP/components/mcp-connection-dialog.component.js +523 -0
  375. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -0
  376. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +73 -0
  377. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -0
  378. package/dist/MCP/components/mcp-log-detail-panel.component.js +533 -0
  379. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -0
  380. package/dist/MCP/components/mcp-server-dialog.component.d.ts +76 -0
  381. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -0
  382. package/dist/MCP/components/mcp-server-dialog.component.js +546 -0
  383. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -0
  384. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +267 -0
  385. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -0
  386. package/dist/MCP/components/mcp-test-tool-dialog.component.js +1300 -0
  387. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -0
  388. package/dist/MCP/index.d.ts +11 -0
  389. package/dist/MCP/index.d.ts.map +1 -0
  390. package/dist/MCP/index.js +15 -0
  391. package/dist/MCP/index.js.map +1 -0
  392. package/dist/MCP/mcp-dashboard.component.d.ts +467 -0
  393. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -0
  394. package/dist/MCP/mcp-dashboard.component.js +2765 -0
  395. package/dist/MCP/mcp-dashboard.component.js.map +1 -0
  396. package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
  397. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
  398. package/dist/MCP/mcp-filter-panel.component.js +288 -0
  399. package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
  400. package/dist/MCP/mcp-resource.component.d.ts +26 -0
  401. package/dist/MCP/mcp-resource.component.d.ts.map +1 -0
  402. package/dist/MCP/mcp-resource.component.js +54 -0
  403. package/dist/MCP/mcp-resource.component.js.map +1 -0
  404. package/dist/MCP/mcp.module.d.ts +24 -0
  405. package/dist/MCP/mcp.module.d.ts.map +1 -0
  406. package/dist/MCP/mcp.module.js +113 -0
  407. package/dist/MCP/mcp.module.js.map +1 -0
  408. package/dist/MCP/services/mcp-tools.service.d.ts +115 -0
  409. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -0
  410. package/dist/MCP/services/mcp-tools.service.js +221 -0
  411. package/dist/MCP/services/mcp-tools.service.js.map +1 -0
  412. package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
  413. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  414. package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
  415. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  416. package/dist/Scheduling/components/index.d.ts +5 -8
  417. package/dist/Scheduling/components/index.d.ts.map +1 -1
  418. package/dist/Scheduling/components/index.js +6 -9
  419. package/dist/Scheduling/components/index.js.map +1 -1
  420. package/dist/Scheduling/components/job-slideout.component.d.ts +45 -0
  421. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -0
  422. package/dist/Scheduling/components/job-slideout.component.js +459 -0
  423. package/dist/Scheduling/components/job-slideout.component.js.map +1 -0
  424. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +15 -0
  425. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -0
  426. package/dist/Scheduling/components/scheduling-activity-resource.component.js +45 -0
  427. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -0
  428. package/dist/Scheduling/components/scheduling-activity.component.d.ts +71 -0
  429. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -0
  430. package/dist/Scheduling/components/scheduling-activity.component.js +714 -0
  431. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -0
  432. package/dist/Scheduling/components/scheduling-health-resource.component.js +1 -1
  433. package/dist/Scheduling/components/scheduling-health.component.js +1 -1
  434. package/dist/Scheduling/components/scheduling-history-resource.component.js +1 -1
  435. package/dist/Scheduling/components/scheduling-history.component.js +1 -1
  436. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +3 -8
  437. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  438. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +5 -15
  439. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  440. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +52 -34
  441. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  442. package/dist/Scheduling/components/scheduling-jobs.component.js +452 -262
  443. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  444. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +1 -1
  445. package/dist/Scheduling/components/scheduling-monitoring.component.js +1 -1
  446. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +15 -0
  447. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -0
  448. package/dist/Scheduling/components/scheduling-overview-resource.component.js +45 -0
  449. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -0
  450. package/dist/Scheduling/components/scheduling-overview.component.d.ts +43 -0
  451. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -0
  452. package/dist/Scheduling/components/scheduling-overview.component.js +600 -0
  453. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -0
  454. package/dist/Scheduling/components/scheduling-types-resource.component.js +1 -1
  455. package/dist/Scheduling/components/scheduling-types.component.js +1 -1
  456. package/dist/Scheduling/scheduling-dashboard.component.d.ts +22 -33
  457. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  458. package/dist/Scheduling/scheduling-dashboard.component.js +173 -175
  459. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  460. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +49 -6
  461. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  462. package/dist/Scheduling/services/scheduling-instrumentation.service.js +218 -149
  463. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  464. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
  465. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  466. package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
  467. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  468. package/dist/Testing/components/index.d.ts +7 -8
  469. package/dist/Testing/components/index.d.ts.map +1 -1
  470. package/dist/Testing/components/index.js +8 -9
  471. package/dist/Testing/components/index.js.map +1 -1
  472. package/dist/Testing/components/testing-analytics-resource.component.d.ts +0 -4
  473. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  474. package/dist/Testing/components/testing-analytics-resource.component.js +3 -9
  475. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  476. package/dist/Testing/components/testing-analytics.component.d.ts +52 -37
  477. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  478. package/dist/Testing/components/testing-analytics.component.js +1024 -570
  479. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  480. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +16 -0
  481. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -0
  482. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +47 -0
  483. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -0
  484. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +57 -0
  485. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -0
  486. package/dist/Testing/components/testing-dashboard-tab.component.js +649 -0
  487. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -0
  488. package/dist/Testing/components/testing-execution-resource.component.js +1 -1
  489. package/dist/Testing/components/testing-execution.component.js +1 -1
  490. package/dist/Testing/components/testing-explorer-resource.component.d.ts +16 -0
  491. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -0
  492. package/dist/Testing/components/testing-explorer-resource.component.js +47 -0
  493. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -0
  494. package/dist/Testing/components/testing-explorer.component.d.ts +193 -0
  495. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -0
  496. package/dist/Testing/components/testing-explorer.component.js +2219 -0
  497. package/dist/Testing/components/testing-explorer.component.js.map +1 -0
  498. package/dist/Testing/components/testing-feedback-resource.component.js +1 -1
  499. package/dist/Testing/components/testing-feedback.component.js +1 -1
  500. package/dist/Testing/components/testing-overview-resource.component.js +1 -1
  501. package/dist/Testing/components/testing-overview.component.js +1 -1
  502. package/dist/Testing/components/testing-review-resource.component.d.ts +16 -0
  503. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -0
  504. package/dist/Testing/components/testing-review-resource.component.js +47 -0
  505. package/dist/Testing/components/testing-review-resource.component.js.map +1 -0
  506. package/dist/Testing/components/testing-review.component.d.ts +60 -0
  507. package/dist/Testing/components/testing-review.component.d.ts.map +1 -0
  508. package/dist/Testing/components/testing-review.component.js +985 -0
  509. package/dist/Testing/components/testing-review.component.js.map +1 -0
  510. package/dist/Testing/components/testing-runs-resource.component.d.ts +16 -0
  511. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -0
  512. package/dist/Testing/components/testing-runs-resource.component.js +47 -0
  513. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -0
  514. package/dist/Testing/components/testing-runs.component.d.ts +82 -0
  515. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -0
  516. package/dist/Testing/components/testing-runs.component.js +1067 -0
  517. package/dist/Testing/components/testing-runs.component.js.map +1 -0
  518. package/dist/Testing/components/testing-version-comparison.component.js +1 -1
  519. package/dist/Testing/components/testing-version-resource.component.js +1 -1
  520. package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
  521. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
  522. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  523. package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
  524. package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
  525. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  526. package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
  527. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
  528. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  529. package/dist/Testing/testing-dashboard.component.d.ts +12 -16
  530. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  531. package/dist/Testing/testing-dashboard.component.js +51 -72
  532. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  533. package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
  534. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
  535. package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
  536. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
  537. package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
  538. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
  539. package/dist/VersionHistory/components/graph-resource.component.js +521 -0
  540. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
  541. package/dist/VersionHistory/components/index.d.ts +5 -0
  542. package/dist/VersionHistory/components/index.d.ts.map +1 -0
  543. package/dist/VersionHistory/components/index.js +5 -0
  544. package/dist/VersionHistory/components/index.js.map +1 -0
  545. package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
  546. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
  547. package/dist/VersionHistory/components/labels-resource.component.js +968 -0
  548. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
  549. package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
  550. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
  551. package/dist/VersionHistory/components/restore-resource.component.js +472 -0
  552. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
  553. package/dist/VersionHistory/index.d.ts +2 -0
  554. package/dist/VersionHistory/index.d.ts.map +1 -0
  555. package/dist/VersionHistory/index.js +2 -0
  556. package/dist/VersionHistory/index.js.map +1 -0
  557. package/dist/generic/base-dashboard.d.ts +65 -0
  558. package/dist/generic/base-dashboard.d.ts.map +1 -0
  559. package/dist/generic/base-dashboard.js +74 -0
  560. package/dist/generic/base-dashboard.js.map +1 -0
  561. package/dist/module.d.ts +127 -104
  562. package/dist/module.d.ts.map +1 -1
  563. package/dist/module.js +221 -95
  564. package/dist/module.js.map +1 -1
  565. package/dist/public-api.d.ts +22 -19
  566. package/dist/public-api.d.ts.map +1 -1
  567. package/dist/public-api.js +28 -119
  568. package/dist/public-api.js.map +1 -1
  569. package/dist/shared/pipes/highlight-search.pipe.d.ts +17 -0
  570. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -0
  571. package/dist/shared/pipes/highlight-search.pipe.js +41 -0
  572. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -0
  573. package/dist/shared/pipes/index.d.ts +2 -0
  574. package/dist/shared/pipes/index.d.ts.map +1 -0
  575. package/dist/shared/pipes/index.js +2 -0
  576. package/dist/shared/pipes/index.js.map +1 -0
  577. package/dist/shared/shared-pipes.module.d.ts +11 -0
  578. package/dist/shared/shared-pipes.module.d.ts.map +1 -0
  579. package/dist/shared/shared-pipes.module.js +24 -0
  580. package/dist/shared/shared-pipes.module.js.map +1 -0
  581. package/package.json +65 -56
@@ -11,32 +11,32 @@ import { RunView, Metadata } from '@memberjunction/core';
11
11
  import { MJNotificationService } from '@memberjunction/ng-notifications';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@memberjunction/ng-shared";
14
- import * as i2 from "@angular/common";
15
- import * as i3 from "@angular/forms";
16
- import * as i4 from "@memberjunction/ng-shared-generic";
17
- import * as i5 from "./credential-type-edit-panel.component";
14
+ import * as i2 from "@angular/forms";
15
+ import * as i3 from "@memberjunction/ng-shared-generic";
16
+ import * as i4 from "@memberjunction/ng-credentials";
17
+ import * as i5 from "@angular/common";
18
18
  const _c0 = ["typeEditPanel"];
19
- function CredentialsTypesResourceComponent_mj_loading_1_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelement(0, "mj-loading", 5);
19
+ function CredentialsTypesResourceComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelement(0, "mj-loading", 2);
21
21
  } }
22
- function CredentialsTypesResourceComponent_ng_container_2_button_16_Template(rf, ctx) { if (rf & 1) {
22
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
23
23
  const _r3 = i0.ɵɵgetCurrentView();
24
- i0.ɵɵelementStart(0, "button", 35);
25
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.createNewType()); });
26
- i0.ɵɵelement(1, "i", 36);
24
+ i0.ɵɵelementStart(0, "button", 33);
25
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.createNewType()); });
26
+ i0.ɵɵelement(1, "i", 34);
27
27
  i0.ɵɵelementStart(2, "span");
28
28
  i0.ɵɵtext(3, "New Type");
29
29
  i0.ɵɵelementEnd()();
30
30
  } }
31
- function CredentialsTypesResourceComponent_ng_container_2_button_22_Template(rf, ctx) { if (rf & 1) {
31
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
32
32
  const _r5 = i0.ɵɵgetCurrentView();
33
- i0.ɵɵelementStart(0, "button", 37);
34
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_button_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onSearchChange("")); });
35
- i0.ɵɵelement(1, "i", 38);
33
+ i0.ɵɵelementStart(0, "button", 35);
34
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onSearchChange("")); });
35
+ i0.ɵɵelement(1, "i", 36);
36
36
  i0.ɵɵelementEnd();
37
37
  } }
38
- function CredentialsTypesResourceComponent_ng_container_2_option_26_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "option", 39);
38
+ function CredentialsTypesResourceComponent_Conditional_2_For_26_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "option", 22);
40
40
  i0.ɵɵtext(1);
41
41
  i0.ɵɵelementEnd();
42
42
  } if (rf & 2) {
@@ -45,8 +45,8 @@ function CredentialsTypesResourceComponent_ng_container_2_option_26_Template(rf,
45
45
  i0.ɵɵadvance();
46
46
  i0.ɵɵtextInterpolate(cat_r6);
47
47
  } }
48
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_div_6_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵelementStart(0, "div", 60);
48
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "div", 46);
50
50
  i0.ɵɵtext(1);
51
51
  i0.ɵɵpipe(2, "slice");
52
52
  i0.ɵɵelementEnd();
@@ -55,9 +55,9 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_
55
55
  i0.ɵɵadvance();
56
56
  i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind3(2, 2, type_r8.Description, 0, 60), "", type_r8.Description.length > 60 ? "..." : "", " ");
57
57
  } }
58
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_8_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelementStart(0, "span", 61);
60
- i0.ɵɵelement(1, "i", 13);
58
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_8_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "span", 48);
60
+ i0.ɵɵelement(1, "i", 11);
61
61
  i0.ɵɵtext(2);
62
62
  i0.ɵɵelementEnd();
63
63
  } if (rf & 2) {
@@ -65,9 +65,9 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_
65
65
  i0.ɵɵadvance(2);
66
66
  i0.ɵɵtextInterpolate1(" ", type_r8.credentialCount, " ");
67
67
  } }
68
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_9_Template(rf, ctx) { if (rf & 1) {
69
- i0.ɵɵelementStart(0, "span", 62);
70
- i0.ɵɵelement(1, "i", 63);
68
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵelementStart(0, "span", 49);
70
+ i0.ɵɵelement(1, "i", 56);
71
71
  i0.ɵɵtext(2);
72
72
  i0.ɵɵelementEnd();
73
73
  } if (rf & 2) {
@@ -75,9 +75,9 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_
75
75
  i0.ɵɵadvance(2);
76
76
  i0.ɵɵtextInterpolate1(" ", type_r8.activeCount, " active ");
77
77
  } }
78
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_10_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelementStart(0, "span", 64);
80
- i0.ɵɵelement(1, "i", 65);
78
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_10_Template(rf, ctx) { if (rf & 1) {
79
+ i0.ɵɵelementStart(0, "span", 50);
80
+ i0.ɵɵelement(1, "i", 57);
81
81
  i0.ɵɵtext(2);
82
82
  i0.ɵɵelementEnd();
83
83
  } if (rf & 2) {
@@ -85,45 +85,49 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_
85
85
  i0.ɵɵadvance(2);
86
86
  i0.ɵɵtextInterpolate1(" ", type_r8.expiringCount, " expiring ");
87
87
  } }
88
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_12_Template(rf, ctx) { if (rf & 1) {
88
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_12_Template(rf, ctx) { if (rf & 1) {
89
89
  const _r9 = i0.ɵɵgetCurrentView();
90
- i0.ɵɵelementStart(0, "button", 66);
91
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createCredentialForType(type_r8, $event)); });
92
- i0.ɵɵelement(1, "i", 36);
90
+ i0.ɵɵelementStart(0, "button", 58);
91
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createCredentialForType(type_r8, $event)); });
92
+ i0.ɵɵelement(1, "i", 34);
93
93
  i0.ɵɵelementEnd();
94
94
  } }
95
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_13_Template(rf, ctx) { if (rf & 1) {
95
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_13_Template(rf, ctx) { if (rf & 1) {
96
96
  const _r10 = i0.ɵɵgetCurrentView();
97
- i0.ɵɵelementStart(0, "button", 67);
98
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editType(type_r8, $event)); });
99
- i0.ɵɵelement(1, "i", 68);
97
+ i0.ɵɵelementStart(0, "button", 59);
98
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editType(type_r8, $event)); });
99
+ i0.ɵɵelement(1, "i", 60);
100
100
  i0.ɵɵelementEnd();
101
101
  } }
102
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_14_Template(rf, ctx) { if (rf & 1) {
102
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
103
103
  const _r11 = i0.ɵɵgetCurrentView();
104
- i0.ɵɵelementStart(0, "button", 69);
105
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_14_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.deleteType(type_r8, $event)); });
106
- i0.ɵɵelement(1, "i", 70);
104
+ i0.ɵɵelementStart(0, "button", 61);
105
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_14_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const type_r8 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.deleteType(type_r8, $event)); });
106
+ i0.ɵɵelement(1, "i", 62);
107
107
  i0.ɵɵelementEnd();
108
108
  } }
109
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_Template(rf, ctx) { if (rf & 1) {
109
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Template(rf, ctx) { if (rf & 1) {
110
110
  const _r7 = i0.ɵɵgetCurrentView();
111
- i0.ɵɵelementStart(0, "div", 46);
112
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_Template_div_click_0_listener() { const type_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.selectType(type_r8)); });
113
- i0.ɵɵelementStart(1, "div", 47);
111
+ i0.ɵɵelementStart(0, "div", 42);
112
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Template_div_click_0_listener() { const type_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.selectType(type_r8)); });
113
+ i0.ɵɵelementStart(1, "div", 43);
114
114
  i0.ɵɵelement(2, "i");
115
115
  i0.ɵɵelementEnd();
116
- i0.ɵɵelementStart(3, "div", 48)(4, "div", 49);
116
+ i0.ɵɵelementStart(3, "div", 44)(4, "div", 45);
117
117
  i0.ɵɵtext(5);
118
118
  i0.ɵɵelementEnd();
119
- i0.ɵɵtemplate(6, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_div_6_Template, 3, 6, "div", 50);
120
- i0.ɵɵelementStart(7, "div", 51);
121
- i0.ɵɵtemplate(8, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_8_Template, 3, 1, "span", 52)(9, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_9_Template, 3, 1, "span", 53)(10, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_span_10_Template, 3, 1, "span", 54);
119
+ i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_6_Template, 3, 6, "div", 46);
120
+ i0.ɵɵelementStart(7, "div", 47);
121
+ i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_8_Template, 3, 1, "span", 48);
122
+ i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_9_Template, 3, 1, "span", 49);
123
+ i0.ɵɵconditionalCreate(10, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_10_Template, 3, 1, "span", 50);
122
124
  i0.ɵɵelementEnd()();
123
- i0.ɵɵelementStart(11, "div", 55);
124
- i0.ɵɵtemplate(12, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_12_Template, 2, 0, "button", 56)(13, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_13_Template, 2, 0, "button", 57)(14, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_button_14_Template, 2, 0, "button", 58);
125
+ i0.ɵɵelementStart(11, "div", 51);
126
+ i0.ɵɵconditionalCreate(12, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_12_Template, 2, 0, "button", 52);
127
+ i0.ɵɵconditionalCreate(13, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_13_Template, 2, 0, "button", 53);
128
+ i0.ɵɵconditionalCreate(14, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Conditional_14_Template, 2, 0, "button", 54);
125
129
  i0.ɵɵelementEnd();
126
- i0.ɵɵelement(15, "i", 59);
130
+ i0.ɵɵelement(15, "i", 55);
127
131
  i0.ɵɵelementEnd();
128
132
  } if (rf & 2) {
129
133
  const type_r8 = ctx.$implicit;
@@ -136,38 +140,36 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_
136
140
  i0.ɵɵadvance(3);
137
141
  i0.ɵɵtextInterpolate(type_r8.Name);
138
142
  i0.ɵɵadvance();
139
- i0.ɵɵproperty("ngIf", type_r8.Description);
143
+ i0.ɵɵconditional(type_r8.Description ? 6 : -1);
140
144
  i0.ɵɵadvance(2);
141
- i0.ɵɵproperty("ngIf", type_r8.credentialCount > 0);
145
+ i0.ɵɵconditional(type_r8.credentialCount > 0 ? 8 : -1);
142
146
  i0.ɵɵadvance();
143
- i0.ɵɵproperty("ngIf", type_r8.activeCount > 0);
147
+ i0.ɵɵconditional(type_r8.activeCount > 0 ? 9 : -1);
144
148
  i0.ɵɵadvance();
145
- i0.ɵɵproperty("ngIf", type_r8.expiringCount > 0);
149
+ i0.ɵɵconditional(type_r8.expiringCount > 0 ? 10 : -1);
146
150
  i0.ɵɵadvance(2);
147
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanCreateCredential);
151
+ i0.ɵɵconditional(ctx_r3.UserCanCreateCredential ? 12 : -1);
148
152
  i0.ɵɵadvance();
149
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanUpdate);
153
+ i0.ɵɵconditional(ctx_r3.UserCanUpdate ? 13 : -1);
150
154
  i0.ɵɵadvance();
151
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanDelete && type_r8.credentialCount === 0);
155
+ i0.ɵɵconditional(ctx_r3.UserCanDelete && type_r8.credentialCount === 0 ? 14 : -1);
152
156
  } }
153
- function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_Template(rf, ctx) { if (rf & 1) {
154
- i0.ɵɵelementContainerStart(0);
155
- i0.ɵɵelementStart(1, "div", 40)(2, "div", 41);
156
- i0.ɵɵelement(3, "i");
157
- i0.ɵɵelementStart(4, "span", 42);
158
- i0.ɵɵtext(5);
157
+ function CredentialsTypesResourceComponent_Conditional_2_For_35_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "div", 29)(1, "div", 37);
159
+ i0.ɵɵelement(2, "i");
160
+ i0.ɵɵelementStart(3, "span", 38);
161
+ i0.ɵɵtext(4);
159
162
  i0.ɵɵelementEnd();
160
- i0.ɵɵelementStart(6, "span", 43);
161
- i0.ɵɵtext(7);
163
+ i0.ɵɵelementStart(5, "span", 39);
164
+ i0.ɵɵtext(6);
162
165
  i0.ɵɵelementEnd()();
163
- i0.ɵɵelementStart(8, "div", 44);
164
- i0.ɵɵtemplate(9, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_div_9_Template, 16, 16, "div", 45);
166
+ i0.ɵɵelementStart(7, "div", 40);
167
+ i0.ɵɵrepeaterCreate(8, CredentialsTypesResourceComponent_Conditional_2_For_35_For_9_Template, 16, 16, "div", 41, i0.ɵɵrepeaterTrackByIdentity);
165
168
  i0.ɵɵelementEnd()();
166
- i0.ɵɵelementContainerEnd();
167
169
  } if (rf & 2) {
168
170
  const entry_r12 = ctx.$implicit;
169
171
  const ctx_r3 = i0.ɵɵnextContext(2);
170
- i0.ɵɵadvance(2);
172
+ i0.ɵɵadvance();
171
173
  i0.ɵɵstyleProp("border-left-color", ctx_r3.getCategoryColor(entry_r12.key));
172
174
  i0.ɵɵadvance();
173
175
  i0.ɵɵclassMap(ctx_r3.getCategoryIcon(entry_r12.key));
@@ -177,60 +179,62 @@ function CredentialsTypesResourceComponent_ng_container_2_ng_container_34_Templa
177
179
  i0.ɵɵadvance(2);
178
180
  i0.ɵɵtextInterpolate(entry_r12.value.length);
179
181
  i0.ɵɵadvance(2);
180
- i0.ɵɵproperty("ngForOf", entry_r12.value);
182
+ i0.ɵɵrepeater(entry_r12.value);
181
183
  } }
182
- function CredentialsTypesResourceComponent_ng_container_2_div_36_p_5_Template(rf, ctx) { if (rf & 1) {
184
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_5_Template(rf, ctx) { if (rf & 1) {
183
185
  const _r13 = i0.ɵɵgetCurrentView();
184
186
  i0.ɵɵelementStart(0, "p");
185
187
  i0.ɵɵtext(1, " No types match your current filters. ");
186
- i0.ɵɵelementStart(2, "button", 74);
187
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_div_36_p_5_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r13); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.clearFilters()); });
188
+ i0.ɵɵelementStart(2, "button", 65);
189
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_5_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r13); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.clearFilters()); });
188
190
  i0.ɵɵtext(3, "Clear filters");
189
191
  i0.ɵɵelementEnd()();
190
192
  } }
191
- function CredentialsTypesResourceComponent_ng_container_2_div_36_p_6_Template(rf, ctx) { if (rf & 1) {
193
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_6_Template(rf, ctx) { if (rf & 1) {
192
194
  i0.ɵɵelementStart(0, "p");
193
195
  i0.ɵɵtext(1, " Get started by creating your first credential type. ");
194
196
  i0.ɵɵelementEnd();
195
197
  } }
196
- function CredentialsTypesResourceComponent_ng_container_2_div_36_button_7_Template(rf, ctx) { if (rf & 1) {
198
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_7_Template(rf, ctx) { if (rf & 1) {
197
199
  const _r14 = i0.ɵɵgetCurrentView();
198
- i0.ɵɵelementStart(0, "button", 35);
199
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_div_36_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createNewType()); });
200
- i0.ɵɵelement(1, "i", 36);
200
+ i0.ɵɵelementStart(0, "button", 33);
201
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createNewType()); });
202
+ i0.ɵɵelement(1, "i", 34);
201
203
  i0.ɵɵtext(2, " Create Type ");
202
204
  i0.ɵɵelementEnd();
203
205
  } }
204
- function CredentialsTypesResourceComponent_ng_container_2_div_36_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 71)(1, "div", 72);
206
- i0.ɵɵelement(2, "i", 73);
206
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵelementStart(0, "div", 30)(1, "div", 63);
208
+ i0.ɵɵelement(2, "i", 64);
207
209
  i0.ɵɵelementEnd();
208
210
  i0.ɵɵelementStart(3, "h3");
209
211
  i0.ɵɵtext(4, "No Credential Types Found");
210
212
  i0.ɵɵelementEnd();
211
- i0.ɵɵtemplate(5, CredentialsTypesResourceComponent_ng_container_2_div_36_p_5_Template, 4, 0, "p", 3)(6, CredentialsTypesResourceComponent_ng_container_2_div_36_p_6_Template, 2, 0, "p", 3)(7, CredentialsTypesResourceComponent_ng_container_2_div_36_button_7_Template, 3, 0, "button", 15);
213
+ i0.ɵɵconditionalCreate(5, CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_5_Template, 4, 0, "p");
214
+ i0.ɵɵconditionalCreate(6, CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_6_Template, 2, 0, "p");
215
+ i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Conditional_7_Template, 3, 0, "button", 13);
212
216
  i0.ɵɵelementEnd();
213
217
  } if (rf & 2) {
214
218
  const ctx_r3 = i0.ɵɵnextContext(2);
215
219
  i0.ɵɵadvance(5);
216
- i0.ɵɵproperty("ngIf", ctx_r3.searchText || ctx_r3.selectedCategoryFilter);
220
+ i0.ɵɵconditional(ctx_r3.searchText || ctx_r3.selectedCategoryFilter ? 5 : -1);
217
221
  i0.ɵɵadvance();
218
- i0.ɵɵproperty("ngIf", !ctx_r3.searchText && !ctx_r3.selectedCategoryFilter);
222
+ i0.ɵɵconditional(!ctx_r3.searchText && !ctx_r3.selectedCategoryFilter ? 6 : -1);
219
223
  i0.ɵɵadvance();
220
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanCreate && !ctx_r3.searchText && !ctx_r3.selectedCategoryFilter);
224
+ i0.ɵɵconditional(ctx_r3.UserCanCreate && !ctx_r3.searchText && !ctx_r3.selectedCategoryFilter ? 7 : -1);
221
225
  } }
222
- function CredentialsTypesResourceComponent_ng_container_2_div_37_button_11_Template(rf, ctx) { if (rf & 1) {
226
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_11_Template(rf, ctx) { if (rf & 1) {
223
227
  const _r16 = i0.ɵɵgetCurrentView();
224
- i0.ɵɵelementStart(0, "button", 97);
225
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_div_37_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editType(ctx_r3.selectedType)); });
226
- i0.ɵɵelement(1, "i", 68);
228
+ i0.ɵɵelementStart(0, "button", 87);
229
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.editType(ctx_r3.selectedType)); });
230
+ i0.ɵɵelement(1, "i", 60);
227
231
  i0.ɵɵelementEnd();
228
232
  } }
229
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_26_Template(rf, ctx) { if (rf & 1) {
230
- i0.ɵɵelementStart(0, "div", 98)(1, "div", 86);
233
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_26_Template(rf, ctx) { if (rf & 1) {
234
+ i0.ɵɵelementStart(0, "div", 79)(1, "div", 76);
231
235
  i0.ɵɵtext(2);
232
236
  i0.ɵɵelementEnd();
233
- i0.ɵɵelementStart(3, "div", 87);
237
+ i0.ɵɵelementStart(3, "div", 77);
234
238
  i0.ɵɵtext(4, "Expiring");
235
239
  i0.ɵɵelementEnd()();
236
240
  } if (rf & 2) {
@@ -238,8 +242,8 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_div_26_Template
238
242
  i0.ɵɵadvance(2);
239
243
  i0.ɵɵtextInterpolate(ctx_r3.selectedType.expiringCount);
240
244
  } }
241
- function CredentialsTypesResourceComponent_ng_container_2_div_37_p_27_Template(rf, ctx) { if (rf & 1) {
242
- i0.ɵɵelementStart(0, "p", 99);
245
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_27_Template(rf, ctx) { if (rf & 1) {
246
+ i0.ɵɵelementStart(0, "p", 80);
243
247
  i0.ɵɵtext(1);
244
248
  i0.ɵɵelementEnd();
245
249
  } if (rf & 2) {
@@ -247,19 +251,19 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_p_27_Template(r
247
251
  i0.ɵɵadvance();
248
252
  i0.ɵɵtextInterpolate1(" ", ctx_r3.selectedType.Description, " ");
249
253
  } }
250
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_span_7_Template(rf, ctx) { if (rf & 1) {
251
- i0.ɵɵelementStart(0, "span", 110);
252
- i0.ɵɵelement(1, "i", 111);
254
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
255
+ i0.ɵɵelementStart(0, "span", 93);
256
+ i0.ɵɵelement(1, "i", 96);
253
257
  i0.ɵɵtext(2, " Secret ");
254
258
  i0.ɵɵelementEnd();
255
259
  } }
256
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_span_8_Template(rf, ctx) { if (rf & 1) {
257
- i0.ɵɵelementStart(0, "span", 112);
260
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
261
+ i0.ɵɵelementStart(0, "span", 94);
258
262
  i0.ɵɵtext(1, "Required");
259
263
  i0.ɵɵelementEnd();
260
264
  } }
261
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_p_9_Template(rf, ctx) { if (rf & 1) {
262
- i0.ɵɵelementStart(0, "p", 113);
265
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
266
+ i0.ɵɵelementStart(0, "p", 95);
263
267
  i0.ɵɵtext(1);
264
268
  i0.ɵɵelementEnd();
265
269
  } if (rf & 2) {
@@ -267,16 +271,17 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_p_
267
271
  i0.ɵɵadvance();
268
272
  i0.ɵɵtextInterpolate1(" ", prop_r17.description, " ");
269
273
  } }
270
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_Template(rf, ctx) { if (rf & 1) {
271
- i0.ɵɵelementStart(0, "div", 102)(1, "div", 103)(2, "span", 104);
274
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Template(rf, ctx) { if (rf & 1) {
275
+ i0.ɵɵelementStart(0, "div", 88)(1, "div", 89)(2, "span", 90);
272
276
  i0.ɵɵtext(3);
273
277
  i0.ɵɵelementEnd();
274
- i0.ɵɵelementStart(4, "span", 105)(5, "span", 106);
278
+ i0.ɵɵelementStart(4, "span", 91)(5, "span", 92);
275
279
  i0.ɵɵtext(6);
276
280
  i0.ɵɵelementEnd();
277
- i0.ɵɵtemplate(7, CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_span_7_Template, 3, 0, "span", 107)(8, CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_span_8_Template, 2, 0, "span", 108);
281
+ i0.ɵɵconditionalCreate(7, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_7_Template, 3, 0, "span", 93);
282
+ i0.ɵɵconditionalCreate(8, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_8_Template, 2, 0, "span", 94);
278
283
  i0.ɵɵelementEnd()();
279
- i0.ɵɵtemplate(9, CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_p_9_Template, 2, 1, "p", 109);
284
+ i0.ɵɵconditionalCreate(9, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Conditional_9_Template, 2, 1, "p", 95);
280
285
  i0.ɵɵelementEnd();
281
286
  } if (rf & 2) {
282
287
  const prop_r17 = ctx.$implicit;
@@ -285,35 +290,35 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_Te
285
290
  i0.ɵɵadvance(3);
286
291
  i0.ɵɵtextInterpolate(prop_r17.type);
287
292
  i0.ɵɵadvance();
288
- i0.ɵɵproperty("ngIf", prop_r17.isSecret);
293
+ i0.ɵɵconditional(prop_r17.isSecret ? 7 : -1);
289
294
  i0.ɵɵadvance();
290
- i0.ɵɵproperty("ngIf", prop_r17.required);
295
+ i0.ɵɵconditional(prop_r17.required ? 8 : -1);
291
296
  i0.ɵɵadvance();
292
- i0.ɵɵproperty("ngIf", prop_r17.description);
297
+ i0.ɵɵconditional(prop_r17.description ? 9 : -1);
293
298
  } }
294
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_Template(rf, ctx) { if (rf & 1) {
295
- i0.ɵɵelementStart(0, "div", 100);
296
- i0.ɵɵtemplate(1, CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_div_1_Template, 10, 5, "div", 101);
299
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_Template(rf, ctx) { if (rf & 1) {
300
+ i0.ɵɵelementStart(0, "div", 83);
301
+ i0.ɵɵrepeaterCreate(1, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_For_2_Template, 10, 5, "div", 88, i0.ɵɵrepeaterTrackByIdentity);
297
302
  i0.ɵɵelementEnd();
298
303
  } if (rf & 2) {
299
304
  const ctx_r3 = i0.ɵɵnextContext(3);
300
305
  i0.ɵɵadvance();
301
- i0.ɵɵproperty("ngForOf", ctx_r3.schemaProperties);
306
+ i0.ɵɵrepeater(ctx_r3.schemaProperties);
302
307
  } }
303
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_33_Template(rf, ctx) { if (rf & 1) {
304
- i0.ɵɵelementStart(0, "div", 114);
305
- i0.ɵɵelement(1, "i", 115);
308
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_33_Template(rf, ctx) { if (rf & 1) {
309
+ i0.ɵɵelementStart(0, "div", 84);
310
+ i0.ɵɵelement(1, "i", 97);
306
311
  i0.ɵɵelementStart(2, "span");
307
312
  i0.ɵɵtext(3, "No fields defined in schema");
308
313
  i0.ɵɵelementEnd()();
309
314
  } }
310
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_34_Template(rf, ctx) { if (rf & 1) {
311
- i0.ɵɵelementStart(0, "div", 116)(1, "h3");
312
- i0.ɵɵelement(2, "i", 117);
315
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_34_Template(rf, ctx) { if (rf & 1) {
316
+ i0.ɵɵelementStart(0, "div", 85)(1, "h3");
317
+ i0.ɵɵelement(2, "i", 98);
313
318
  i0.ɵɵtext(3, " Validation ");
314
319
  i0.ɵɵelementEnd();
315
- i0.ɵɵelementStart(4, "div", 118);
316
- i0.ɵɵelement(5, "i", 119);
320
+ i0.ɵɵelementStart(4, "div", 99);
321
+ i0.ɵɵelement(5, "i", 100);
317
322
  i0.ɵɵelementStart(6, "span");
318
323
  i0.ɵɵtext(7);
319
324
  i0.ɵɵelementEnd()()();
@@ -322,54 +327,56 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_div_34_Template
322
327
  i0.ɵɵadvance(7);
323
328
  i0.ɵɵtextInterpolate(ctx_r3.selectedType.ValidationEndpoint);
324
329
  } }
325
- function CredentialsTypesResourceComponent_ng_container_2_div_37_div_35_Template(rf, ctx) { if (rf & 1) {
330
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_35_Template(rf, ctx) { if (rf & 1) {
326
331
  const _r18 = i0.ɵɵgetCurrentView();
327
- i0.ɵɵelementStart(0, "div", 120)(1, "button", 35);
328
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_div_37_div_35_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r18); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createCredentialForType(ctx_r3.selectedType)); });
329
- i0.ɵɵelement(2, "i", 36);
332
+ i0.ɵɵelementStart(0, "div", 86)(1, "button", 33);
333
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_35_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r18); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.createCredentialForType(ctx_r3.selectedType)); });
334
+ i0.ɵɵelement(2, "i", 34);
330
335
  i0.ɵɵtext(3, " Create Credential ");
331
336
  i0.ɵɵelementEnd()();
332
337
  } }
333
- function CredentialsTypesResourceComponent_ng_container_2_div_37_Template(rf, ctx) { if (rf & 1) {
338
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Template(rf, ctx) { if (rf & 1) {
334
339
  const _r15 = i0.ɵɵgetCurrentView();
335
- i0.ɵɵelementStart(0, "div", 75)(1, "div", 76)(2, "div", 77);
340
+ i0.ɵɵelementStart(0, "div", 31)(1, "div", 66)(2, "div", 67);
336
341
  i0.ɵɵelement(3, "i");
337
342
  i0.ɵɵelementEnd();
338
- i0.ɵɵelementStart(4, "div", 78)(5, "h2");
343
+ i0.ɵɵelementStart(4, "div", 68)(5, "h2");
339
344
  i0.ɵɵtext(6);
340
345
  i0.ɵɵelementEnd();
341
- i0.ɵɵelementStart(7, "span", 79);
346
+ i0.ɵɵelementStart(7, "span", 69);
342
347
  i0.ɵɵelement(8, "i");
343
348
  i0.ɵɵtext(9);
344
349
  i0.ɵɵelementEnd()();
345
- i0.ɵɵelementStart(10, "div", 80);
346
- i0.ɵɵtemplate(11, CredentialsTypesResourceComponent_ng_container_2_div_37_button_11_Template, 2, 0, "button", 81);
347
- i0.ɵɵelementStart(12, "button", 82);
348
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_div_37_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r15); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.closeDetail()); });
349
- i0.ɵɵelement(13, "i", 38);
350
+ i0.ɵɵelementStart(10, "div", 70);
351
+ i0.ɵɵconditionalCreate(11, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_11_Template, 2, 0, "button", 71);
352
+ i0.ɵɵelementStart(12, "button", 72);
353
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r15); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.closeDetail()); });
354
+ i0.ɵɵelement(13, "i", 36);
350
355
  i0.ɵɵelementEnd()()();
351
- i0.ɵɵelementStart(14, "div", 83)(15, "div", 84)(16, "div", 85)(17, "div", 86);
356
+ i0.ɵɵelementStart(14, "div", 73)(15, "div", 74)(16, "div", 75)(17, "div", 76);
352
357
  i0.ɵɵtext(18);
353
358
  i0.ɵɵelementEnd();
354
- i0.ɵɵelementStart(19, "div", 87);
359
+ i0.ɵɵelementStart(19, "div", 77);
355
360
  i0.ɵɵtext(20, "Credentials");
356
361
  i0.ɵɵelementEnd()();
357
- i0.ɵɵelementStart(21, "div", 88)(22, "div", 86);
362
+ i0.ɵɵelementStart(21, "div", 78)(22, "div", 76);
358
363
  i0.ɵɵtext(23);
359
364
  i0.ɵɵelementEnd();
360
- i0.ɵɵelementStart(24, "div", 87);
365
+ i0.ɵɵelementStart(24, "div", 77);
361
366
  i0.ɵɵtext(25, "Active");
362
367
  i0.ɵɵelementEnd()();
363
- i0.ɵɵtemplate(26, CredentialsTypesResourceComponent_ng_container_2_div_37_div_26_Template, 5, 1, "div", 89);
368
+ i0.ɵɵconditionalCreate(26, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_26_Template, 5, 1, "div", 79);
364
369
  i0.ɵɵelementEnd();
365
- i0.ɵɵtemplate(27, CredentialsTypesResourceComponent_ng_container_2_div_37_p_27_Template, 2, 1, "p", 90);
366
- i0.ɵɵelementStart(28, "div", 91)(29, "h3");
367
- i0.ɵɵelement(30, "i", 92);
370
+ i0.ɵɵconditionalCreate(27, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_27_Template, 2, 1, "p", 80);
371
+ i0.ɵɵelementStart(28, "div", 81)(29, "h3");
372
+ i0.ɵɵelement(30, "i", 82);
368
373
  i0.ɵɵtext(31, " Field Schema ");
369
374
  i0.ɵɵelementEnd();
370
- i0.ɵɵtemplate(32, CredentialsTypesResourceComponent_ng_container_2_div_37_div_32_Template, 2, 1, "div", 93)(33, CredentialsTypesResourceComponent_ng_container_2_div_37_div_33_Template, 4, 0, "div", 94);
375
+ i0.ɵɵconditionalCreate(32, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_32_Template, 3, 0, "div", 83);
376
+ i0.ɵɵconditionalCreate(33, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_33_Template, 4, 0, "div", 84);
371
377
  i0.ɵɵelementEnd();
372
- i0.ɵɵtemplate(34, CredentialsTypesResourceComponent_ng_container_2_div_37_div_34_Template, 8, 1, "div", 95)(35, CredentialsTypesResourceComponent_ng_container_2_div_37_div_35_Template, 4, 0, "div", 96);
378
+ i0.ɵɵconditionalCreate(34, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_34_Template, 8, 1, "div", 85);
379
+ i0.ɵɵconditionalCreate(35, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Conditional_35_Template, 4, 0, "div", 86);
373
380
  i0.ɵɵelementEnd()();
374
381
  } if (rf & 2) {
375
382
  const ctx_r3 = i0.ɵɵnextContext(2);
@@ -386,27 +393,27 @@ function CredentialsTypesResourceComponent_ng_container_2_div_37_Template(rf, ct
386
393
  i0.ɵɵadvance();
387
394
  i0.ɵɵtextInterpolate1(" ", ctx_r3.selectedType.Category, " ");
388
395
  i0.ɵɵadvance(2);
389
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanUpdate);
396
+ i0.ɵɵconditional(ctx_r3.UserCanUpdate ? 11 : -1);
390
397
  i0.ɵɵadvance(7);
391
398
  i0.ɵɵtextInterpolate(ctx_r3.selectedType.credentialCount);
392
399
  i0.ɵɵadvance(5);
393
400
  i0.ɵɵtextInterpolate(ctx_r3.selectedType.activeCount);
394
401
  i0.ɵɵadvance(3);
395
- i0.ɵɵproperty("ngIf", ctx_r3.selectedType.expiringCount > 0);
402
+ i0.ɵɵconditional(ctx_r3.selectedType.expiringCount > 0 ? 26 : -1);
396
403
  i0.ɵɵadvance();
397
- i0.ɵɵproperty("ngIf", ctx_r3.selectedType.Description);
404
+ i0.ɵɵconditional(ctx_r3.selectedType.Description ? 27 : -1);
398
405
  i0.ɵɵadvance(5);
399
- i0.ɵɵproperty("ngIf", ctx_r3.schemaProperties.length > 0);
406
+ i0.ɵɵconditional(ctx_r3.schemaProperties.length > 0 ? 32 : -1);
400
407
  i0.ɵɵadvance();
401
- i0.ɵɵproperty("ngIf", ctx_r3.schemaProperties.length === 0);
408
+ i0.ɵɵconditional(ctx_r3.schemaProperties.length === 0 ? 33 : -1);
402
409
  i0.ɵɵadvance();
403
- i0.ɵɵproperty("ngIf", ctx_r3.selectedType.ValidationEndpoint);
410
+ i0.ɵɵconditional(ctx_r3.selectedType.ValidationEndpoint ? 34 : -1);
404
411
  i0.ɵɵadvance();
405
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanCreateCredential);
412
+ i0.ɵɵconditional(ctx_r3.UserCanCreateCredential ? 35 : -1);
406
413
  } }
407
- function CredentialsTypesResourceComponent_ng_container_2_div_38_Template(rf, ctx) { if (rf & 1) {
408
- i0.ɵɵelementStart(0, "div", 121)(1, "div", 122);
409
- i0.ɵɵelement(2, "i", 123);
414
+ function CredentialsTypesResourceComponent_Conditional_2_Conditional_39_Template(rf, ctx) { if (rf & 1) {
415
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 101);
416
+ i0.ɵɵelement(2, "i", 102);
410
417
  i0.ɵɵelementEnd();
411
418
  i0.ɵɵelementStart(3, "h3");
412
419
  i0.ɵɵtext(4, "Select a Credential Type");
@@ -415,88 +422,84 @@ function CredentialsTypesResourceComponent_ng_container_2_div_38_Template(rf, ct
415
422
  i0.ɵɵtext(6, "Click on a credential type to view its details and field schema");
416
423
  i0.ɵɵelementEnd()();
417
424
  } }
418
- function CredentialsTypesResourceComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
425
+ function CredentialsTypesResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
419
426
  const _r2 = i0.ɵɵgetCurrentView();
420
- i0.ɵɵelementContainerStart(0);
421
- i0.ɵɵelementStart(1, "div", 6)(2, "div", 7)(3, "h2", 8);
422
- i0.ɵɵtext(4, "Credential Types");
427
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "h2", 6);
428
+ i0.ɵɵtext(3, "Credential Types");
423
429
  i0.ɵɵelementEnd();
424
- i0.ɵɵelementStart(5, "div", 9)(6, "span", 10);
425
- i0.ɵɵelement(7, "i", 11);
426
- i0.ɵɵtext(8);
430
+ i0.ɵɵelementStart(4, "div", 7)(5, "span", 8);
431
+ i0.ɵɵelement(6, "i", 9);
432
+ i0.ɵɵtext(7);
427
433
  i0.ɵɵelementEnd();
428
- i0.ɵɵelementStart(9, "span", 10);
429
- i0.ɵɵelement(10, "i", 12);
430
- i0.ɵɵtext(11);
434
+ i0.ɵɵelementStart(8, "span", 8);
435
+ i0.ɵɵelement(9, "i", 10);
436
+ i0.ɵɵtext(10);
431
437
  i0.ɵɵelementEnd();
432
- i0.ɵɵelementStart(12, "span", 10);
433
- i0.ɵɵelement(13, "i", 13);
434
- i0.ɵɵtext(14);
438
+ i0.ɵɵelementStart(11, "span", 8);
439
+ i0.ɵɵelement(12, "i", 11);
440
+ i0.ɵɵtext(13);
435
441
  i0.ɵɵelementEnd()()();
436
- i0.ɵɵelementStart(15, "div", 14);
437
- i0.ɵɵtemplate(16, CredentialsTypesResourceComponent_ng_container_2_button_16_Template, 4, 0, "button", 15);
442
+ i0.ɵɵelementStart(14, "div", 12);
443
+ i0.ɵɵconditionalCreate(15, CredentialsTypesResourceComponent_Conditional_2_Conditional_15_Template, 4, 0, "button", 13);
438
444
  i0.ɵɵelementEnd()();
439
- i0.ɵɵelementStart(17, "div", 16)(18, "div", 17)(19, "div", 18);
440
- i0.ɵɵelement(20, "i", 19);
441
- i0.ɵɵelementStart(21, "input", 20);
442
- i0.ɵɵlistener("input", function CredentialsTypesResourceComponent_ng_container_2_Template_input_input_21_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSearchChange($event.target.value)); });
445
+ i0.ɵɵelementStart(16, "div", 14)(17, "div", 15)(18, "div", 16);
446
+ i0.ɵɵelement(19, "i", 17);
447
+ i0.ɵɵelementStart(20, "input", 18);
448
+ i0.ɵɵlistener("input", function CredentialsTypesResourceComponent_Conditional_2_Template_input_input_20_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onSearchChange($event.target.value)); });
443
449
  i0.ɵɵelementEnd();
444
- i0.ɵɵtemplate(22, CredentialsTypesResourceComponent_ng_container_2_button_22_Template, 2, 0, "button", 21);
450
+ i0.ɵɵconditionalCreate(21, CredentialsTypesResourceComponent_Conditional_2_Conditional_21_Template, 2, 0, "button", 19);
445
451
  i0.ɵɵelementEnd();
446
- i0.ɵɵelementStart(23, "select", 22);
447
- i0.ɵɵlistener("change", function CredentialsTypesResourceComponent_ng_container_2_Template_select_change_23_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCategoryFilterChange($event.target.value)); });
448
- i0.ɵɵelementStart(24, "option", 23);
449
- i0.ɵɵtext(25, "All Categories");
452
+ i0.ɵɵelementStart(22, "select", 20);
453
+ i0.ɵɵlistener("change", function CredentialsTypesResourceComponent_Conditional_2_Template_select_change_22_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onCategoryFilterChange($event.target.value)); });
454
+ i0.ɵɵelementStart(23, "option", 21);
455
+ i0.ɵɵtext(24, "All Categories");
450
456
  i0.ɵɵelementEnd();
451
- i0.ɵɵtemplate(26, CredentialsTypesResourceComponent_ng_container_2_option_26_Template, 2, 2, "option", 24);
457
+ i0.ɵɵrepeaterCreate(25, CredentialsTypesResourceComponent_Conditional_2_For_26_Template, 2, 2, "option", 22, i0.ɵɵrepeaterTrackByIdentity);
452
458
  i0.ɵɵelementEnd()();
453
- i0.ɵɵelementStart(27, "div", 25)(28, "div", 26);
459
+ i0.ɵɵelementStart(27, "div", 23)(28, "div", 24);
454
460
  i0.ɵɵtext(29);
455
461
  i0.ɵɵelementEnd();
456
- i0.ɵɵelementStart(30, "button", 27);
457
- i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_ng_container_2_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.refresh()); });
458
- i0.ɵɵelement(31, "i", 28);
462
+ i0.ɵɵelementStart(30, "button", 25);
463
+ i0.ɵɵlistener("click", function CredentialsTypesResourceComponent_Conditional_2_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.refresh()); });
464
+ i0.ɵɵelement(31, "i", 26);
459
465
  i0.ɵɵelementEnd()()();
460
- i0.ɵɵelementStart(32, "div", 29)(33, "div", 30);
461
- i0.ɵɵtemplate(34, CredentialsTypesResourceComponent_ng_container_2_ng_container_34_Template, 10, 9, "ng-container", 31);
462
- i0.ɵɵpipe(35, "keyvalue");
463
- i0.ɵɵtemplate(36, CredentialsTypesResourceComponent_ng_container_2_div_36_Template, 8, 3, "div", 32);
466
+ i0.ɵɵelementStart(32, "div", 27)(33, "div", 28);
467
+ i0.ɵɵrepeaterCreate(34, CredentialsTypesResourceComponent_Conditional_2_For_35_Template, 10, 8, "div", 29, i0.ɵɵrepeaterTrackByIdentity);
468
+ i0.ɵɵpipe(36, "keyvalue");
469
+ i0.ɵɵconditionalCreate(37, CredentialsTypesResourceComponent_Conditional_2_Conditional_37_Template, 8, 3, "div", 30);
464
470
  i0.ɵɵelementEnd();
465
- i0.ɵɵtemplate(37, CredentialsTypesResourceComponent_ng_container_2_div_37_Template, 36, 23, "div", 33)(38, CredentialsTypesResourceComponent_ng_container_2_div_38_Template, 7, 0, "div", 34);
471
+ i0.ɵɵconditionalCreate(38, CredentialsTypesResourceComponent_Conditional_2_Conditional_38_Template, 36, 23, "div", 31);
472
+ i0.ɵɵconditionalCreate(39, CredentialsTypesResourceComponent_Conditional_2_Conditional_39_Template, 7, 0, "div", 32);
466
473
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementContainerEnd();
468
474
  } if (rf & 2) {
469
475
  const ctx_r3 = i0.ɵɵnextContext();
470
- i0.ɵɵadvance(8);
476
+ i0.ɵɵadvance(7);
471
477
  i0.ɵɵtextInterpolate1(" ", ctx_r3.types.length, " types ");
472
478
  i0.ɵɵadvance(3);
473
479
  i0.ɵɵtextInterpolate1(" ", ctx_r3.categories.length, " categories ");
474
480
  i0.ɵɵadvance(3);
475
481
  i0.ɵɵtextInterpolate1(" ", ctx_r3.getTotalCredentialCount(), " credentials ");
476
482
  i0.ɵɵadvance(2);
477
- i0.ɵɵproperty("ngIf", ctx_r3.UserCanCreate);
483
+ i0.ɵɵconditional(ctx_r3.UserCanCreate ? 15 : -1);
478
484
  i0.ɵɵadvance(5);
479
485
  i0.ɵɵproperty("value", ctx_r3.searchText);
480
486
  i0.ɵɵadvance();
481
- i0.ɵɵproperty("ngIf", ctx_r3.searchText);
487
+ i0.ɵɵconditional(ctx_r3.searchText ? 21 : -1);
482
488
  i0.ɵɵadvance();
483
489
  i0.ɵɵproperty("value", ctx_r3.selectedCategoryFilter);
484
490
  i0.ɵɵadvance(3);
485
- i0.ɵɵproperty("ngForOf", ctx_r3.categories);
486
- i0.ɵɵadvance(3);
491
+ i0.ɵɵrepeater(ctx_r3.categories);
492
+ i0.ɵɵadvance(4);
487
493
  i0.ɵɵtextInterpolate2(" ", ctx_r3.filteredTypes.length, " of ", ctx_r3.types.length, " types ");
488
494
  i0.ɵɵadvance(5);
489
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(35, 14, ctx_r3.getTypesByCategory()));
490
- i0.ɵɵadvance(2);
491
- i0.ɵɵproperty("ngIf", ctx_r3.filteredTypes.length === 0);
495
+ i0.ɵɵrepeater(i0.ɵɵpipeBind1(36, 12, ctx_r3.getTypesByCategory()));
496
+ i0.ɵɵadvance(3);
497
+ i0.ɵɵconditional(ctx_r3.filteredTypes.length === 0 ? 37 : -1);
492
498
  i0.ɵɵadvance();
493
- i0.ɵɵproperty("ngIf", ctx_r3.selectedType);
499
+ i0.ɵɵconditional(ctx_r3.selectedType ? 38 : -1);
494
500
  i0.ɵɵadvance();
495
- i0.ɵɵproperty("ngIf", !ctx_r3.selectedType && ctx_r3.filteredTypes.length > 0);
501
+ i0.ɵɵconditional(!ctx_r3.selectedType && ctx_r3.filteredTypes.length > 0 ? 39 : -1);
496
502
  } }
497
- export function LoadCredentialsTypesResource() {
498
- // Prevents tree-shaking
499
- }
500
503
  let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent extends BaseResourceComponent {
501
504
  cdr;
502
505
  navigationService;
@@ -838,20 +841,21 @@ let CredentialsTypesResourceComponent = class CredentialsTypesResourceComponent
838
841
  } if (rf & 2) {
839
842
  let _t;
840
843
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.typeEditPanel = _t.first);
841
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [["typeEditPanel", ""], [1, "types-container"], ["text", "Loading credential types...", 4, "ngIf"], [4, "ngIf"], [3, "saved", "deleted"], ["text", "Loading credential types..."], [1, "types-header"], [1, "header-info"], [1, "types-title"], [1, "header-stats"], [1, "stat-item"], [1, "fa-solid", "fa-shapes"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-key"], [1, "header-actions"], ["class", "btn-primary", 3, "click", 4, "ngIf"], [1, "toolbar"], [1, "toolbar-left"], [1, "search-container"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search types...", 3, "input", "value"], ["class", "search-clear", 3, "click", 4, "ngIf"], [1, "filter-select", 3, "change", "value"], ["value", ""], [3, "value", 4, "ngFor", "ngForOf"], [1, "toolbar-right"], [1, "results-info"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "types-layout"], [1, "types-list"], [4, "ngFor", "ngForOf"], ["class", "empty-state", 4, "ngIf"], ["class", "type-detail", 4, "ngIf"], ["class", "no-selection", 4, "ngIf"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "search-clear", 3, "click"], [1, "fa-solid", "fa-times"], [3, "value"], [1, "category-section"], [1, "category-header"], [1, "category-name"], [1, "count"], [1, "type-items"], ["class", "type-item", 3, "selected", "click", 4, "ngFor", "ngForOf"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-info"], [1, "type-name"], ["class", "type-description", 4, "ngIf"], [1, "type-meta"], ["class", "meta-badge", 4, "ngIf"], ["class", "meta-badge active", 4, "ngIf"], ["class", "meta-badge warning", 4, "ngIf"], [1, "type-actions"], ["class", "action-btn", "title", "Add Credential", 3, "click", 4, "ngIf"], ["class", "action-btn", "title", "Edit Type", 3, "click", 4, "ngIf"], ["class", "action-btn danger", "title", "Delete Type", 3, "click", 4, "ngIf"], [1, "fa-solid", "fa-chevron-right", "arrow"], [1, "type-description"], [1, "meta-badge"], [1, "meta-badge", "active"], [1, "fa-solid", "fa-check"], [1, "meta-badge", "warning"], [1, "fa-solid", "fa-clock"], ["title", "Add Credential", 1, "action-btn", 3, "click"], ["title", "Edit Type", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["title", "Delete Type", 1, "action-btn", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "empty-state"], [1, "empty-icon"], [1, "fa-solid", "fa-cubes"], [1, "btn-link", 3, "click"], [1, "type-detail"], [1, "detail-header"], [1, "detail-icon"], [1, "detail-title"], [1, "category-badge"], [1, "detail-actions"], ["class", "action-btn", "title", "Edit", 3, "click", 4, "ngIf"], [1, "close-btn", 3, "click"], [1, "detail-body"], [1, "detail-stats"], [1, "detail-stat"], [1, "stat-value"], [1, "stat-label"], [1, "detail-stat", "active"], ["class", "detail-stat warning", 4, "ngIf"], ["class", "description", 4, "ngIf"], [1, "schema-section"], [1, "fa-solid", "fa-list-check"], ["class", "field-list", 4, "ngIf"], ["class", "no-fields", 4, "ngIf"], ["class", "validation-section", 4, "ngIf"], ["class", "detail-quick-actions", 4, "ngIf"], ["title", "Edit", 1, "action-btn", 3, "click"], [1, "detail-stat", "warning"], [1, "description"], [1, "field-list"], ["class", "field-item", 4, "ngFor", "ngForOf"], [1, "field-item"], [1, "field-header"], [1, "field-name"], [1, "field-badges"], [1, "badge", "type"], ["class", "badge secret", 4, "ngIf"], ["class", "badge required", 4, "ngIf"], ["class", "field-description", 4, "ngIf"], [1, "badge", "secret"], [1, "fa-solid", "fa-lock"], [1, "badge", "required"], [1, "field-description"], [1, "no-fields"], [1, "fa-solid", "fa-info-circle"], [1, "validation-section"], [1, "fa-solid", "fa-check-circle"], [1, "validation-endpoint"], [1, "fa-solid", "fa-link"], [1, "detail-quick-actions"], [1, "no-selection"], [1, "no-selection-icon"], [1, "fa-solid", "fa-hand-pointer"]], template: function CredentialsTypesResourceComponent_Template(rf, ctx) { if (rf & 1) {
844
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [["typeEditPanel", ""], [1, "types-container"], ["text", "Loading credential types..."], [3, "saved", "deleted"], [1, "types-header"], [1, "header-info"], [1, "types-title"], [1, "header-stats"], [1, "stat-item"], [1, "fa-solid", "fa-shapes"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-key"], [1, "header-actions"], [1, "btn-primary"], [1, "toolbar"], [1, "toolbar-left"], [1, "search-container"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search types...", 3, "input", "value"], [1, "search-clear"], [1, "filter-select", 3, "change", "value"], ["value", ""], [3, "value"], [1, "toolbar-right"], [1, "results-info"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "types-layout"], [1, "types-list"], [1, "category-section"], [1, "empty-state"], [1, "type-detail"], [1, "no-selection"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "search-clear", 3, "click"], [1, "fa-solid", "fa-times"], [1, "category-header"], [1, "category-name"], [1, "count"], [1, "type-items"], [1, "type-item", 3, "selected"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-info"], [1, "type-name"], [1, "type-description"], [1, "type-meta"], [1, "meta-badge"], [1, "meta-badge", "active"], [1, "meta-badge", "warning"], [1, "type-actions"], ["title", "Add Credential", 1, "action-btn"], ["title", "Edit Type", 1, "action-btn"], ["title", "Delete Type", 1, "action-btn", "danger"], [1, "fa-solid", "fa-chevron-right", "arrow"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-clock"], ["title", "Add Credential", 1, "action-btn", 3, "click"], ["title", "Edit Type", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["title", "Delete Type", 1, "action-btn", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "empty-icon"], [1, "fa-solid", "fa-cubes"], [1, "btn-link", 3, "click"], [1, "detail-header"], [1, "detail-icon"], [1, "detail-title"], [1, "category-badge"], [1, "detail-actions"], ["title", "Edit", 1, "action-btn"], [1, "close-btn", 3, "click"], [1, "detail-body"], [1, "detail-stats"], [1, "detail-stat"], [1, "stat-value"], [1, "stat-label"], [1, "detail-stat", "active"], [1, "detail-stat", "warning"], [1, "description"], [1, "schema-section"], [1, "fa-solid", "fa-list-check"], [1, "field-list"], [1, "no-fields"], [1, "validation-section"], [1, "detail-quick-actions"], ["title", "Edit", 1, "action-btn", 3, "click"], [1, "field-item"], [1, "field-header"], [1, "field-name"], [1, "field-badges"], [1, "badge", "type"], [1, "badge", "secret"], [1, "badge", "required"], [1, "field-description"], [1, "fa-solid", "fa-lock"], [1, "fa-solid", "fa-info-circle"], [1, "fa-solid", "fa-check-circle"], [1, "validation-endpoint"], [1, "fa-solid", "fa-link"], [1, "no-selection-icon"], [1, "fa-solid", "fa-hand-pointer"]], template: function CredentialsTypesResourceComponent_Template(rf, ctx) { if (rf & 1) {
842
845
  const _r1 = i0.ɵɵgetCurrentView();
843
846
  i0.ɵɵelementStart(0, "div", 1);
844
- i0.ɵɵtemplate(1, CredentialsTypesResourceComponent_mj_loading_1_Template, 1, 0, "mj-loading", 2)(2, CredentialsTypesResourceComponent_ng_container_2_Template, 39, 16, "ng-container", 3);
847
+ i0.ɵɵconditionalCreate(1, CredentialsTypesResourceComponent_Conditional_1_Template, 1, 0, "mj-loading", 2);
848
+ i0.ɵɵconditionalCreate(2, CredentialsTypesResourceComponent_Conditional_2_Template, 40, 14);
845
849
  i0.ɵɵelementEnd();
846
- i0.ɵɵelementStart(3, "mj-credential-type-edit-panel", 4, 0);
850
+ i0.ɵɵelementStart(3, "mj-credential-type-edit-panel", 3, 0);
847
851
  i0.ɵɵlistener("saved", function CredentialsTypesResourceComponent_Template_mj_credential_type_edit_panel_saved_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTypeSaved($event)); })("deleted", function CredentialsTypesResourceComponent_Template_mj_credential_type_edit_panel_deleted_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTypeDeleted($event)); });
848
852
  i0.ɵɵelementEnd();
849
853
  } if (rf & 2) {
850
854
  i0.ɵɵadvance();
851
- i0.ɵɵproperty("ngIf", ctx.isLoading);
855
+ i0.ɵɵconditional(ctx.isLoading ? 1 : -1);
852
856
  i0.ɵɵadvance();
853
- i0.ɵɵproperty("ngIf", !ctx.isLoading);
854
- } }, dependencies: [i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.LoadingComponent, i5.CredentialTypeEditPanelComponent, i2.SlicePipe, i2.KeyValuePipe], styles: [".types-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--page-background, #f8fafc);\n}\n\n\n\n.types-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n\n\n.toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--card-background, #ffffff);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n background: var(--input-background, #f9fafb);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n margin-right: 8px;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--border-color, #e5e7eb);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n}\n\n.search-clear[_ngcontent-%COMP%]:hover {\n background: var(--text-secondary, #6b7280);\n color: white;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--input-background, #ffffff);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--button-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #f3f4f6);\n color: var(--accent-color, #6366f1);\n}\n\n\n\n.types-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n\n\n.types-list[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.category-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--text-secondary, #6b7280);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--accent-color, #6366f1);\n background: var(--header-background, #f9fafb);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.category-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n background: white;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--item-background, #ffffff);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f8fafc);\n border-color: var(--border-color, #e5e7eb);\n}\n\n.type-item.selected[_ngcontent-%COMP%] {\n background: linear-gradient(to right, rgba(99, 102, 241, 0.05), white);\n border-color: var(--accent-color, #6366f1);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.type-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #9ca3af);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.meta-badge.active[_ngcontent-%COMP%] {\n background: #d1fae5;\n color: #059669;\n}\n\n.meta-badge.warning[_ngcontent-%COMP%] {\n background: #fef3c7;\n color: #d97706;\n}\n\n.type-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover .type-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--input-background, #f3f4f6);\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ef4444;\n}\n\n.arrow[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n}\n\n\n\n.type-detail[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 26px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.category-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-background, #f3f4f6);\n border-radius: 8px;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--stat-background, #f9fafb);\n border-radius: 12px;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n.detail-stat.active[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.05) 100%);\n}\n\n.detail-stat.active[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: #059669;\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(217, 119, 6, 0.05) 100%);\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: #d97706;\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--description-background, #f9fafb);\n border-radius: 10px;\n}\n\n.schema-section[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 16px 0;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.field-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n border: 1px solid var(--border-color, #e5e7eb);\n transition: all 0.2s ease;\n}\n\n.field-item[_ngcontent-%COMP%]:hover {\n border-color: var(--accent-color, #6366f1);\n background: var(--field-hover, #f3f4f6);\n}\n\n.field-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.field-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type[_ngcontent-%COMP%] {\n background: var(--type-badge, #e5e7eb);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge.secret[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n color: #b45309;\n}\n\n.badge.secret[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 3px;\n}\n\n.badge.required[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);\n color: #b91c1c;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.no-fields[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--endpoint-background, #f9fafb);\n border-radius: 10px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--border-color, #e5e7eb);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n\n\n@media (max-width: 1024px) {\n .types-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .types-list[_ngcontent-%COMP%] {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .types-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .search-container[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-select[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n\n .detail-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n}"], changeDetection: 0 });
857
+ i0.ɵɵconditional(!ctx.isLoading ? 2 : -1);
858
+ } }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.LoadingComponent, i4.CredentialTypeEditPanelComponent, i5.SlicePipe, i5.KeyValuePipe], styles: [".types-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--page-background, #f8fafc);\n}\n\n\n\n.types-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n\n\n.toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--card-background, #ffffff);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n background: var(--input-background, #f9fafb);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n margin-right: 8px;\n}\n\n.search-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--border-color, #e5e7eb);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n}\n\n.search-clear[_ngcontent-%COMP%]:hover {\n background: var(--text-secondary, #6b7280);\n color: white;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--input-background, #ffffff);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--button-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #f3f4f6);\n color: var(--accent-color, #6366f1);\n}\n\n\n\n.types-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n\n\n.types-list[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.category-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--text-secondary, #6b7280);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--accent-color, #6366f1);\n background: var(--header-background, #f9fafb);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.category-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n background: white;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--item-background, #ffffff);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n background: var(--item-hover, #f8fafc);\n border-color: var(--border-color, #e5e7eb);\n}\n\n.type-item.selected[_ngcontent-%COMP%] {\n background: linear-gradient(to right, rgba(99, 102, 241, 0.05), white);\n border-color: var(--accent-color, #6366f1);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.type-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.type-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.type-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #9ca3af);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.meta-badge.active[_ngcontent-%COMP%] {\n background: #d1fae5;\n color: #059669;\n}\n\n.meta-badge.warning[_ngcontent-%COMP%] {\n background: #fef3c7;\n color: #d97706;\n}\n\n.type-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover .type-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--input-background, #f3f4f6);\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ef4444;\n}\n\n.arrow[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n}\n\n\n\n.type-detail[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 26px;\n}\n\n.detail-title[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.detail-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.category-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-background, #f3f4f6);\n border-radius: 8px;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.detail-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.detail-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-stat[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--stat-background, #f9fafb);\n border-radius: 12px;\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n}\n\n.detail-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n.detail-stat.active[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.05) 100%);\n}\n\n.detail-stat.active[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: #059669;\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(217, 119, 6, 0.05) 100%);\n}\n\n.detail-stat.warning[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n color: #d97706;\n}\n\n.description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--description-background, #f9fafb);\n border-radius: 10px;\n}\n\n.schema-section[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 16px 0;\n}\n\n.schema-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.validation-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.field-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n border: 1px solid var(--border-color, #e5e7eb);\n transition: all 0.2s ease;\n}\n\n.field-item[_ngcontent-%COMP%]:hover {\n border-color: var(--accent-color, #6366f1);\n background: var(--field-hover, #f3f4f6);\n}\n\n.field-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.field-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type[_ngcontent-%COMP%] {\n background: var(--type-badge, #e5e7eb);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge.secret[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n color: #b45309;\n}\n\n.badge.secret[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 3px;\n}\n\n.badge.required[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);\n color: #b91c1c;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.no-fields[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--endpoint-background, #f9fafb);\n border-radius: 10px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--border-color, #e5e7eb);\n}\n\n.validation-endpoint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--accent-color, #6366f1);\n}\n\n.detail-quick-actions[_ngcontent-%COMP%] {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n\n\n@media (max-width: 1024px) {\n .types-layout[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .types-list[_ngcontent-%COMP%] {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .types-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .search-container[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-select[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n\n .detail-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n}"], changeDetection: 0 });
855
859
  };
856
860
  CredentialsTypesResourceComponent = __decorate([
857
861
  RegisterClass(BaseResourceComponent, 'CredentialsTypesResource')
@@ -859,10 +863,10 @@ CredentialsTypesResourceComponent = __decorate([
859
863
  export { CredentialsTypesResourceComponent };
860
864
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialsTypesResourceComponent, [{
861
865
  type: Component,
862
- args: [{ selector: 'mj-credentials-types-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"types-container\">\n <mj-loading *ngIf=\"isLoading\" text=\"Loading credential types...\"></mj-loading>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Header -->\n <div class=\"types-header\">\n <div class=\"header-info\">\n <h2 class=\"types-title\">Credential Types</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{types.length}} types\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-folder\"></i>\n {{categories.length}} categories\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-key\"></i>\n {{getTotalCredentialCount()}} credentials\n </span>\n </div>\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-primary\" *ngIf=\"UserCanCreate\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Type</span>\n </button>\n </div>\n </div>\n\n <!-- Toolbar -->\n <div class=\"toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search types...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n <button class=\"search-clear\" *ngIf=\"searchText\" (click)=\"onSearchChange('')\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <select\n class=\"filter-select\"\n [value]=\"selectedCategoryFilter\"\n (change)=\"onCategoryFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Categories</option>\n <option *ngFor=\"let cat of categories\" [value]=\"cat\">{{cat}}</option>\n </select>\n </div>\n\n <div class=\"toolbar-right\">\n <div class=\"results-info\">\n {{filteredTypes.length}} of {{types.length}} types\n </div>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"types-layout\">\n <!-- Types List -->\n <div class=\"types-list\">\n <ng-container *ngFor=\"let entry of getTypesByCategory() | keyvalue\">\n <div class=\"category-section\">\n <div class=\"category-header\" [style.borderLeftColor]=\"getCategoryColor(entry.key)\">\n <i [class]=\"getCategoryIcon(entry.key)\" [style.color]=\"getCategoryColor(entry.key)\"></i>\n <span class=\"category-name\">{{entry.key}}</span>\n <span class=\"count\">{{entry.value.length}}</span>\n </div>\n\n <div class=\"type-items\">\n <div\n class=\"type-item\"\n *ngFor=\"let type of entry.value\"\n [class.selected]=\"selectedType?.ID === type.ID\"\n (click)=\"selectType(type)\"\n >\n <div class=\"type-icon\" [style.backgroundColor]=\"getCategoryColor(type.Category) + '15'\" [style.color]=\"getCategoryColor(type.Category)\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n <div class=\"type-description\" *ngIf=\"type.Description\">\n {{type.Description | slice:0:60}}{{type.Description.length > 60 ? '...' : ''}}\n </div>\n <div class=\"type-meta\">\n <span class=\"meta-badge\" *ngIf=\"type.credentialCount > 0\">\n <i class=\"fa-solid fa-key\"></i>\n {{type.credentialCount}}\n </span>\n <span class=\"meta-badge active\" *ngIf=\"type.activeCount > 0\">\n <i class=\"fa-solid fa-check\"></i>\n {{type.activeCount}} active\n </span>\n <span class=\"meta-badge warning\" *ngIf=\"type.expiringCount > 0\">\n <i class=\"fa-solid fa-clock\"></i>\n {{type.expiringCount}} expiring\n </span>\n </div>\n </div>\n <div class=\"type-actions\">\n <button\n class=\"action-btn\"\n *ngIf=\"UserCanCreateCredential\"\n (click)=\"createCredentialForType(type, $event)\"\n title=\"Add Credential\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n <button\n class=\"action-btn\"\n *ngIf=\"UserCanUpdate\"\n (click)=\"editType(type, $event)\"\n title=\"Edit Type\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button\n class=\"action-btn danger\"\n *ngIf=\"UserCanDelete && type.credentialCount === 0\"\n (click)=\"deleteType(type, $event)\"\n title=\"Delete Type\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n <i class=\"fa-solid fa-chevron-right arrow\"></i>\n </div>\n </div>\n </div>\n </ng-container>\n\n <div class=\"empty-state\" *ngIf=\"filteredTypes.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-cubes\"></i>\n </div>\n <h3>No Credential Types Found</h3>\n <p *ngIf=\"searchText || selectedCategoryFilter\">\n No types match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n <p *ngIf=\"!searchText && !selectedCategoryFilter\">\n Get started by creating your first credential type.\n </p>\n <button class=\"btn-primary\" *ngIf=\"UserCanCreate && !searchText && !selectedCategoryFilter\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Type\n </button>\n </div>\n </div>\n\n <!-- Type Detail -->\n <div class=\"type-detail\" *ngIf=\"selectedType\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '15'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"selectedType.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedType.Name}}</h2>\n <span class=\"category-badge\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '20'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"getCategoryIcon(selectedType.Category)\"></i>\n {{selectedType.Category}}\n </span>\n </div>\n <div class=\"detail-actions\">\n <button class=\"action-btn\" *ngIf=\"UserCanUpdate\" (click)=\"editType(selectedType)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button class=\"close-btn\" (click)=\"closeDetail()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"detail-body\">\n <!-- Stats Row -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedType.credentialCount}}</div>\n <div class=\"stat-label\">Credentials</div>\n </div>\n <div class=\"detail-stat active\">\n <div class=\"stat-value\">{{selectedType.activeCount}}</div>\n <div class=\"stat-label\">Active</div>\n </div>\n <div class=\"detail-stat warning\" *ngIf=\"selectedType.expiringCount > 0\">\n <div class=\"stat-value\">{{selectedType.expiringCount}}</div>\n <div class=\"stat-label\">Expiring</div>\n </div>\n </div>\n\n <p class=\"description\" *ngIf=\"selectedType.Description\">\n {{selectedType.Description}}\n </p>\n\n <div class=\"schema-section\">\n <h3>\n <i class=\"fa-solid fa-list-check\"></i>\n Field Schema\n </h3>\n <div class=\"field-list\" *ngIf=\"schemaProperties.length > 0\">\n <div class=\"field-item\" *ngFor=\"let prop of schemaProperties\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{prop.title}}</span>\n <span class=\"field-badges\">\n <span class=\"badge type\">{{prop.type}}</span>\n <span class=\"badge secret\" *ngIf=\"prop.isSecret\">\n <i class=\"fa-solid fa-lock\"></i> Secret\n </span>\n <span class=\"badge required\" *ngIf=\"prop.required\">Required</span>\n </span>\n </div>\n <p class=\"field-description\" *ngIf=\"prop.description\">\n {{prop.description}}\n </p>\n </div>\n </div>\n <div class=\"no-fields\" *ngIf=\"schemaProperties.length === 0\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>No fields defined in schema</span>\n </div>\n </div>\n\n <div class=\"validation-section\" *ngIf=\"selectedType.ValidationEndpoint\">\n <h3>\n <i class=\"fa-solid fa-check-circle\"></i>\n Validation\n </h3>\n <div class=\"validation-endpoint\">\n <i class=\"fa-solid fa-link\"></i>\n <span>{{selectedType.ValidationEndpoint}}</span>\n </div>\n </div>\n\n <!-- Quick Actions -->\n <div class=\"detail-quick-actions\" *ngIf=\"UserCanCreateCredential\">\n <button class=\"btn-primary\" (click)=\"createCredentialForType(selectedType)\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n </div>\n </div>\n\n <!-- No Selection -->\n <div class=\"no-selection\" *ngIf=\"!selectedType && filteredTypes.length > 0\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Credential Type</h3>\n <p>Click on a credential type to view its details and field schema</p>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Type Edit Panel -->\n<mj-credential-type-edit-panel\n #typeEditPanel\n (saved)=\"onTypeSaved($any($event))\"\n (deleted)=\"onTypeDeleted($any($event))\"\n></mj-credential-type-edit-panel>\n", styles: [".types-container {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--page-background, #f8fafc);\n}\n\n/* Header */\n.types-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item i {\n font-size: 12px;\n}\n\n.header-actions {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary i {\n font-size: 13px;\n}\n\n/* Toolbar */\n.toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--card-background, #ffffff);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container {\n display: flex;\n align-items: center;\n background: var(--input-background, #f9fafb);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container i {\n color: var(--text-secondary, #6b7280);\n margin-right: 8px;\n}\n\n.search-container input {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--border-color, #e5e7eb);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n}\n\n.search-clear:hover {\n background: var(--text-secondary, #6b7280);\n color: white;\n}\n\n.filter-select {\n padding: 8px 12px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--input-background, #ffffff);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--button-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--button-hover, #f3f4f6);\n color: var(--accent-color, #6366f1);\n}\n\n/* Layout */\n.types-layout {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n/* Types List */\n.types-list {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section {\n margin-bottom: 20px;\n}\n\n.category-section:last-child {\n margin-bottom: 0;\n}\n\n.category-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--text-secondary, #6b7280);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--accent-color, #6366f1);\n background: var(--header-background, #f9fafb);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header i {\n font-size: 14px;\n}\n\n.category-name {\n flex: 1;\n}\n\n.category-header .count {\n background: white;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--item-background, #ffffff);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item:hover {\n background: var(--item-hover, #f8fafc);\n border-color: var(--border-color, #e5e7eb);\n}\n\n.type-item.selected {\n background: linear-gradient(to right, rgba(99, 102, 241, 0.05), white);\n border-color: var(--accent-color, #6366f1);\n}\n\n.type-icon {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 16px;\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.type-description {\n font-size: 12px;\n color: var(--text-secondary, #9ca3af);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-badge i {\n font-size: 9px;\n}\n\n.meta-badge.active {\n background: #d1fae5;\n color: #059669;\n}\n\n.meta-badge.warning {\n background: #fef3c7;\n color: #d97706;\n}\n\n.type-actions {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item:hover .type-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--input-background, #f3f4f6);\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger:hover {\n background: #ef4444;\n}\n\n.arrow {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n}\n\n/* Type Detail */\n.type-detail {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 26px;\n}\n\n.detail-title {\n flex: 1;\n}\n\n.detail-title h2 {\n font-size: 22px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.category-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge i {\n font-size: 11px;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-background, #f3f4f6);\n border-radius: 8px;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.detail-body {\n padding: 24px;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-stat {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--stat-background, #f9fafb);\n border-radius: 12px;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n.detail-stat.active {\n background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.05) 100%);\n}\n\n.detail-stat.active .stat-value {\n color: #059669;\n}\n\n.detail-stat.warning {\n background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(217, 119, 6, 0.05) 100%);\n}\n\n.detail-stat.warning .stat-value {\n color: #d97706;\n}\n\n.description {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--description-background, #f9fafb);\n border-radius: 10px;\n}\n\n.schema-section,\n.validation-section {\n margin-bottom: 24px;\n}\n\n.schema-section h3,\n.validation-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 16px 0;\n}\n\n.schema-section h3 i,\n.validation-section h3 i {\n color: var(--accent-color, #6366f1);\n}\n\n.field-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item {\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n border: 1px solid var(--border-color, #e5e7eb);\n transition: all 0.2s ease;\n}\n\n.field-item:hover {\n border-color: var(--accent-color, #6366f1);\n background: var(--field-hover, #f3f4f6);\n}\n\n.field-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.field-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type {\n background: var(--type-badge, #e5e7eb);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge.secret {\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n color: #b45309;\n}\n\n.badge.secret i {\n margin-right: 3px;\n}\n\n.badge.required {\n background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);\n color: #b91c1c;\n}\n\n.field-description {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.no-fields i {\n color: var(--accent-color, #6366f1);\n}\n\n.validation-endpoint {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--endpoint-background, #f9fafb);\n border-radius: 10px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--border-color, #e5e7eb);\n}\n\n.validation-endpoint i {\n color: var(--accent-color, #6366f1);\n}\n\n.detail-quick-actions {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon i {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .types-layout {\n grid-template-columns: 1fr;\n }\n\n .types-list {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container {\n padding: 16px;\n }\n\n .types-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left {\n flex-direction: column;\n }\n\n .search-container {\n min-width: 100%;\n }\n\n .filter-select {\n width: 100%;\n }\n\n .toolbar-right {\n justify-content: space-between;\n }\n\n .detail-stats {\n flex-direction: column;\n }\n}\n"] }]
866
+ args: [{ standalone: false, selector: 'mj-credentials-types-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"types-container\">\n @if (isLoading) {\n <mj-loading text=\"Loading credential types...\"></mj-loading>\n }\n\n @if (!isLoading) {\n <!-- Header -->\n <div class=\"types-header\">\n <div class=\"header-info\">\n <h2 class=\"types-title\">Credential Types</h2>\n <div class=\"header-stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-shapes\"></i>\n {{types.length}} types\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-folder\"></i>\n {{categories.length}} categories\n </span>\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-key\"></i>\n {{getTotalCredentialCount()}} credentials\n </span>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (UserCanCreate) {\n <button class=\"btn-primary\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>New Type</span>\n </button>\n }\n </div>\n </div>\n <!-- Toolbar -->\n <div class=\"toolbar\">\n <div class=\"toolbar-left\">\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search types...\"\n [value]=\"searchText\"\n (input)=\"onSearchChange($any($event.target).value)\"\n />\n @if (searchText) {\n <button class=\"search-clear\" (click)=\"onSearchChange('')\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n <select\n class=\"filter-select\"\n [value]=\"selectedCategoryFilter\"\n (change)=\"onCategoryFilterChange($any($event.target).value)\"\n >\n <option value=\"\">All Categories</option>\n @for (cat of categories; track cat) {\n <option [value]=\"cat\">{{cat}}</option>\n }\n </select>\n </div>\n <div class=\"toolbar-right\">\n <div class=\"results-info\">\n {{filteredTypes.length}} of {{types.length}} types\n </div>\n <button class=\"btn-icon\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <div class=\"types-layout\">\n <!-- Types List -->\n <div class=\"types-list\">\n @for (entry of getTypesByCategory() | keyvalue; track entry) {\n <div class=\"category-section\">\n <div class=\"category-header\" [style.borderLeftColor]=\"getCategoryColor(entry.key)\">\n <i [class]=\"getCategoryIcon(entry.key)\" [style.color]=\"getCategoryColor(entry.key)\"></i>\n <span class=\"category-name\">{{entry.key}}</span>\n <span class=\"count\">{{entry.value.length}}</span>\n </div>\n <div class=\"type-items\">\n @for (type of entry.value; track type) {\n <div\n class=\"type-item\"\n [class.selected]=\"selectedType?.ID === type.ID\"\n (click)=\"selectType(type)\"\n >\n <div class=\"type-icon\" [style.backgroundColor]=\"getCategoryColor(type.Category) + '15'\" [style.color]=\"getCategoryColor(type.Category)\">\n <i [class]=\"type.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"type-info\">\n <div class=\"type-name\">{{type.Name}}</div>\n @if (type.Description) {\n <div class=\"type-description\">\n {{type.Description | slice:0:60}}{{type.Description.length > 60 ? '...' : ''}}\n </div>\n }\n <div class=\"type-meta\">\n @if (type.credentialCount > 0) {\n <span class=\"meta-badge\">\n <i class=\"fa-solid fa-key\"></i>\n {{type.credentialCount}}\n </span>\n }\n @if (type.activeCount > 0) {\n <span class=\"meta-badge active\">\n <i class=\"fa-solid fa-check\"></i>\n {{type.activeCount}} active\n </span>\n }\n @if (type.expiringCount > 0) {\n <span class=\"meta-badge warning\">\n <i class=\"fa-solid fa-clock\"></i>\n {{type.expiringCount}} expiring\n </span>\n }\n </div>\n </div>\n <div class=\"type-actions\">\n @if (UserCanCreateCredential) {\n <button\n class=\"action-btn\"\n (click)=\"createCredentialForType(type, $event)\"\n title=\"Add Credential\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n }\n @if (UserCanUpdate) {\n <button\n class=\"action-btn\"\n (click)=\"editType(type, $event)\"\n title=\"Edit Type\"\n >\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n @if (UserCanDelete && type.credentialCount === 0) {\n <button\n class=\"action-btn danger\"\n (click)=\"deleteType(type, $event)\"\n title=\"Delete Type\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n <i class=\"fa-solid fa-chevron-right arrow\"></i>\n </div>\n }\n </div>\n </div>\n }\n @if (filteredTypes.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-cubes\"></i>\n </div>\n <h3>No Credential Types Found</h3>\n @if (searchText || selectedCategoryFilter) {\n <p>\n No types match your current filters.\n <button class=\"btn-link\" (click)=\"clearFilters()\">Clear filters</button>\n </p>\n }\n @if (!searchText && !selectedCategoryFilter) {\n <p>\n Get started by creating your first credential type.\n </p>\n }\n @if (UserCanCreate && !searchText && !selectedCategoryFilter) {\n <button class=\"btn-primary\" (click)=\"createNewType()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Type\n </button>\n }\n </div>\n }\n </div>\n <!-- Type Detail -->\n @if (selectedType) {\n <div class=\"type-detail\">\n <div class=\"detail-header\">\n <div class=\"detail-icon\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '15'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"selectedType.IconClass || 'fa-solid fa-key'\"></i>\n </div>\n <div class=\"detail-title\">\n <h2>{{selectedType.Name}}</h2>\n <span class=\"category-badge\" [style.backgroundColor]=\"getCategoryColor(selectedType.Category) + '20'\" [style.color]=\"getCategoryColor(selectedType.Category)\">\n <i [class]=\"getCategoryIcon(selectedType.Category)\"></i>\n {{selectedType.Category}}\n </span>\n </div>\n <div class=\"detail-actions\">\n @if (UserCanUpdate) {\n <button class=\"action-btn\" (click)=\"editType(selectedType)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n <button class=\"close-btn\" (click)=\"closeDetail()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n <div class=\"detail-body\">\n <!-- Stats Row -->\n <div class=\"detail-stats\">\n <div class=\"detail-stat\">\n <div class=\"stat-value\">{{selectedType.credentialCount}}</div>\n <div class=\"stat-label\">Credentials</div>\n </div>\n <div class=\"detail-stat active\">\n <div class=\"stat-value\">{{selectedType.activeCount}}</div>\n <div class=\"stat-label\">Active</div>\n </div>\n @if (selectedType.expiringCount > 0) {\n <div class=\"detail-stat warning\">\n <div class=\"stat-value\">{{selectedType.expiringCount}}</div>\n <div class=\"stat-label\">Expiring</div>\n </div>\n }\n </div>\n @if (selectedType.Description) {\n <p class=\"description\">\n {{selectedType.Description}}\n </p>\n }\n <div class=\"schema-section\">\n <h3>\n <i class=\"fa-solid fa-list-check\"></i>\n Field Schema\n </h3>\n @if (schemaProperties.length > 0) {\n <div class=\"field-list\">\n @for (prop of schemaProperties; track prop) {\n <div class=\"field-item\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{prop.title}}</span>\n <span class=\"field-badges\">\n <span class=\"badge type\">{{prop.type}}</span>\n @if (prop.isSecret) {\n <span class=\"badge secret\">\n <i class=\"fa-solid fa-lock\"></i> Secret\n </span>\n }\n @if (prop.required) {\n <span class=\"badge required\">Required</span>\n }\n </span>\n </div>\n @if (prop.description) {\n <p class=\"field-description\">\n {{prop.description}}\n </p>\n }\n </div>\n }\n </div>\n }\n @if (schemaProperties.length === 0) {\n <div class=\"no-fields\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>No fields defined in schema</span>\n </div>\n }\n </div>\n @if (selectedType.ValidationEndpoint) {\n <div class=\"validation-section\">\n <h3>\n <i class=\"fa-solid fa-check-circle\"></i>\n Validation\n </h3>\n <div class=\"validation-endpoint\">\n <i class=\"fa-solid fa-link\"></i>\n <span>{{selectedType.ValidationEndpoint}}</span>\n </div>\n </div>\n }\n <!-- Quick Actions -->\n @if (UserCanCreateCredential) {\n <div class=\"detail-quick-actions\">\n <button class=\"btn-primary\" (click)=\"createCredentialForType(selectedType)\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Credential\n </button>\n </div>\n }\n </div>\n </div>\n }\n <!-- No Selection -->\n @if (!selectedType && filteredTypes.length > 0) {\n <div class=\"no-selection\">\n <div class=\"no-selection-icon\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n </div>\n <h3>Select a Credential Type</h3>\n <p>Click on a credential type to view its details and field schema</p>\n </div>\n }\n </div>\n }\n</div>\n\n<!-- Type Edit Panel -->\n<mj-credential-type-edit-panel\n #typeEditPanel\n (saved)=\"onTypeSaved($any($event))\"\n (deleted)=\"onTypeDeleted($any($event))\"\n></mj-credential-type-edit-panel>\n", styles: [".types-container {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 24px;\n background: var(--page-background, #f8fafc);\n}\n\n/* Header */\n.types-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 24px;\n flex-wrap: wrap;\n gap: 16px;\n}\n\n.header-info {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.types-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.header-stats {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.stat-item i {\n font-size: 12px;\n}\n\n.header-actions {\n display: flex;\n gap: 12px;\n}\n\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n color: white;\n border: none;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4);\n}\n\n.btn-primary i {\n font-size: 13px;\n}\n\n/* Toolbar */\n.toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n background: var(--card-background, #ffffff);\n padding: 16px;\n border-radius: 12px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n flex: 1;\n}\n\n.toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.search-container {\n display: flex;\n align-items: center;\n background: var(--input-background, #f9fafb);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n padding: 8px 12px;\n min-width: 240px;\n position: relative;\n}\n\n.search-container i {\n color: var(--text-secondary, #6b7280);\n margin-right: 8px;\n}\n\n.search-container input {\n border: none;\n background: transparent;\n outline: none;\n flex: 1;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--border-color, #e5e7eb);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n font-size: 10px;\n}\n\n.search-clear:hover {\n background: var(--text-secondary, #6b7280);\n color: white;\n}\n\n.filter-select {\n padding: 8px 12px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--input-background, #ffffff);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n cursor: pointer;\n min-width: 160px;\n}\n\n.results-info {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n background: var(--button-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-icon:hover {\n background: var(--button-hover, #f3f4f6);\n color: var(--accent-color, #6366f1);\n}\n\n/* Layout */\n.types-layout {\n display: grid;\n grid-template-columns: 420px 1fr;\n flex: 1;\n min-height: 0;\n gap: 20px;\n}\n\n/* Types List */\n.types-list {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n padding: 16px;\n}\n\n.category-section {\n margin-bottom: 20px;\n}\n\n.category-section:last-child {\n margin-bottom: 0;\n}\n\n.category-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--text-secondary, #6b7280);\n letter-spacing: 0.5px;\n border-left: 3px solid var(--accent-color, #6366f1);\n background: var(--header-background, #f9fafb);\n border-radius: 0 8px 8px 0;\n margin-bottom: 8px;\n}\n\n.category-header i {\n font-size: 14px;\n}\n\n.category-name {\n flex: 1;\n}\n\n.category-header .count {\n background: white;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.type-items {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n background: var(--item-background, #ffffff);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 2px solid transparent;\n position: relative;\n}\n\n.type-item:hover {\n background: var(--item-hover, #f8fafc);\n border-color: var(--border-color, #e5e7eb);\n}\n\n.type-item.selected {\n background: linear-gradient(to right, rgba(99, 102, 241, 0.05), white);\n border-color: var(--accent-color, #6366f1);\n}\n\n.type-icon {\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n margin-right: 12px;\n flex-shrink: 0;\n}\n\n.type-icon i {\n font-size: 16px;\n}\n\n.type-info {\n flex: 1;\n min-width: 0;\n}\n\n.type-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.type-description {\n font-size: 12px;\n color: var(--text-secondary, #9ca3af);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.type-meta {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.meta-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--badge-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-badge i {\n font-size: 9px;\n}\n\n.meta-badge.active {\n background: #d1fae5;\n color: #059669;\n}\n\n.meta-badge.warning {\n background: #fef3c7;\n color: #d97706;\n}\n\n.type-actions {\n display: flex;\n gap: 4px;\n margin-right: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.type-item:hover .type-actions {\n opacity: 1;\n}\n\n.action-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--input-background, #f3f4f6);\n border-radius: 6px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.action-btn:hover {\n background: var(--accent-color, #6366f1);\n color: white;\n}\n\n.action-btn.danger:hover {\n background: #ef4444;\n}\n\n.arrow {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n}\n\n/* Type Detail */\n.type-detail {\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow-y: auto;\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n padding: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-icon {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 14px;\n margin-right: 16px;\n flex-shrink: 0;\n}\n\n.detail-icon i {\n font-size: 26px;\n}\n\n.detail-title {\n flex: 1;\n}\n\n.detail-title h2 {\n font-size: 22px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.category-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.category-badge i {\n font-size: 11px;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: var(--button-background, #f3f4f6);\n border-radius: 8px;\n cursor: pointer;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.close-btn:hover {\n background: var(--button-hover, #e5e7eb);\n color: var(--text-primary, #1f2937);\n}\n\n.detail-body {\n padding: 24px;\n}\n\n/* Detail Stats */\n.detail-stats {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n}\n\n.detail-stat {\n flex: 1;\n text-align: center;\n padding: 16px;\n background: var(--stat-background, #f9fafb);\n border-radius: 12px;\n}\n\n.detail-stat .stat-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n}\n\n.detail-stat .stat-label {\n font-size: 12px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n.detail-stat.active {\n background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.05) 100%);\n}\n\n.detail-stat.active .stat-value {\n color: #059669;\n}\n\n.detail-stat.warning {\n background: linear-gradient(135deg, rgba(245, 158, 11, 0.1) 0%, rgba(217, 119, 6, 0.05) 100%);\n}\n\n.detail-stat.warning .stat-value {\n color: #d97706;\n}\n\n.description {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.6;\n margin: 0 0 24px 0;\n padding: 16px;\n background: var(--description-background, #f9fafb);\n border-radius: 10px;\n}\n\n.schema-section,\n.validation-section {\n margin-bottom: 24px;\n}\n\n.schema-section h3,\n.validation-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 16px 0;\n}\n\n.schema-section h3 i,\n.validation-section h3 i {\n color: var(--accent-color, #6366f1);\n}\n\n.field-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item {\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n border: 1px solid var(--border-color, #e5e7eb);\n transition: all 0.2s ease;\n}\n\n.field-item:hover {\n border-color: var(--accent-color, #6366f1);\n background: var(--field-hover, #f3f4f6);\n}\n\n.field-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.field-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n}\n\n.field-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.badge {\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.badge.type {\n background: var(--type-badge, #e5e7eb);\n color: var(--text-secondary, #6b7280);\n}\n\n.badge.secret {\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n color: #b45309;\n}\n\n.badge.secret i {\n margin-right: 3px;\n}\n\n.badge.required {\n background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);\n color: #b91c1c;\n}\n\n.field-description {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin: 10px 0 0 0;\n line-height: 1.5;\n}\n\n.no-fields {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n background: var(--field-background, #f9fafb);\n border-radius: 10px;\n color: var(--text-secondary, #9ca3af);\n font-size: 13px;\n}\n\n.no-fields i {\n color: var(--accent-color, #6366f1);\n}\n\n.validation-endpoint {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 18px;\n background: var(--endpoint-background, #f9fafb);\n border-radius: 10px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', monospace;\n border: 1px solid var(--border-color, #e5e7eb);\n}\n\n.validation-endpoint i {\n color: var(--accent-color, #6366f1);\n}\n\n.detail-quick-actions {\n margin-top: 24px;\n padding-top: 24px;\n border-top: 1px solid var(--border-color, #f3f4f6);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n background: var(--card-background, #ffffff);\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n padding: 48px;\n}\n\n.no-selection-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 20px;\n margin-bottom: 24px;\n}\n\n.no-selection-icon i {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n}\n\n.empty-icon {\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);\n border-radius: 18px;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: var(--accent-color, #6366f1);\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.empty-state p {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--accent-color, #6366f1);\n font-size: 14px;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.btn-link:hover {\n color: var(--accent-hover, #4f46e5);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .types-layout {\n grid-template-columns: 1fr;\n }\n\n .types-list {\n max-height: 400px;\n }\n}\n\n@media (max-width: 768px) {\n .types-container {\n padding: 16px;\n }\n\n .types-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left {\n flex-direction: column;\n }\n\n .search-container {\n min-width: 100%;\n }\n\n .filter-select {\n width: 100%;\n }\n\n .toolbar-right {\n justify-content: space-between;\n }\n\n .detail-stats {\n flex-direction: column;\n }\n}\n"] }]
863
867
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.NavigationService }], { typeEditPanel: [{
864
868
  type: ViewChild,
865
869
  args: ['typeEditPanel']
866
870
  }] }); })();
867
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsTypesResourceComponent, { className: "CredentialsTypesResourceComponent", filePath: "src/Credentials/components/credentials-types-resource.component.ts", lineNumber: 35 }); })();
871
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialsTypesResourceComponent, { className: "CredentialsTypesResourceComponent", filePath: "src/credentials/components/credentials-types-resource.component.ts", lineNumber: 31 }); })();
868
872
  //# sourceMappingURL=credentials-types-resource.component.js.map