@memberjunction/ng-dashboards 3.4.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 (573) 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 +12 -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 +103 -44
  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 +3 -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 +34 -27
  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 +3 -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 +34 -32
  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 +0 -2
  65. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  66. package/dist/APIKeys/api-applications-panel.component.js +193 -189
  67. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  68. package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
  69. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  70. package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
  71. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  72. package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
  73. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  74. package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
  75. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  76. package/dist/APIKeys/api-key-list.component.d.ts +0 -2
  77. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  78. package/dist/APIKeys/api-key-list.component.js +113 -114
  79. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  80. package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
  81. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  82. package/dist/APIKeys/api-keys-resource.component.js +294 -302
  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.map +1 -1
  122. package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
  123. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
  124. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  125. package/dist/Actions/components/explorer/action-card.component.js +11 -10
  126. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  127. package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
  128. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  129. package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
  130. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  131. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
  132. package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
  133. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  134. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
  135. package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
  136. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  137. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
  138. package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
  139. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  140. package/dist/Actions/components/explorer/index.d.ts +0 -1
  141. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  142. package/dist/Actions/components/explorer/index.js +0 -4
  143. package/dist/Actions/components/explorer/index.js.map +1 -1
  144. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  145. package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
  146. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  147. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  148. package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
  149. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  150. package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
  151. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  152. package/dist/Actions/components/scheduled-actions.component.js +3 -9
  153. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  154. package/dist/Actions/components/security-permissions.component.d.ts +0 -4
  155. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  156. package/dist/Actions/components/security-permissions.component.js +3 -9
  157. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  158. package/dist/Actions/index.d.ts +0 -7
  159. package/dist/Actions/index.d.ts.map +1 -1
  160. package/dist/Actions/index.js +0 -8
  161. package/dist/Actions/index.js.map +1 -1
  162. package/dist/Communication/communication-dashboard.component.d.ts +0 -1
  163. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  164. package/dist/Communication/communication-dashboard.component.js +38 -51
  165. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  166. package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
  167. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  168. package/dist/Communication/communication-logs-resource.component.js +112 -108
  169. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  170. package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
  171. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  172. package/dist/Communication/communication-monitor-resource.component.js +210 -201
  173. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  174. package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
  175. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  176. package/dist/Communication/communication-providers-resource.component.js +136 -124
  177. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  178. package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
  179. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  180. package/dist/Communication/communication-runs-resource.component.js +91 -88
  181. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  182. package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
  183. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  184. package/dist/Communication/communication-templates-resource.component.js +139 -122
  185. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  186. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
  187. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  188. package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
  189. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  190. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  191. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
  192. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  193. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  194. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
  195. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  196. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  197. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
  198. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  199. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
  200. package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
  201. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  202. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
  203. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
  204. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  205. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
  206. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
  207. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  208. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
  209. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
  210. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  211. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
  212. package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
  213. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  214. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
  215. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
  216. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  217. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  218. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
  219. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  220. package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
  221. package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
  222. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  223. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  224. package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
  225. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  226. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
  227. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
  228. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  229. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +44 -0
  230. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +1 -0
  231. package/dist/Credentials/components/credential-category-edit-panel.component.js +456 -0
  232. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +1 -0
  233. package/dist/Credentials/components/credential-edit-panel.component.d.ts +70 -0
  234. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +1 -0
  235. package/dist/Credentials/components/credential-edit-panel.component.js +694 -0
  236. package/dist/Credentials/components/credential-edit-panel.component.js.map +1 -0
  237. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +56 -0
  238. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +1 -0
  239. package/dist/Credentials/components/credential-type-edit-panel.component.js +563 -0
  240. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +1 -0
  241. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
  242. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  243. package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
  244. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  245. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
  246. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  247. package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
  248. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  249. package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
  250. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  251. package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
  252. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  253. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
  254. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  255. package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
  256. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  257. package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
  258. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  259. package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
  260. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  261. package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
  262. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  263. package/dist/Credentials/credentials-dashboard.component.js +31 -44
  264. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  265. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
  266. package/dist/Credentials/pipes/group-by.pipe.js +2 -1
  267. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  268. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
  269. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  270. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
  271. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  272. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  273. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
  274. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  275. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
  276. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
  277. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  278. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  279. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
  280. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  281. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
  282. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
  283. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
  284. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
  285. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  286. package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
  287. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  288. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +0 -4
  289. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  290. package/dist/DataExplorer/data-explorer-dashboard.component.js +49 -54
  291. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  292. package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
  293. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  294. package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
  295. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  296. package/dist/DataExplorer/index.d.ts +2 -2
  297. package/dist/DataExplorer/index.d.ts.map +1 -1
  298. package/dist/DataExplorer/index.js +2 -2
  299. package/dist/DataExplorer/index.js.map +1 -1
  300. package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
  301. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
  302. package/dist/EntityAdmin/components/entity-details.component.js +680 -0
  303. package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
  304. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
  305. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
  306. package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
  307. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
  308. package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
  309. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
  310. package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
  311. package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
  312. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
  313. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
  314. package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
  315. package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
  316. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
  317. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  318. package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
  319. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  320. package/dist/Home/home-application.d.ts +0 -5
  321. package/dist/Home/home-application.d.ts.map +1 -1
  322. package/dist/Home/home-application.js +0 -9
  323. package/dist/Home/home-application.js.map +1 -1
  324. package/dist/Home/home-dashboard.component.d.ts +0 -4
  325. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  326. package/dist/Home/home-dashboard.component.js +141 -139
  327. package/dist/Home/home-dashboard.component.js.map +1 -1
  328. package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
  329. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  330. package/dist/Lists/components/lists-browse-resource.component.js +761 -685
  331. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  332. package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
  333. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  334. package/dist/Lists/components/lists-categories-resource.component.js +340 -316
  335. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  336. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
  337. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  338. package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
  339. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  340. package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
  341. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  342. package/dist/Lists/components/lists-operations-resource.component.js +508 -455
  343. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  344. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  345. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
  346. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  347. package/dist/Lists/index.d.ts +0 -1
  348. package/dist/Lists/index.d.ts.map +1 -1
  349. package/dist/Lists/index.js +0 -11
  350. package/dist/Lists/index.js.map +1 -1
  351. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
  352. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  353. package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
  354. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  355. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
  356. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
  357. package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
  358. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  359. package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
  360. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
  361. package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
  362. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  363. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
  364. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
  365. package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
  366. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  367. package/dist/MCP/index.d.ts +5 -5
  368. package/dist/MCP/index.d.ts.map +1 -1
  369. package/dist/MCP/index.js +5 -5
  370. package/dist/MCP/index.js.map +1 -1
  371. package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
  372. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  373. package/dist/MCP/mcp-dashboard.component.js +976 -697
  374. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  375. package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
  376. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
  377. package/dist/MCP/mcp-filter-panel.component.js +288 -0
  378. package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
  379. package/dist/MCP/mcp-resource.component.d.ts +11 -5
  380. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  381. package/dist/MCP/mcp-resource.component.js +8 -9
  382. package/dist/MCP/mcp-resource.component.js.map +1 -1
  383. package/dist/MCP/mcp.module.d.ts +16 -19
  384. package/dist/MCP/mcp.module.d.ts.map +1 -1
  385. package/dist/MCP/mcp.module.js +17 -26
  386. package/dist/MCP/mcp.module.js.map +1 -1
  387. package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
  388. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
  389. package/dist/MCP/services/mcp-tools.service.js +5 -6
  390. package/dist/MCP/services/mcp-tools.service.js.map +1 -1
  391. package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
  392. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  393. package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
  394. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  395. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
  396. package/dist/Scheduling/components/job-slideout.component.js +117 -116
  397. package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
  398. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
  399. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  400. package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
  401. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  402. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  403. package/dist/Scheduling/components/scheduling-activity.component.js +134 -134
  404. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  405. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +20 -0
  406. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +1 -0
  407. package/dist/Scheduling/components/scheduling-health-resource.component.js +55 -0
  408. package/dist/Scheduling/components/scheduling-health-resource.component.js.map +1 -0
  409. package/dist/Scheduling/components/scheduling-health.component.d.ts +30 -0
  410. package/dist/Scheduling/components/scheduling-health.component.d.ts.map +1 -0
  411. package/dist/Scheduling/components/scheduling-health.component.js +315 -0
  412. package/dist/Scheduling/components/scheduling-health.component.js.map +1 -0
  413. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +20 -0
  414. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +1 -0
  415. package/dist/Scheduling/components/scheduling-history-resource.component.js +55 -0
  416. package/dist/Scheduling/components/scheduling-history-resource.component.js.map +1 -0
  417. package/dist/Scheduling/components/scheduling-history.component.d.ts +48 -0
  418. package/dist/Scheduling/components/scheduling-history.component.d.ts.map +1 -0
  419. package/dist/Scheduling/components/scheduling-history.component.js +377 -0
  420. package/dist/Scheduling/components/scheduling-history.component.js.map +1 -0
  421. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
  422. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  423. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
  424. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  425. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  426. package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
  427. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  428. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +20 -0
  429. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +1 -0
  430. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +55 -0
  431. package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +1 -0
  432. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +37 -0
  433. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +1 -0
  434. package/dist/Scheduling/components/scheduling-monitoring.component.js +488 -0
  435. package/dist/Scheduling/components/scheduling-monitoring.component.js.map +1 -0
  436. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
  437. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  438. package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
  439. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  440. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  441. package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
  442. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  443. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts +20 -0
  444. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +1 -0
  445. package/dist/Scheduling/components/scheduling-types-resource.component.js +55 -0
  446. package/dist/Scheduling/components/scheduling-types-resource.component.js.map +1 -0
  447. package/dist/Scheduling/components/scheduling-types.component.d.ts +22 -0
  448. package/dist/Scheduling/components/scheduling-types.component.d.ts.map +1 -0
  449. package/dist/Scheduling/components/scheduling-types.component.js +165 -0
  450. package/dist/Scheduling/components/scheduling-types.component.js.map +1 -0
  451. package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
  452. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  453. package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
  454. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  455. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
  456. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  457. package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
  458. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  459. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  460. package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
  461. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  462. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  463. package/dist/Testing/components/testing-analytics.component.js +30 -30
  464. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  465. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  466. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
  467. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  468. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  469. package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
  470. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  471. package/dist/Testing/components/testing-execution-resource.component.d.ts +20 -0
  472. package/dist/Testing/components/testing-execution-resource.component.d.ts.map +1 -0
  473. package/dist/Testing/components/testing-execution-resource.component.js +55 -0
  474. package/dist/Testing/components/testing-execution-resource.component.js.map +1 -0
  475. package/dist/Testing/components/testing-execution.component.d.ts +71 -0
  476. package/dist/Testing/components/testing-execution.component.d.ts.map +1 -0
  477. package/dist/Testing/components/testing-execution.component.js +845 -0
  478. package/dist/Testing/components/testing-execution.component.js.map +1 -0
  479. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  480. package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
  481. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  482. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  483. package/dist/Testing/components/testing-explorer.component.js +42 -35
  484. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  485. package/dist/Testing/components/testing-feedback-resource.component.d.ts +20 -0
  486. package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +1 -0
  487. package/dist/Testing/components/testing-feedback-resource.component.js +55 -0
  488. package/dist/Testing/components/testing-feedback-resource.component.js.map +1 -0
  489. package/dist/Testing/components/testing-feedback.component.d.ts +111 -0
  490. package/dist/Testing/components/testing-feedback.component.d.ts.map +1 -0
  491. package/dist/Testing/components/testing-feedback.component.js +1486 -0
  492. package/dist/Testing/components/testing-feedback.component.js.map +1 -0
  493. package/dist/Testing/components/testing-overview-resource.component.d.ts +20 -0
  494. package/dist/Testing/components/testing-overview-resource.component.d.ts.map +1 -0
  495. package/dist/Testing/components/testing-overview-resource.component.js +55 -0
  496. package/dist/Testing/components/testing-overview-resource.component.js.map +1 -0
  497. package/dist/Testing/components/testing-overview.component.d.ts +30 -0
  498. package/dist/Testing/components/testing-overview.component.d.ts.map +1 -0
  499. package/dist/Testing/components/testing-overview.component.js +361 -0
  500. package/dist/Testing/components/testing-overview.component.js.map +1 -0
  501. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  502. package/dist/Testing/components/testing-review-resource.component.js +3 -3
  503. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  504. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  505. package/dist/Testing/components/testing-review.component.js +16 -16
  506. package/dist/Testing/components/testing-review.component.js.map +1 -1
  507. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  508. package/dist/Testing/components/testing-runs-resource.component.js +3 -3
  509. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  510. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  511. package/dist/Testing/components/testing-runs.component.js +15 -15
  512. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  513. package/dist/Testing/components/testing-version-comparison.component.d.ts +62 -0
  514. package/dist/Testing/components/testing-version-comparison.component.d.ts.map +1 -0
  515. package/dist/Testing/components/testing-version-comparison.component.js +815 -0
  516. package/dist/Testing/components/testing-version-comparison.component.js.map +1 -0
  517. package/dist/Testing/components/testing-version-resource.component.d.ts +20 -0
  518. package/dist/Testing/components/testing-version-resource.component.d.ts.map +1 -0
  519. package/dist/Testing/components/testing-version-resource.component.js +55 -0
  520. package/dist/Testing/components/testing-version-resource.component.js.map +1 -0
  521. package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
  522. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
  523. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  524. package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
  525. package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
  526. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  527. package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
  528. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
  529. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  530. package/dist/Testing/testing-dashboard.component.d.ts +0 -1
  531. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  532. package/dist/Testing/testing-dashboard.component.js +9 -8
  533. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  534. package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
  535. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
  536. package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
  537. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
  538. package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
  539. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
  540. package/dist/VersionHistory/components/graph-resource.component.js +521 -0
  541. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
  542. package/dist/VersionHistory/components/index.d.ts +5 -0
  543. package/dist/VersionHistory/components/index.d.ts.map +1 -0
  544. package/dist/VersionHistory/components/index.js +5 -0
  545. package/dist/VersionHistory/components/index.js.map +1 -0
  546. package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
  547. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
  548. package/dist/VersionHistory/components/labels-resource.component.js +968 -0
  549. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
  550. package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
  551. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
  552. package/dist/VersionHistory/components/restore-resource.component.js +472 -0
  553. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
  554. package/dist/VersionHistory/index.d.ts +2 -0
  555. package/dist/VersionHistory/index.d.ts.map +1 -0
  556. package/dist/VersionHistory/index.js +2 -0
  557. package/dist/VersionHistory/index.js.map +1 -0
  558. package/dist/generic/base-dashboard.d.ts +65 -0
  559. package/dist/generic/base-dashboard.d.ts.map +1 -0
  560. package/dist/generic/base-dashboard.js +74 -0
  561. package/dist/generic/base-dashboard.js.map +1 -0
  562. package/dist/module.d.ts +42 -36
  563. package/dist/module.d.ts.map +1 -1
  564. package/dist/module.js +41 -7
  565. package/dist/module.js.map +1 -1
  566. package/dist/public-api.d.ts +20 -19
  567. package/dist/public-api.d.ts.map +1 -1
  568. package/dist/public-api.js +22 -120
  569. package/dist/public-api.js.map +1 -1
  570. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
  571. package/dist/shared/pipes/highlight-search.pipe.js +2 -1
  572. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
  573. package/package.json +64 -62
@@ -0,0 +1,968 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var VersionHistoryLabelsResourceComponent_1;
8
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
9
+ import { Subject } from 'rxjs';
10
+ import { RegisterClass } from '@memberjunction/global';
11
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
12
+ import { RunView, Metadata } from '@memberjunction/core';
13
+ import { UserInfoEngine } from '@memberjunction/core-entities';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@memberjunction/ng-shared";
16
+ import * as i2 from "@angular/common";
17
+ import * as i3 from "@angular/forms";
18
+ import * as i4 from "@memberjunction/ng-shared-generic";
19
+ import * as i5 from "@memberjunction/ng-versions";
20
+ function VersionHistoryLabelsResourceComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelement(0, "mj-loading", 1);
22
+ } }
23
+ function VersionHistoryLabelsResourceComponent_Conditional_2_For_53_Template(rf, ctx) { if (rf & 1) {
24
+ const _r3 = i0.ɵɵgetCurrentView();
25
+ i0.ɵɵelementStart(0, "button", 41);
26
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_For_53_Template_button_click_0_listener() { const stat_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnScopeFilterChange(stat_r4.Scope)); });
27
+ i0.ɵɵelement(1, "i");
28
+ i0.ɵɵelementStart(2, "span");
29
+ i0.ɵɵtext(3);
30
+ i0.ɵɵelementEnd();
31
+ i0.ɵɵelementStart(4, "span", 42);
32
+ i0.ɵɵtext(5);
33
+ i0.ɵɵelementEnd()();
34
+ } if (rf & 2) {
35
+ const stat_r4 = ctx.$implicit;
36
+ const ctx_r1 = i0.ɵɵnextContext(2);
37
+ i0.ɵɵclassProp("active", ctx_r1.ScopeFilter === stat_r4.Scope);
38
+ i0.ɵɵadvance();
39
+ i0.ɵɵclassMap(stat_r4.Icon);
40
+ i0.ɵɵadvance(2);
41
+ i0.ɵɵtextInterpolate(stat_r4.Scope);
42
+ i0.ɵɵadvance(2);
43
+ i0.ɵɵtextInterpolate(stat_r4.Count);
44
+ } }
45
+ function VersionHistoryLabelsResourceComponent_Conditional_2_For_55_Template(rf, ctx) { if (rf & 1) {
46
+ const _r5 = i0.ɵɵgetCurrentView();
47
+ i0.ɵɵelementStart(0, "button", 43);
48
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_For_55_Template_button_click_0_listener() { const stat_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnStatusFilterChange(stat_r6.Status)); });
49
+ i0.ɵɵelementStart(1, "span");
50
+ i0.ɵɵtext(2);
51
+ i0.ɵɵelementEnd();
52
+ i0.ɵɵelementStart(3, "span", 42);
53
+ i0.ɵɵtext(4);
54
+ i0.ɵɵelementEnd()();
55
+ } if (rf & 2) {
56
+ const stat_r6 = ctx.$implicit;
57
+ const ctx_r1 = i0.ɵɵnextContext(2);
58
+ i0.ɵɵclassProp("active", ctx_r1.StatusFilter === stat_r6.Status);
59
+ i0.ɵɵproperty("ngClass", ctx_r1.GetStatusClass(stat_r6.Status));
60
+ i0.ɵɵadvance(2);
61
+ i0.ɵɵtextInterpolate(stat_r6.Status);
62
+ i0.ɵɵadvance(2);
63
+ i0.ɵɵtextInterpolate(stat_r6.Count);
64
+ } }
65
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_59_Template(rf, ctx) { if (rf & 1) {
66
+ const _r7 = i0.ɵɵgetCurrentView();
67
+ i0.ɵɵelementStart(0, "button", 44);
68
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_59_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSearchChange("")); });
69
+ i0.ɵɵelement(1, "i", 45);
70
+ i0.ɵɵelementEnd();
71
+ } }
72
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "span", 52);
74
+ i0.ɵɵelement(1, "i", 56);
75
+ i0.ɵɵtext(2);
76
+ i0.ɵɵelementEnd();
77
+ } if (rf & 2) {
78
+ const label_r9 = i0.ɵɵnextContext().$implicit;
79
+ const ctx_r1 = i0.ɵɵnextContext(3);
80
+ i0.ɵɵadvance(2);
81
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.GetChildLabels(label_r9.ID).length, " records ");
82
+ } }
83
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵelementStart(0, "span", 57);
85
+ i0.ɵɵelement(1, "i", 66);
86
+ i0.ɵɵtext(2);
87
+ i0.ɵɵelementEnd();
88
+ } if (rf & 2) {
89
+ const label_r9 = i0.ɵɵnextContext().$implicit;
90
+ const ctx_r1 = i0.ɵɵnextContext(3);
91
+ i0.ɵɵadvance(2);
92
+ i0.ɵɵtextInterpolate1(" ", label_r9.Entity ?? ctx_r1.ResolveEntityName(label_r9.EntityID), " ");
93
+ } }
94
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "span", 58);
96
+ i0.ɵɵelement(1, "i", 67);
97
+ i0.ɵɵtext(2);
98
+ i0.ɵɵpipe(3, "slice");
99
+ i0.ɵɵelementEnd();
100
+ } if (rf & 2) {
101
+ const label_r9 = i0.ɵɵnextContext().$implicit;
102
+ i0.ɵɵadvance(2);
103
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(3, 1, label_r9.RecordID, 0, 12), "... ");
104
+ } }
105
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
106
+ i0.ɵɵelementStart(0, "span", 59);
107
+ i0.ɵɵelement(1, "i", 68);
108
+ i0.ɵɵtext(2);
109
+ i0.ɵɵelementEnd();
110
+ } if (rf & 2) {
111
+ const label_r9 = i0.ɵɵnextContext().$implicit;
112
+ i0.ɵɵadvance(2);
113
+ i0.ɵɵtextInterpolate1(" ", label_r9.ItemCount, " items ");
114
+ } }
115
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelementStart(0, "span", 59);
117
+ i0.ɵɵelement(1, "i", 68);
118
+ i0.ɵɵtext(2);
119
+ i0.ɵɵelementEnd();
120
+ } if (rf & 2) {
121
+ const label_r9 = i0.ɵɵnextContext().$implicit;
122
+ const ctx_r1 = i0.ɵɵnextContext(3);
123
+ i0.ɵɵadvance(2);
124
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.GetItemCount(label_r9.ID), " items ");
125
+ } }
126
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵelementStart(0, "span", 60);
128
+ i0.ɵɵelement(1, "i", 69);
129
+ i0.ɵɵtext(2);
130
+ i0.ɵɵelementEnd();
131
+ } if (rf & 2) {
132
+ const label_r9 = i0.ɵɵnextContext().$implicit;
133
+ const ctx_r1 = i0.ɵɵnextContext(3);
134
+ i0.ɵɵadvance(2);
135
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.FormatDuration(label_r9.CreationDurationMS), " ");
136
+ } }
137
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "span", 61);
139
+ i0.ɵɵelement(1, "i", 70);
140
+ i0.ɵɵtext(2);
141
+ i0.ɵɵelementEnd();
142
+ } if (rf & 2) {
143
+ const label_r9 = i0.ɵɵnextContext().$implicit;
144
+ i0.ɵɵadvance(2);
145
+ i0.ɵɵtextInterpolate1(" ", label_r9.CreatedByUser, " ");
146
+ } }
147
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_22_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "p", 64);
149
+ i0.ɵɵtext(1);
150
+ i0.ɵɵelementEnd();
151
+ } if (rf & 2) {
152
+ const label_r9 = i0.ɵɵnextContext().$implicit;
153
+ i0.ɵɵadvance();
154
+ i0.ɵɵtextInterpolate(label_r9.Description);
155
+ } }
156
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵelementStart(0, "span", 74);
158
+ i0.ɵɵtext(1);
159
+ i0.ɵɵpipe(2, "slice");
160
+ i0.ɵɵelementEnd();
161
+ } if (rf & 2) {
162
+ const child_r10 = i0.ɵɵnextContext().$implicit;
163
+ i0.ɵɵadvance();
164
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind3(2, 1, child_r10.RecordID, 0, 12), "...");
165
+ } }
166
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "span", 75);
168
+ i0.ɵɵtext(1);
169
+ i0.ɵɵelementEnd();
170
+ } if (rf & 2) {
171
+ const child_r10 = i0.ɵɵnextContext().$implicit;
172
+ i0.ɵɵadvance();
173
+ i0.ɵɵtextInterpolate1("", child_r10.ItemCount, " items");
174
+ } }
175
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Template(rf, ctx) { if (rf & 1) {
176
+ i0.ɵɵelementStart(0, "div", 71);
177
+ i0.ɵɵelement(1, "i", 72);
178
+ i0.ɵɵelementStart(2, "span", 73);
179
+ i0.ɵɵtext(3);
180
+ i0.ɵɵelementEnd();
181
+ i0.ɵɵconditionalCreate(4, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Conditional_4_Template, 3, 5, "span", 74);
182
+ i0.ɵɵconditionalCreate(5, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Conditional_5_Template, 2, 1, "span", 75);
183
+ i0.ɵɵelementEnd();
184
+ } if (rf & 2) {
185
+ const child_r10 = ctx.$implicit;
186
+ i0.ɵɵadvance(3);
187
+ i0.ɵɵtextInterpolate(child_r10.Name);
188
+ i0.ɵɵadvance();
189
+ i0.ɵɵconditional(child_r10.RecordID ? 4 : -1);
190
+ i0.ɵɵadvance();
191
+ i0.ɵɵconditional(child_r10.ItemCount ? 5 : -1);
192
+ } }
193
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
194
+ i0.ɵɵelementStart(0, "div", 65);
195
+ i0.ɵɵrepeaterCreate(1, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_For_2_Template, 6, 3, "div", 71, i0.ɵɵrepeaterTrackByIdentity);
196
+ i0.ɵɵelementEnd();
197
+ } if (rf & 2) {
198
+ const label_r9 = i0.ɵɵnextContext().$implicit;
199
+ const ctx_r1 = i0.ɵɵnextContext(3);
200
+ i0.ɵɵadvance();
201
+ i0.ɵɵrepeater(ctx_r1.GetChildLabels(label_r9.ID));
202
+ } }
203
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Template(rf, ctx) { if (rf & 1) {
204
+ const _r8 = i0.ɵɵgetCurrentView();
205
+ i0.ɵɵelementStart(0, "div", 47);
206
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Template_div_click_0_listener() { const label_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnLabelClick(label_r9)); });
207
+ i0.ɵɵelementStart(1, "div", 48)(2, "div", 49);
208
+ i0.ɵɵelement(3, "i", 50);
209
+ i0.ɵɵelementStart(4, "h3", 51);
210
+ i0.ɵɵtext(5);
211
+ i0.ɵɵelementEnd();
212
+ i0.ɵɵconditionalCreate(6, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_6_Template, 3, 1, "span", 52);
213
+ i0.ɵɵelementStart(7, "span", 53);
214
+ i0.ɵɵtext(8);
215
+ i0.ɵɵelementEnd()();
216
+ i0.ɵɵelementStart(9, "div", 54)(10, "span", 55);
217
+ i0.ɵɵelement(11, "i", 56);
218
+ i0.ɵɵtext(12);
219
+ i0.ɵɵelementEnd();
220
+ i0.ɵɵconditionalCreate(13, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_13_Template, 3, 1, "span", 57);
221
+ i0.ɵɵconditionalCreate(14, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_14_Template, 4, 5, "span", 58);
222
+ i0.ɵɵconditionalCreate(15, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_15_Template, 3, 1, "span", 59);
223
+ i0.ɵɵconditionalCreate(16, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_16_Template, 3, 1, "span", 59);
224
+ i0.ɵɵconditionalCreate(17, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_17_Template, 3, 1, "span", 60);
225
+ i0.ɵɵconditionalCreate(18, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_18_Template, 3, 1, "span", 61);
226
+ i0.ɵɵelementStart(19, "span", 62);
227
+ i0.ɵɵelement(20, "i", 63);
228
+ i0.ɵɵtext(21);
229
+ i0.ɵɵelementEnd()()();
230
+ i0.ɵɵconditionalCreate(22, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_22_Template, 2, 1, "p", 64);
231
+ i0.ɵɵconditionalCreate(23, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Conditional_23_Template, 3, 0, "div", 65);
232
+ i0.ɵɵelementEnd();
233
+ } if (rf & 2) {
234
+ const label_r9 = ctx.$implicit;
235
+ const ctx_r1 = i0.ɵɵnextContext(3);
236
+ i0.ɵɵclassProp("group-parent", ctx_r1.IsGroupParent(label_r9));
237
+ i0.ɵɵadvance(3);
238
+ i0.ɵɵclassMap(ctx_r1.GetScopeIcon(label_r9.Scope));
239
+ i0.ɵɵadvance(2);
240
+ i0.ɵɵtextInterpolate(label_r9.Name);
241
+ i0.ɵɵadvance();
242
+ i0.ɵɵconditional(ctx_r1.IsGroupParent(label_r9) ? 6 : -1);
243
+ i0.ɵɵadvance();
244
+ i0.ɵɵproperty("ngClass", ctx_r1.GetStatusClass(label_r9.Status));
245
+ i0.ɵɵadvance();
246
+ i0.ɵɵtextInterpolate1(" ", label_r9.Status, " ");
247
+ i0.ɵɵadvance(4);
248
+ i0.ɵɵtextInterpolate1(" ", label_r9.Scope, " ");
249
+ i0.ɵɵadvance();
250
+ i0.ɵɵconditional(label_r9.Entity || label_r9.EntityID ? 13 : -1);
251
+ i0.ɵɵadvance();
252
+ i0.ɵɵconditional(label_r9.RecordID ? 14 : -1);
253
+ i0.ɵɵadvance();
254
+ i0.ɵɵconditional(label_r9.ItemCount ? 15 : -1);
255
+ i0.ɵɵadvance();
256
+ i0.ɵɵconditional(!label_r9.ItemCount ? 16 : -1);
257
+ i0.ɵɵadvance();
258
+ i0.ɵɵconditional(label_r9.CreationDurationMS ? 17 : -1);
259
+ i0.ɵɵadvance();
260
+ i0.ɵɵconditional(label_r9.CreatedByUser ? 18 : -1);
261
+ i0.ɵɵadvance(3);
262
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.FormatDate(label_r9.__mj_CreatedAt), " ");
263
+ i0.ɵɵadvance();
264
+ i0.ɵɵconditional(label_r9.Description ? 22 : -1);
265
+ i0.ɵɵadvance();
266
+ i0.ɵɵconditional(ctx_r1.IsGroupParent(label_r9) && ctx_r1.GetChildLabels(label_r9.ID).length > 0 ? 23 : -1);
267
+ } }
268
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_Template(rf, ctx) { if (rf & 1) {
269
+ i0.ɵɵelementStart(0, "div", 38);
270
+ i0.ɵɵrepeaterCreate(1, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_For_2_Template, 24, 18, "div", 46, i0.ɵɵrepeaterTrackByIdentity);
271
+ i0.ɵɵelementEnd();
272
+ } if (rf & 2) {
273
+ const ctx_r1 = i0.ɵɵnextContext(2);
274
+ i0.ɵɵadvance();
275
+ i0.ɵɵrepeater(ctx_r1.FilteredLabels);
276
+ } }
277
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_For_19_Conditional_6_Template(rf, ctx) { if (rf & 1) {
278
+ i0.ɵɵelementStart(0, "span", 90);
279
+ i0.ɵɵelement(1, "i", 56);
280
+ i0.ɵɵtext(2);
281
+ i0.ɵɵelementEnd();
282
+ } if (rf & 2) {
283
+ const label_r13 = i0.ɵɵnextContext().$implicit;
284
+ const ctx_r1 = i0.ɵɵnextContext(3);
285
+ i0.ɵɵadvance(2);
286
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.GetChildLabels(label_r13.ID).length, " ");
287
+ } }
288
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_For_19_Template(rf, ctx) { if (rf & 1) {
289
+ const _r12 = i0.ɵɵgetCurrentView();
290
+ i0.ɵɵelementStart(0, "div", 86);
291
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_For_19_Template_div_click_0_listener() { const label_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnLabelClick(label_r13)); });
292
+ i0.ɵɵelementStart(1, "span", 77);
293
+ i0.ɵɵelement(2, "i", 87);
294
+ i0.ɵɵelementEnd();
295
+ i0.ɵɵelementStart(3, "span", 88)(4, "span", 89);
296
+ i0.ɵɵtext(5);
297
+ i0.ɵɵelementEnd();
298
+ i0.ɵɵconditionalCreate(6, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_For_19_Conditional_6_Template, 3, 1, "span", 90);
299
+ i0.ɵɵelementEnd();
300
+ i0.ɵɵelementStart(7, "span", 80);
301
+ i0.ɵɵtext(8);
302
+ i0.ɵɵelementEnd();
303
+ i0.ɵɵelementStart(9, "span", 91)(10, "span", 92);
304
+ i0.ɵɵtext(11);
305
+ i0.ɵɵelementEnd()();
306
+ i0.ɵɵelementStart(12, "span", 93);
307
+ i0.ɵɵtext(13);
308
+ i0.ɵɵelementEnd();
309
+ i0.ɵɵelementStart(14, "span", 94);
310
+ i0.ɵɵtext(15);
311
+ i0.ɵɵelementEnd();
312
+ i0.ɵɵelementStart(16, "span", 84);
313
+ i0.ɵɵelement(17, "i", 95);
314
+ i0.ɵɵelementEnd()();
315
+ } if (rf & 2) {
316
+ const label_r13 = ctx.$implicit;
317
+ const ctx_r1 = i0.ɵɵnextContext(3);
318
+ i0.ɵɵadvance(2);
319
+ i0.ɵɵclassMap(ctx_r1.GetScopeIcon(label_r13.Scope));
320
+ i0.ɵɵadvance(3);
321
+ i0.ɵɵtextInterpolate(label_r13.Name);
322
+ i0.ɵɵadvance();
323
+ i0.ɵɵconditional(ctx_r1.IsGroupParent(label_r13) ? 6 : -1);
324
+ i0.ɵɵadvance(2);
325
+ i0.ɵɵtextInterpolate(label_r13.Entity ?? ctx_r1.ResolveEntityName(label_r13.EntityID));
326
+ i0.ɵɵadvance(2);
327
+ i0.ɵɵproperty("ngClass", ctx_r1.GetStatusClass(label_r13.Status));
328
+ i0.ɵɵadvance();
329
+ i0.ɵɵtextInterpolate(label_r13.Status);
330
+ i0.ɵɵadvance(2);
331
+ i0.ɵɵtextInterpolate(label_r13.ItemCount || ctx_r1.GetItemCount(label_r13.ID));
332
+ i0.ɵɵadvance(2);
333
+ i0.ɵɵtextInterpolate(ctx_r1.FormatDate(label_r13.__mj_CreatedAt));
334
+ } }
335
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template(rf, ctx) { if (rf & 1) {
336
+ const _r11 = i0.ɵɵgetCurrentView();
337
+ i0.ɵɵelementStart(0, "div", 39)(1, "div", 76);
338
+ i0.ɵɵelement(2, "span", 77);
339
+ i0.ɵɵelementStart(3, "span", 78);
340
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template_span_click_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("Name")); });
341
+ i0.ɵɵtext(4, " Name ");
342
+ i0.ɵɵelement(5, "i", 79);
343
+ i0.ɵɵelementEnd();
344
+ i0.ɵɵelementStart(6, "span", 80);
345
+ i0.ɵɵtext(7, "Entity");
346
+ i0.ɵɵelementEnd();
347
+ i0.ɵɵelementStart(8, "span", 81);
348
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template_span_click_8_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("Status")); });
349
+ i0.ɵɵtext(9, " Status ");
350
+ i0.ɵɵelement(10, "i", 79);
351
+ i0.ɵɵelementEnd();
352
+ i0.ɵɵelementStart(11, "span", 82);
353
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template_span_click_11_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("Items")); });
354
+ i0.ɵɵtext(12, " Items ");
355
+ i0.ɵɵelement(13, "i", 79);
356
+ i0.ɵɵelementEnd();
357
+ i0.ɵɵelementStart(14, "span", 83);
358
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template_span_click_14_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("Date")); });
359
+ i0.ɵɵtext(15, " Created ");
360
+ i0.ɵɵelement(16, "i", 79);
361
+ i0.ɵɵelementEnd();
362
+ i0.ɵɵelement(17, "span", 84);
363
+ i0.ɵɵelementEnd();
364
+ i0.ɵɵrepeaterCreate(18, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_For_19_Template, 18, 9, "div", 85, i0.ɵɵrepeaterTrackByIdentity);
365
+ i0.ɵɵelementEnd();
366
+ } if (rf & 2) {
367
+ const ctx_r1 = i0.ɵɵnextContext(2);
368
+ i0.ɵɵadvance(5);
369
+ i0.ɵɵclassMap(ctx_r1.GetSortIcon("Name"));
370
+ i0.ɵɵadvance(5);
371
+ i0.ɵɵclassMap(ctx_r1.GetSortIcon("Status"));
372
+ i0.ɵɵadvance(3);
373
+ i0.ɵɵclassMap(ctx_r1.GetSortIcon("Items"));
374
+ i0.ɵɵadvance(3);
375
+ i0.ɵɵclassMap(ctx_r1.GetSortIcon("Date"));
376
+ i0.ɵɵadvance(2);
377
+ i0.ɵɵrepeater(ctx_r1.FilteredLabels);
378
+ } }
379
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_4_Template(rf, ctx) { if (rf & 1) {
380
+ i0.ɵɵelementStart(0, "p");
381
+ i0.ɵɵtext(1, " Try adjusting your filters or search criteria. ");
382
+ i0.ɵɵelementEnd();
383
+ } }
384
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_5_Template(rf, ctx) { if (rf & 1) {
385
+ i0.ɵɵelementStart(0, "p");
386
+ i0.ɵɵtext(1, " No version labels have been created yet. ");
387
+ i0.ɵɵelementEnd();
388
+ } }
389
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_6_Template(rf, ctx) { if (rf & 1) {
390
+ const _r14 = i0.ɵɵgetCurrentView();
391
+ i0.ɵɵelementStart(0, "button", 98);
392
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenCreateDialog()); });
393
+ i0.ɵɵelement(1, "i", 15);
394
+ i0.ɵɵelementStart(2, "span");
395
+ i0.ɵɵtext(3, "Create Your First Label");
396
+ i0.ɵɵelementEnd()();
397
+ } }
398
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Template(rf, ctx) { if (rf & 1) {
399
+ i0.ɵɵelementStart(0, "div", 40);
400
+ i0.ɵɵelement(1, "i", 96);
401
+ i0.ɵɵelementStart(2, "h3");
402
+ i0.ɵɵtext(3, "No labels found");
403
+ i0.ɵɵelementEnd();
404
+ i0.ɵɵconditionalCreate(4, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_4_Template, 2, 0, "p");
405
+ i0.ɵɵconditionalCreate(5, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_5_Template, 2, 0, "p");
406
+ i0.ɵɵconditionalCreate(6, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Conditional_6_Template, 4, 0, "button", 97);
407
+ i0.ɵɵelementEnd();
408
+ } if (rf & 2) {
409
+ const ctx_r1 = i0.ɵɵnextContext(2);
410
+ i0.ɵɵadvance(4);
411
+ i0.ɵɵconditional(ctx_r1.SearchText || ctx_r1.ScopeFilter || ctx_r1.StatusFilter ? 4 : -1);
412
+ i0.ɵɵadvance();
413
+ i0.ɵɵconditional(!ctx_r1.SearchText && !ctx_r1.ScopeFilter && !ctx_r1.StatusFilter ? 5 : -1);
414
+ i0.ɵɵadvance();
415
+ i0.ɵɵconditional(!ctx_r1.SearchText && !ctx_r1.ScopeFilter && !ctx_r1.StatusFilter ? 6 : -1);
416
+ } }
417
+ function VersionHistoryLabelsResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
418
+ const _r1 = i0.ɵɵgetCurrentView();
419
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "h2", 6);
420
+ i0.ɵɵtext(3, "Version Labels");
421
+ i0.ɵɵelementEnd();
422
+ i0.ɵɵelementStart(4, "p", 7);
423
+ i0.ɵɵtext(5, "Manage versioning snapshots across your system");
424
+ i0.ɵɵelementEnd()();
425
+ i0.ɵɵelementStart(6, "div", 8)(7, "div", 9)(8, "button", 10);
426
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetViewMode("card")); });
427
+ i0.ɵɵelement(9, "i", 11);
428
+ i0.ɵɵelementEnd();
429
+ i0.ɵɵelementStart(10, "button", 12);
430
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetViewMode("list")); });
431
+ i0.ɵɵelement(11, "i", 13);
432
+ i0.ɵɵelementEnd()();
433
+ i0.ɵɵelementStart(12, "button", 14);
434
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OpenCreateDialog()); });
435
+ i0.ɵɵelement(13, "i", 15);
436
+ i0.ɵɵelementStart(14, "span");
437
+ i0.ɵɵtext(15, "Create Label");
438
+ i0.ɵɵelementEnd()();
439
+ i0.ɵɵelementStart(16, "button", 16);
440
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_2_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Refresh()); });
441
+ i0.ɵɵelement(17, "i", 17);
442
+ i0.ɵɵelementEnd()()();
443
+ i0.ɵɵelementStart(18, "div", 18)(19, "div", 19)(20, "div", 20);
444
+ i0.ɵɵelement(21, "i", 21);
445
+ i0.ɵɵelementEnd();
446
+ i0.ɵɵelementStart(22, "div", 22)(23, "div", 23);
447
+ i0.ɵɵtext(24);
448
+ i0.ɵɵelementEnd();
449
+ i0.ɵɵelementStart(25, "div", 24);
450
+ i0.ɵɵtext(26, "Total Labels");
451
+ i0.ɵɵelementEnd()()();
452
+ i0.ɵɵelementStart(27, "div", 19)(28, "div", 25);
453
+ i0.ɵɵelement(29, "i", 26);
454
+ i0.ɵɵelementEnd();
455
+ i0.ɵɵelementStart(30, "div", 22)(31, "div", 23);
456
+ i0.ɵɵtext(32);
457
+ i0.ɵɵelementEnd();
458
+ i0.ɵɵelementStart(33, "div", 24);
459
+ i0.ɵɵtext(34, "Active");
460
+ i0.ɵɵelementEnd()()();
461
+ i0.ɵɵelementStart(35, "div", 19)(36, "div", 27);
462
+ i0.ɵɵelement(37, "i", 28);
463
+ i0.ɵɵelementEnd();
464
+ i0.ɵɵelementStart(38, "div", 22)(39, "div", 23);
465
+ i0.ɵɵtext(40);
466
+ i0.ɵɵelementEnd();
467
+ i0.ɵɵelementStart(41, "div", 24);
468
+ i0.ɵɵtext(42, "Archived");
469
+ i0.ɵɵelementEnd()()();
470
+ i0.ɵɵelementStart(43, "div", 19)(44, "div", 29);
471
+ i0.ɵɵelement(45, "i", 30);
472
+ i0.ɵɵelementEnd();
473
+ i0.ɵɵelementStart(46, "div", 22)(47, "div", 23);
474
+ i0.ɵɵtext(48);
475
+ i0.ɵɵelementEnd();
476
+ i0.ɵɵelementStart(49, "div", 24);
477
+ i0.ɵɵtext(50, "Restored");
478
+ i0.ɵɵelementEnd()()()();
479
+ i0.ɵɵelementStart(51, "div", 31);
480
+ i0.ɵɵrepeaterCreate(52, VersionHistoryLabelsResourceComponent_Conditional_2_For_53_Template, 6, 6, "button", 32, i0.ɵɵrepeaterTrackByIdentity);
481
+ i0.ɵɵrepeaterCreate(54, VersionHistoryLabelsResourceComponent_Conditional_2_For_55_Template, 5, 5, "button", 33, i0.ɵɵrepeaterTrackByIdentity);
482
+ i0.ɵɵelementEnd();
483
+ i0.ɵɵelementStart(56, "div", 34);
484
+ i0.ɵɵelement(57, "i", 35);
485
+ i0.ɵɵelementStart(58, "input", 36);
486
+ i0.ɵɵlistener("ngModelChange", function VersionHistoryLabelsResourceComponent_Conditional_2_Template_input_ngModelChange_58_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSearchChange($event)); });
487
+ i0.ɵɵelementEnd();
488
+ i0.ɵɵconditionalCreate(59, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_59_Template, 2, 0, "button", 37);
489
+ i0.ɵɵelementEnd();
490
+ i0.ɵɵconditionalCreate(60, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_60_Template, 3, 0, "div", 38);
491
+ i0.ɵɵconditionalCreate(61, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_61_Template, 20, 8, "div", 39);
492
+ i0.ɵɵconditionalCreate(62, VersionHistoryLabelsResourceComponent_Conditional_2_Conditional_62_Template, 7, 3, "div", 40);
493
+ } if (rf & 2) {
494
+ const ctx_r1 = i0.ɵɵnextContext();
495
+ i0.ɵɵadvance(8);
496
+ i0.ɵɵclassProp("active", ctx_r1.ViewMode === "card");
497
+ i0.ɵɵadvance(2);
498
+ i0.ɵɵclassProp("active", ctx_r1.ViewMode === "list");
499
+ i0.ɵɵadvance(14);
500
+ i0.ɵɵtextInterpolate(ctx_r1.FormatNumber(ctx_r1.TotalLabels));
501
+ i0.ɵɵadvance(8);
502
+ i0.ɵɵtextInterpolate(ctx_r1.FormatNumber(ctx_r1.ActiveLabels));
503
+ i0.ɵɵadvance(8);
504
+ i0.ɵɵtextInterpolate(ctx_r1.FormatNumber(ctx_r1.ArchivedLabels));
505
+ i0.ɵɵadvance(8);
506
+ i0.ɵɵtextInterpolate(ctx_r1.FormatNumber(ctx_r1.RestoredLabels));
507
+ i0.ɵɵadvance(4);
508
+ i0.ɵɵrepeater(ctx_r1.ScopeStats);
509
+ i0.ɵɵadvance(2);
510
+ i0.ɵɵrepeater(ctx_r1.StatusStats);
511
+ i0.ɵɵadvance(4);
512
+ i0.ɵɵproperty("ngModel", ctx_r1.SearchText);
513
+ i0.ɵɵadvance();
514
+ i0.ɵɵconditional(ctx_r1.SearchText ? 59 : -1);
515
+ i0.ɵɵadvance();
516
+ i0.ɵɵconditional(ctx_r1.FilteredLabels.length > 0 && ctx_r1.ViewMode === "card" ? 60 : -1);
517
+ i0.ɵɵadvance();
518
+ i0.ɵɵconditional(ctx_r1.FilteredLabels.length > 0 && ctx_r1.ViewMode === "list" ? 61 : -1);
519
+ i0.ɵɵadvance();
520
+ i0.ɵɵconditional(ctx_r1.FilteredLabels.length === 0 && !ctx_r1.IsLoading ? 62 : -1);
521
+ } }
522
+ function VersionHistoryLabelsResourceComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
523
+ const _r15 = i0.ɵɵgetCurrentView();
524
+ i0.ɵɵelementStart(0, "div", 99);
525
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnCreateWizardCancel()); });
526
+ i0.ɵɵelementStart(1, "div", 100);
527
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_3_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r15); return i0.ɵɵresetView($event.stopPropagation()); });
528
+ i0.ɵɵelementStart(2, "div", 101)(3, "h3", 102);
529
+ i0.ɵɵelement(4, "i", 103);
530
+ i0.ɵɵtext(5, " Create Version Label ");
531
+ i0.ɵɵelementEnd();
532
+ i0.ɵɵelementStart(6, "button", 104);
533
+ i0.ɵɵlistener("click", function VersionHistoryLabelsResourceComponent_Conditional_3_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnCreateWizardCancel()); });
534
+ i0.ɵɵelement(7, "i", 45);
535
+ i0.ɵɵelementEnd()();
536
+ i0.ɵɵelementStart(8, "div", 105)(9, "mj-label-create", 106);
537
+ i0.ɵɵlistener("Created", function VersionHistoryLabelsResourceComponent_Conditional_3_Template_mj_label_create_Created_9_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnLabelCreated($event)); })("Cancel", function VersionHistoryLabelsResourceComponent_Conditional_3_Template_mj_label_create_Cancel_9_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnCreateWizardCancel()); });
538
+ i0.ɵɵelementEnd()()()();
539
+ } }
540
+ function VersionHistoryLabelsResourceComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
541
+ const _r16 = i0.ɵɵgetCurrentView();
542
+ i0.ɵɵelementStart(0, "mj-label-detail-panel", 107);
543
+ i0.ɵɵlistener("Close", function VersionHistoryLabelsResourceComponent_Conditional_4_Template_mj_label_detail_panel_Close_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDetailPanelClose()); })("LabelUpdated", function VersionHistoryLabelsResourceComponent_Conditional_4_Template_mj_label_detail_panel_LabelUpdated_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnLabelUpdated()); })("EntityLinkClick", function VersionHistoryLabelsResourceComponent_Conditional_4_Template_mj_label_detail_panel_EntityLinkClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnEntityLinkClick($event)); });
544
+ i0.ɵɵelementEnd();
545
+ } if (rf & 2) {
546
+ const ctx_r1 = i0.ɵɵnextContext();
547
+ i0.ɵɵproperty("Label", ctx_r1.SelectedLabel)("AllLabels", ctx_r1.Labels)("ItemCountMap", ctx_r1.ItemCountMap);
548
+ } }
549
+ let VersionHistoryLabelsResourceComponent = class VersionHistoryLabelsResourceComponent extends BaseResourceComponent {
550
+ static { VersionHistoryLabelsResourceComponent_1 = this; }
551
+ cdr;
552
+ navigationService;
553
+ static PREFS_KEY = 'VersionHistory.Labels.UserPreferences';
554
+ IsLoading = true;
555
+ // View mode
556
+ ViewMode = 'card';
557
+ // Detail panel
558
+ SelectedLabel = null;
559
+ ShowDetailPanel = false;
560
+ // Stats
561
+ TotalLabels = 0;
562
+ ActiveLabels = 0;
563
+ ArchivedLabels = 0;
564
+ RestoredLabels = 0;
565
+ // Grouped data
566
+ ScopeStats = [];
567
+ StatusStats = [];
568
+ Labels = [];
569
+ FilteredLabels = [];
570
+ ItemCountMap = new Map();
571
+ // Filters
572
+ ScopeFilter = '';
573
+ StatusFilter = '';
574
+ SearchText = '';
575
+ // Sorting
576
+ SortField = 'Date';
577
+ SortDirection = 'desc';
578
+ // User preferences
579
+ preferencesLoaded = false;
580
+ // Create Label Wizard
581
+ ShowCreateWizard = false;
582
+ metadata = new Metadata();
583
+ destroy$ = new Subject();
584
+ constructor(cdr, navigationService) {
585
+ super();
586
+ this.cdr = cdr;
587
+ this.navigationService = navigationService;
588
+ }
589
+ ngOnInit() {
590
+ this.loadUserPreferences();
591
+ this.LoadData();
592
+ }
593
+ ngOnDestroy() {
594
+ this.destroy$.next();
595
+ this.destroy$.complete();
596
+ }
597
+ async GetResourceDisplayName(data) {
598
+ return 'Labels';
599
+ }
600
+ async GetResourceIconClass(data) {
601
+ return 'fa-solid fa-tags';
602
+ }
603
+ // =======================================================================
604
+ // Data loading
605
+ // =======================================================================
606
+ async LoadData() {
607
+ try {
608
+ this.IsLoading = true;
609
+ this.cdr.markForCheck();
610
+ const rv = new RunView();
611
+ const [labelsResult, itemsResult] = await rv.RunViews([
612
+ {
613
+ EntityName: 'MJ: Version Labels',
614
+ OrderBy: '__mj_CreatedAt DESC',
615
+ MaxRows: 500,
616
+ ResultType: 'simple'
617
+ },
618
+ {
619
+ EntityName: 'MJ: Version Label Items',
620
+ Fields: ['VersionLabelID'],
621
+ ResultType: 'simple'
622
+ }
623
+ ]);
624
+ if (labelsResult.Success) {
625
+ this.Labels = labelsResult.Results;
626
+ const items = itemsResult.Success
627
+ ? itemsResult.Results
628
+ : [];
629
+ this.ItemCountMap = this.buildItemCountMap(items);
630
+ this.computeStats();
631
+ this.applyFilters();
632
+ }
633
+ }
634
+ catch (error) {
635
+ console.error('Error loading version labels:', error);
636
+ }
637
+ finally {
638
+ this.IsLoading = false;
639
+ this.NotifyLoadComplete();
640
+ this.cdr.markForCheck();
641
+ }
642
+ }
643
+ buildItemCountMap(items) {
644
+ const counts = new Map();
645
+ for (const item of items) {
646
+ const labelId = item.VersionLabelID ?? '';
647
+ counts.set(labelId, (counts.get(labelId) ?? 0) + 1);
648
+ }
649
+ return counts;
650
+ }
651
+ GetItemCount(labelId) {
652
+ return this.ItemCountMap.get(labelId ?? '') ?? 0;
653
+ }
654
+ ResolveEntityName(entityId) {
655
+ if (!entityId)
656
+ return '';
657
+ const entity = this.metadata.Entities.find(e => e.ID === entityId);
658
+ return entity ? entity.Name : '';
659
+ }
660
+ // =======================================================================
661
+ // Stats
662
+ // =======================================================================
663
+ computeStats() {
664
+ // Only count root-level labels (exclude children) for stats
665
+ const rootLabels = this.Labels.filter(l => !l.ParentID);
666
+ this.TotalLabels = rootLabels.length;
667
+ this.ActiveLabels = rootLabels.filter(l => l.Status === 'Active').length;
668
+ this.ArchivedLabels = rootLabels.filter(l => l.Status === 'Archived').length;
669
+ this.RestoredLabels = rootLabels.filter(l => l.Status === 'Restored').length;
670
+ this.ScopeStats = this.computeScopeStats();
671
+ this.StatusStats = this.computeStatusStats();
672
+ }
673
+ computeScopeStats() {
674
+ const scopeMap = new Map();
675
+ for (const label of this.Labels) {
676
+ const scope = label.Scope ?? 'Record';
677
+ scopeMap.set(scope, (scopeMap.get(scope) ?? 0) + 1);
678
+ }
679
+ const scopeConfig = {
680
+ 'System': { Icon: 'fa-solid fa-globe', Color: '#6366f1' },
681
+ 'Entity': { Icon: 'fa-solid fa-table', Color: '#3b82f6' },
682
+ 'Record': { Icon: 'fa-solid fa-file', Color: '#10b981' }
683
+ };
684
+ return Array.from(scopeMap.entries()).map(([scope, count]) => ({
685
+ Scope: scope,
686
+ Count: count,
687
+ Icon: scopeConfig[scope]?.Icon ?? 'fa-solid fa-tag',
688
+ Color: scopeConfig[scope]?.Color ?? '#64748b'
689
+ }));
690
+ }
691
+ computeStatusStats() {
692
+ const statusMap = new Map();
693
+ for (const label of this.Labels) {
694
+ const status = label.Status ?? 'Active';
695
+ statusMap.set(status, (statusMap.get(status) ?? 0) + 1);
696
+ }
697
+ const statusColors = {
698
+ 'Active': '#10b981',
699
+ 'Archived': '#6b7280',
700
+ 'Restored': '#f59e0b'
701
+ };
702
+ return Array.from(statusMap.entries()).map(([status, count]) => ({
703
+ Status: status,
704
+ Count: count,
705
+ Color: statusColors[status] ?? '#64748b'
706
+ }));
707
+ }
708
+ // =======================================================================
709
+ // Filters
710
+ // =======================================================================
711
+ applyFilters() {
712
+ // First: exclude child labels (those with ParentID) from top-level list
713
+ let result = this.Labels.filter(l => !l.ParentID);
714
+ // Apply scope filter
715
+ if (this.ScopeFilter) {
716
+ result = result.filter(l => l.Scope === this.ScopeFilter);
717
+ }
718
+ // Apply status filter
719
+ if (this.StatusFilter) {
720
+ result = result.filter(l => l.Status === this.StatusFilter);
721
+ }
722
+ // Apply search
723
+ if (this.SearchText) {
724
+ const search = this.SearchText.toLowerCase();
725
+ result = result.filter(l => {
726
+ const name = (l.Name ?? '').toLowerCase();
727
+ const desc = (l.Description ?? '').toLowerCase();
728
+ const entityName = (l.Entity ?? this.ResolveEntityName(l.EntityID)).toLowerCase();
729
+ return name.includes(search) || desc.includes(search) || entityName.includes(search);
730
+ });
731
+ }
732
+ // Apply sorting
733
+ result = this.sortLabels(result);
734
+ this.FilteredLabels = result;
735
+ this.cdr.markForCheck();
736
+ }
737
+ sortLabels(labels) {
738
+ const dir = this.SortDirection === 'asc' ? 1 : -1;
739
+ return [...labels].sort((a, b) => {
740
+ switch (this.SortField) {
741
+ case 'Name':
742
+ return dir * (a.Name ?? '').localeCompare(b.Name ?? '');
743
+ case 'Scope':
744
+ return dir * (a.Scope ?? '').localeCompare(b.Scope ?? '');
745
+ case 'Status':
746
+ return dir * (a.Status ?? '').localeCompare(b.Status ?? '');
747
+ case 'Items': {
748
+ const aCount = this.GetItemCount(a.ID);
749
+ const bCount = this.GetItemCount(b.ID);
750
+ return dir * (aCount - bCount);
751
+ }
752
+ case 'Date':
753
+ default: {
754
+ const aDate = a['__mj_CreatedAt'] ?? '';
755
+ const bDate = b['__mj_CreatedAt'] ?? '';
756
+ return dir * String(aDate).localeCompare(String(bDate));
757
+ }
758
+ }
759
+ });
760
+ }
761
+ OnSortChange(field) {
762
+ if (this.SortField === field) {
763
+ this.SortDirection = this.SortDirection === 'asc' ? 'desc' : 'asc';
764
+ }
765
+ else {
766
+ this.SortField = field;
767
+ this.SortDirection = field === 'Date' ? 'desc' : 'asc';
768
+ }
769
+ this.applyFilters();
770
+ this.persistPreferences();
771
+ }
772
+ GetSortIcon(field) {
773
+ if (this.SortField !== field)
774
+ return 'fa-solid fa-sort';
775
+ return this.SortDirection === 'asc' ? 'fa-solid fa-sort-up' : 'fa-solid fa-sort-down';
776
+ }
777
+ OnScopeFilterChange(scope) {
778
+ this.ScopeFilter = this.ScopeFilter === scope ? '' : scope;
779
+ this.applyFilters();
780
+ this.persistPreferences();
781
+ }
782
+ OnStatusFilterChange(status) {
783
+ this.StatusFilter = this.StatusFilter === status ? '' : status;
784
+ this.applyFilters();
785
+ this.persistPreferences();
786
+ }
787
+ OnSearchChange(text) {
788
+ this.SearchText = text;
789
+ this.applyFilters();
790
+ }
791
+ Refresh() {
792
+ this.LoadData();
793
+ }
794
+ // =======================================================================
795
+ // View mode and detail panel
796
+ // =======================================================================
797
+ ToggleViewMode() {
798
+ this.ViewMode = this.ViewMode === 'card' ? 'list' : 'card';
799
+ this.persistPreferences();
800
+ this.cdr.markForCheck();
801
+ }
802
+ SetViewMode(mode) {
803
+ if (this.ViewMode !== mode) {
804
+ this.ViewMode = mode;
805
+ this.persistPreferences();
806
+ this.cdr.markForCheck();
807
+ }
808
+ }
809
+ OnLabelClick(label) {
810
+ this.SelectedLabel = label;
811
+ this.ShowDetailPanel = true;
812
+ this.cdr.markForCheck();
813
+ }
814
+ OnDetailPanelClose() {
815
+ this.ShowDetailPanel = false;
816
+ this.SelectedLabel = null;
817
+ this.cdr.markForCheck();
818
+ }
819
+ OnLabelUpdated() {
820
+ this.LoadData();
821
+ }
822
+ OnEntityLinkClick(event) {
823
+ this.navigationService.OpenEntityRecord(event.EntityName, event.CompositeKey);
824
+ }
825
+ // =======================================================================
826
+ // User preferences
827
+ // =======================================================================
828
+ loadUserPreferences() {
829
+ try {
830
+ const json = UserInfoEngine.Instance.GetSetting(VersionHistoryLabelsResourceComponent_1.PREFS_KEY);
831
+ if (json) {
832
+ const prefs = JSON.parse(json);
833
+ this.ViewMode = prefs.ViewMode ?? 'card';
834
+ this.ScopeFilter = prefs.ActiveScopeFilter ?? '';
835
+ this.StatusFilter = prefs.ActiveStatusFilter ?? '';
836
+ if (prefs.SortField)
837
+ this.SortField = prefs.SortField;
838
+ if (prefs.SortDirection)
839
+ this.SortDirection = prefs.SortDirection;
840
+ }
841
+ }
842
+ catch (e) {
843
+ console.warn('[VersionLabels] Failed to load user preferences:', e);
844
+ }
845
+ finally {
846
+ this.preferencesLoaded = true;
847
+ }
848
+ }
849
+ persistPreferences() {
850
+ if (!this.preferencesLoaded)
851
+ return;
852
+ const prefs = {
853
+ ViewMode: this.ViewMode,
854
+ ActiveScopeFilter: this.ScopeFilter,
855
+ ActiveStatusFilter: this.StatusFilter,
856
+ DefaultDetailTab: 'overview',
857
+ SortField: this.SortField,
858
+ SortDirection: this.SortDirection,
859
+ };
860
+ UserInfoEngine.Instance.SetSettingDebounced(VersionHistoryLabelsResourceComponent_1.PREFS_KEY, JSON.stringify(prefs));
861
+ }
862
+ // =======================================================================
863
+ // Create Label Wizard
864
+ // =======================================================================
865
+ OpenCreateDialog() {
866
+ this.ShowCreateWizard = true;
867
+ this.cdr.markForCheck();
868
+ }
869
+ OnLabelCreated(_event) {
870
+ this.ShowCreateWizard = false;
871
+ this.cdr.markForCheck();
872
+ this.LoadData();
873
+ }
874
+ OnCreateWizardCancel() {
875
+ this.ShowCreateWizard = false;
876
+ this.cdr.markForCheck();
877
+ }
878
+ // =======================================================================
879
+ // Display helpers
880
+ // =======================================================================
881
+ GetScopeIcon(scope) {
882
+ const icons = {
883
+ 'System': 'fa-solid fa-globe',
884
+ 'Entity': 'fa-solid fa-table',
885
+ 'Record': 'fa-solid fa-file'
886
+ };
887
+ return icons[scope ?? ''] ?? 'fa-solid fa-tag';
888
+ }
889
+ GetStatusClass(status) {
890
+ const classes = {
891
+ 'Active': 'status-active',
892
+ 'Archived': 'status-archived',
893
+ 'Restored': 'status-restored'
894
+ };
895
+ return classes[status ?? ''] ?? '';
896
+ }
897
+ FormatDate(date) {
898
+ if (!date)
899
+ return '';
900
+ const d = date instanceof Date ? date : new Date(date);
901
+ const now = new Date();
902
+ const diffMs = now.getTime() - d.getTime();
903
+ const diffMins = Math.floor(diffMs / 60000);
904
+ const diffHours = Math.floor(diffMs / 3600000);
905
+ const diffDays = Math.floor(diffMs / 86400000);
906
+ if (diffMins < 1)
907
+ return 'Just now';
908
+ if (diffMins < 60)
909
+ return `${diffMins}m ago`;
910
+ if (diffHours < 24)
911
+ return `${diffHours}h ago`;
912
+ if (diffDays < 7)
913
+ return `${diffDays}d ago`;
914
+ return d.toLocaleDateString('en-US', {
915
+ month: 'short',
916
+ day: 'numeric',
917
+ year: 'numeric'
918
+ });
919
+ }
920
+ FormatNumber(num) {
921
+ if (num >= 1000)
922
+ return (num / 1000).toFixed(1) + 'k';
923
+ return num.toString();
924
+ }
925
+ FormatDuration(ms) {
926
+ if (!ms)
927
+ return '';
928
+ if (ms < 1000)
929
+ return `${ms}ms`;
930
+ return `${(ms / 1000).toFixed(1)}s`;
931
+ }
932
+ IsGroupParent(label) {
933
+ return !label.RecordID && !label.ParentID && !!label.EntityID;
934
+ }
935
+ GetChildLabels(parentId) {
936
+ if (!parentId)
937
+ return [];
938
+ return this.Labels.filter(l => l.ParentID === parentId);
939
+ }
940
+ static ɵfac = function VersionHistoryLabelsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || VersionHistoryLabelsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.NavigationService)); };
941
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionHistoryLabelsResourceComponent, selectors: [["mj-version-history-labels-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 4, consts: [[1, "labels-container"], ["text", "Loading version labels..."], [1, "create-wizard-overlay"], [3, "Label", "AllLabels", "ItemCountMap"], [1, "page-header"], [1, "header-left"], [1, "page-title"], [1, "page-subtitle"], [1, "header-actions"], [1, "view-toggle"], ["title", "Card view", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List view", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-list"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "kpi-row"], [1, "kpi-card"], [1, "kpi-icon", 2, "background", "rgba(99, 102, 241, 0.1)", "color", "#6366f1"], [1, "fa-solid", "fa-tags"], [1, "kpi-content"], [1, "kpi-value"], [1, "kpi-label"], [1, "kpi-icon", 2, "background", "rgba(16, 185, 129, 0.1)", "color", "#10b981"], [1, "fa-solid", "fa-circle-check"], [1, "kpi-icon", 2, "background", "rgba(107, 114, 128, 0.1)", "color", "#6b7280"], [1, "fa-solid", "fa-box-archive"], [1, "kpi-icon", 2, "background", "rgba(245, 158, 11, 0.1)", "color", "#f59e0b"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "scope-chips"], [1, "scope-chip", 3, "active"], [1, "scope-chip", 3, "active", "ngClass"], [1, "search-bar"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search labels by name, description, or entity...", 1, "search-input", 3, "ngModelChange", "ngModel"], [1, "btn-clear"], [1, "labels-list"], [1, "labels-table"], [1, "empty-state"], [1, "scope-chip", 3, "click"], [1, "chip-count"], [1, "scope-chip", 3, "click", "ngClass"], [1, "btn-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "label-card", "clickable", 3, "group-parent"], [1, "label-card", "clickable", 3, "click"], [1, "label-header"], [1, "label-title-row"], [1, "label-scope-icon"], [1, "label-name"], [1, "group-badge"], [1, "label-status", 3, "ngClass"], [1, "label-meta"], ["title", "Scope", 1, "meta-item"], [1, "fa-solid", "fa-layer-group"], ["title", "Entity", 1, "meta-item"], ["title", "Record ID", 1, "meta-item"], ["title", "Items captured", 1, "meta-item"], ["title", "Creation time", 1, "meta-item"], ["title", "Created by", 1, "meta-item"], ["title", "Created", 1, "meta-item"], [1, "fa-regular", "fa-clock"], [1, "label-description"], [1, "child-labels"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-fingerprint"], [1, "fa-solid", "fa-camera"], [1, "fa-solid", "fa-stopwatch"], [1, "fa-solid", "fa-user"], [1, "child-label"], [1, "fa-solid", "fa-tag", "child-icon"], [1, "child-name"], [1, "child-record"], [1, "child-items"], [1, "list-header-row"], [1, "list-col-icon"], [1, "list-col-name", "sortable-header", 3, "click"], [1, "sort-icon"], [1, "list-col-entity"], [1, "list-col-status", "sortable-header", 3, "click"], [1, "list-col-items", "sortable-header", 3, "click"], [1, "list-col-date", "sortable-header", 3, "click"], [1, "list-col-arrow"], [1, "list-row", "clickable"], [1, "list-row", "clickable", 3, "click"], [1, "list-scope-icon"], [1, "list-col-name"], [1, "list-label-name"], [1, "list-group-badge"], [1, "list-col-status"], [1, "label-status", "small", 3, "ngClass"], [1, "list-col-items"], [1, "list-col-date"], [1, "fa-solid", "fa-chevron-right", "list-arrow"], [1, "fa-solid", "fa-tags", "empty-icon"], [1, "btn-primary", "empty-cta"], [1, "btn-primary", "empty-cta", 3, "click"], [1, "create-wizard-overlay", 3, "click"], [1, "create-wizard-container", 3, "click"], [1, "create-wizard-header"], [1, "create-wizard-title"], [1, "fa-solid", "fa-tag"], ["title", "Close", 1, "create-wizard-close", 3, "click"], [1, "create-wizard-body"], [3, "Created", "Cancel"], [3, "Close", "LabelUpdated", "EntityLinkClick", "Label", "AllLabels", "ItemCountMap"]], template: function VersionHistoryLabelsResourceComponent_Template(rf, ctx) { if (rf & 1) {
942
+ i0.ɵɵelementStart(0, "div", 0);
943
+ i0.ɵɵconditionalCreate(1, VersionHistoryLabelsResourceComponent_Conditional_1_Template, 1, 0, "mj-loading", 1);
944
+ i0.ɵɵconditionalCreate(2, VersionHistoryLabelsResourceComponent_Conditional_2_Template, 63, 13);
945
+ i0.ɵɵconditionalCreate(3, VersionHistoryLabelsResourceComponent_Conditional_3_Template, 10, 0, "div", 2);
946
+ i0.ɵɵconditionalCreate(4, VersionHistoryLabelsResourceComponent_Conditional_4_Template, 1, 3, "mj-label-detail-panel", 3);
947
+ i0.ɵɵelementEnd();
948
+ } if (rf & 2) {
949
+ i0.ɵɵadvance();
950
+ i0.ɵɵconditional(ctx.IsLoading ? 1 : -1);
951
+ i0.ɵɵadvance();
952
+ i0.ɵɵconditional(!ctx.IsLoading ? 2 : -1);
953
+ i0.ɵɵadvance();
954
+ i0.ɵɵconditional(ctx.ShowCreateWizard ? 3 : -1);
955
+ i0.ɵɵadvance();
956
+ i0.ɵɵconditional(ctx.ShowDetailPanel && ctx.SelectedLabel ? 4 : -1);
957
+ } }, dependencies: [i2.NgClass, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.LoadingComponent, i5.MjLabelCreateComponent, i5.MjLabelDetailComponent, i2.SlicePipe], styles: [".labels-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n}\n\n\n\n.page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n}\n\n.header-left[_ngcontent-%COMP%] { flex: 1; }\n\n.page-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.page-subtitle[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #6366f1;\n color: #ffffff;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: #4f46e5;\n}\n\n.btn-primary[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: var(--card-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.kpi-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.kpi-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n}\n\n.kpi-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 12px;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.kpi-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n line-height: 1;\n}\n\n.kpi-label[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n\n\n.scope-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.scope-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 20px;\n cursor: pointer;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.scope-chip[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n border-color: var(--border-hover, #d1d5db);\n}\n\n.scope-chip.active[_ngcontent-%COMP%] {\n background: #6366f1;\n border-color: #6366f1;\n color: #ffffff;\n}\n\n.scope-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n}\n\n.chip-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--hover-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n\n\n.search-bar[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 20px;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 14px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #6b7280);\n font-size: 14px;\n}\n\n.search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 40px 10px 40px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n}\n\n.search-input[_ngcontent-%COMP%]:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-input[_ngcontent-%COMP%]::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.btn-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: none;\n border: none;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n border-radius: 4px;\n}\n\n.btn-clear[_ngcontent-%COMP%]:hover {\n color: var(--text-primary, #1f2937);\n background: var(--hover-background, #f3f4f6);\n}\n\n\n\n.labels-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.label-card[_ngcontent-%COMP%] {\n padding: 20px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n transition: all 0.2s ease;\n}\n\n.label-card[_ngcontent-%COMP%]:hover {\n border-color: var(--border-hover, #d1d5db);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n}\n\n.label-card.group-parent[_ngcontent-%COMP%] {\n border-left: 3px solid #6366f1;\n}\n\n.label-header[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.label-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.label-scope-icon[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 16px;\n}\n\n.label-name[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n flex: 1;\n}\n\n.group-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n background: rgba(99, 102, 241, 0.1);\n color: #6366f1;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.label-status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-active[_ngcontent-%COMP%] {\n background: rgba(16, 185, 129, 0.1);\n color: #059669;\n}\n\n.status-archived[_ngcontent-%COMP%] {\n background: rgba(107, 114, 128, 0.1);\n color: #6b7280;\n}\n\n.status-restored[_ngcontent-%COMP%] {\n background: rgba(245, 158, 11, 0.1);\n color: #d97706;\n}\n\n.label-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n margin-top: 4px;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.7;\n}\n\n.label-description[_ngcontent-%COMP%] {\n margin: 10px 0 0 0;\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.5;\n}\n\n\n\n.child-labels[_ngcontent-%COMP%] {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--border-color, #e5e7eb);\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.child-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 13px;\n}\n\n.child-label[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.child-icon[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #9ca3af);\n font-size: 11px;\n}\n\n.child-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--text-primary, #1f2937);\n}\n\n.child-record[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #9ca3af);\n font-size: 12px;\n font-family: monospace;\n}\n\n.child-items[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n font-size: 12px;\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 20px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--text-tertiary, #9ca3af);\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\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;\n max-width: 400px;\n}\n\n.empty-cta[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\n\n\n\n\n\n\n\n\n\n.step-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0;\n margin-bottom: 24px;\n padding: 0 20px;\n}\n\n.step[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.step-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n background: var(--hover-background, #f3f4f6);\n color: var(--text-tertiary, #9ca3af);\n transition: all 0.2s ease;\n}\n\n.step.active[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: #6366f1;\n color: #ffffff;\n}\n\n.step.completed[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: #10b981;\n color: #ffffff;\n}\n\n.step-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-tertiary, #9ca3af);\n}\n\n.step.active[_ngcontent-%COMP%] .step-label[_ngcontent-%COMP%] {\n color: var(--text-primary, #1f2937);\n font-weight: 600;\n}\n\n.step.completed[_ngcontent-%COMP%] .step-label[_ngcontent-%COMP%] {\n color: #10b981;\n}\n\n.step-connector[_ngcontent-%COMP%] {\n width: 40px;\n height: 2px;\n background: var(--border-color, #e5e7eb);\n margin: 0 8px;\n transition: background 0.2s ease;\n}\n\n.step-connector.active[_ngcontent-%COMP%] {\n background: #10b981;\n}\n\n\n\n.dialog-step[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n min-height: 300px;\n}\n\n.step-description[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.step-header-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-back[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: none;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.15s ease;\n flex-shrink: 0;\n}\n\n.btn-back[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n\n\n.dialog-search[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.dialog-search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-tertiary, #9ca3af);\n font-size: 13px;\n}\n\n.dialog-search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 9px 12px 9px 36px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n box-sizing: border-box;\n transition: border-color 0.15s ease;\n}\n\n.dialog-search-input[_ngcontent-%COMP%]:focus {\n border-color: #6366f1;\n}\n\n.dialog-search-input[_ngcontent-%COMP%]::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n\n\n.entity-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n max-height: 320px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n}\n\n.entity-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.15s ease;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.entity-option[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.entity-option[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.entity-option-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.entity-option-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.entity-option-desc[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.entity-option-arrow[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #9ca3af);\n font-size: 12px;\n flex-shrink: 0;\n}\n\n.entity-list-empty[_ngcontent-%COMP%] {\n padding: 40px 20px;\n text-align: center;\n color: var(--text-tertiary, #9ca3af);\n font-size: 14px;\n}\n\n\n\n.records-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.selection-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.btn-text[_ngcontent-%COMP%] {\n padding: 6px 12px;\n background: none;\n border: none;\n font-size: 13px;\n font-weight: 500;\n color: #6366f1;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n}\n\n.btn-text[_ngcontent-%COMP%]:hover {\n background: rgba(99, 102, 241, 0.1);\n}\n\n.record-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n max-height: 280px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n}\n\n.record-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 16px;\n cursor: pointer;\n transition: background 0.15s ease;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.record-option[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.record-option[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.record-option.selected[_ngcontent-%COMP%] {\n background: rgba(99, 102, 241, 0.05);\n}\n\n.record-checkbox[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 2px solid var(--border-color, #d1d5db);\n border-radius: 4px;\n font-size: 11px;\n color: transparent;\n transition: all 0.15s ease;\n flex-shrink: 0;\n}\n\n.record-option.selected[_ngcontent-%COMP%] .record-checkbox[_ngcontent-%COMP%] {\n background: #6366f1;\n border-color: #6366f1;\n color: #ffffff;\n}\n\n.record-name[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.records-footer[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 8px;\n}\n\n.selection-count[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-secondary, #6b7280);\n}\n\n\n\n.details-summary[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n padding: 14px 16px;\n background: var(--hover-background, #f3f4f6);\n border-radius: 10px;\n}\n\n.summary-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.summary-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 13px;\n}\n\n.form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n}\n\n.form-input[_ngcontent-%COMP%] {\n padding: 10px 14px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.form-input[_ngcontent-%COMP%]:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-input[_ngcontent-%COMP%]::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.form-textarea[_ngcontent-%COMP%] {\n padding: 10px 14px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n resize: vertical;\n font-family: inherit;\n transition: border-color 0.15s ease;\n}\n\n.form-textarea[_ngcontent-%COMP%]:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.details-footer[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 8px;\n}\n\n\n\n.creating-step[_ngcontent-%COMP%] {\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px 20px;\n}\n\n.creating-animation[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.creating-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n color: #6366f1;\n}\n\n.creating-title[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.creating-progress[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n\n\n.progress-container[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 420px;\n margin: 16px auto 0;\n text-align: left;\n}\n\n.progress-bar-track[_ngcontent-%COMP%] {\n width: 100%;\n height: 8px;\n background: var(--hover-background, #e5e7eb);\n border-radius: 4px;\n overflow: hidden;\n}\n\n.progress-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n background: linear-gradient(90deg, #6366f1, #818cf8);\n border-radius: 4px;\n transition: width 0.3s ease;\n}\n\n.progress-details[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 8px;\n}\n\n.progress-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n margin-right: 12px;\n}\n\n.progress-pct[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #6366f1;\n white-space: nowrap;\n}\n\n.progress-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 6px;\n}\n\n.progress-stat[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n}\n\n.progress-stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n\n\n.done-step[_ngcontent-%COMP%] {\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px 20px;\n}\n\n.done-icon-wrap[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n font-size: 24px;\n margin-bottom: 16px;\n}\n\n.done-icon-wrap.success[_ngcontent-%COMP%] {\n background: rgba(16, 185, 129, 0.1);\n color: #10b981;\n}\n\n.done-icon-wrap.error[_ngcontent-%COMP%] {\n background: rgba(239, 68, 68, 0.1);\n color: #ef4444;\n}\n\n.done-title[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.done-message[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.error-text[_ngcontent-%COMP%] {\n color: #ef4444;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n background: transparent;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: all 0.15s ease;\n font-size: 14px;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n color: var(--text-primary, #1f2937);\n background: var(--hover-background, #f3f4f6);\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n color: #6366f1;\n background: rgba(99, 102, 241, 0.08);\n}\n\n.toggle-btn[_ngcontent-%COMP%] + .toggle-btn[_ngcontent-%COMP%] {\n border-left: 1px solid var(--border-color, #e5e7eb);\n}\n\n\n\n.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.label-card.clickable[_ngcontent-%COMP%]:hover {\n border-color: #6366f1;\n box-shadow: 0 2px 12px rgba(99, 102, 241, 0.1);\n transform: translateY(-1px);\n}\n\n\n\n.labels-table[_ngcontent-%COMP%] {\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.list-header-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 160px 90px 60px 100px 32px;\n align-items: center;\n padding: 10px 16px;\n background: var(--hover-background, #f9fafb);\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n font-size: 12px;\n font-weight: 600;\n color: var(--text-tertiary, #9ca3af);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.list-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 160px 90px 60px 100px 32px;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n transition: all 0.15s ease;\n}\n\n.list-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.list-row[_ngcontent-%COMP%]:hover {\n background: rgba(99, 102, 241, 0.04);\n}\n\n.list-scope-icon[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 15px;\n}\n\n.list-col-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.list-label-name[_ngcontent-%COMP%] {\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.list-group-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: rgba(99, 102, 241, 0.1);\n color: #6366f1;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.list-col-entity[_ngcontent-%COMP%] {\n color: var(--text-secondary, #6b7280);\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.list-col-items[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.list-col-date[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.list-col-arrow[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.list-arrow[_ngcontent-%COMP%] {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.list-row[_ngcontent-%COMP%]:hover .list-arrow[_ngcontent-%COMP%] {\n color: #6366f1;\n transform: translateX(2px);\n}\n\n.label-status.small[_ngcontent-%COMP%] {\n padding: 2px 8px;\n font-size: 11px;\n}\n\n\n\n.sortable-header[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: color 0.15s ease;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover {\n color: #6366f1;\n}\n\n.sort-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.4;\n transition: opacity 0.15s ease;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover .sort-icon[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n\n\n@media (max-width: 768px) {\n .kpi-row[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .list-header-row[_ngcontent-%COMP%], \n .list-row[_ngcontent-%COMP%] {\n grid-template-columns: 36px 1fr 80px 60px 32px;\n }\n\n .list-col-entity[_ngcontent-%COMP%], \n .list-col-date[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n\n\n\n.create-wizard-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n animation: _ngcontent-%COMP%_fadeIn 0.15s ease;\n}\n\n.create-wizard-container[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 90%;\n max-width: 600px;\n max-height: 85vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.create-wizard-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n flex-shrink: 0;\n}\n\n.create-wizard-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.create-wizard-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 15px;\n}\n\n.create-wizard-close[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: none;\n border: none;\n border-radius: 8px;\n color: var(--text-tertiary, #9ca3af);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.create-wizard-close[_ngcontent-%COMP%]:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.create-wizard-body[_ngcontent-%COMP%] {\n padding: 24px;\n overflow-y: auto;\n flex: 1;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}"], changeDetection: 0 });
958
+ };
959
+ VersionHistoryLabelsResourceComponent = VersionHistoryLabelsResourceComponent_1 = __decorate([
960
+ RegisterClass(BaseResourceComponent, 'VersionHistoryLabelsResource')
961
+ ], VersionHistoryLabelsResourceComponent);
962
+ export { VersionHistoryLabelsResourceComponent };
963
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionHistoryLabelsResourceComponent, [{
964
+ type: Component,
965
+ args: [{ standalone: false, selector: 'mj-version-history-labels-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"labels-container\">\n @if (IsLoading) {\n <mj-loading text=\"Loading version labels...\"></mj-loading>\n }\n\n @if (!IsLoading) {\n <!-- Header -->\n <div class=\"page-header\">\n <div class=\"header-left\">\n <h2 class=\"page-title\">Version Labels</h2>\n <p class=\"page-subtitle\">Manage versioning snapshots across your system</p>\n </div>\n <div class=\"header-actions\">\n <div class=\"view-toggle\">\n <button class=\"toggle-btn\" [class.active]=\"ViewMode === 'card'\" (click)=\"SetViewMode('card')\" title=\"Card view\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button class=\"toggle-btn\" [class.active]=\"ViewMode === 'list'\" (click)=\"SetViewMode('list')\" title=\"List view\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n <button class=\"btn-primary\" (click)=\"OpenCreateDialog()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Create Label</span>\n </button>\n <button class=\"btn-icon\" (click)=\"Refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <!-- KPI Cards -->\n <div class=\"kpi-row\">\n <div class=\"kpi-card\">\n <div class=\"kpi-icon\" style=\"background: rgba(99, 102, 241, 0.1); color: #6366f1;\">\n <i class=\"fa-solid fa-tags\"></i>\n </div>\n <div class=\"kpi-content\">\n <div class=\"kpi-value\">{{FormatNumber(TotalLabels)}}</div>\n <div class=\"kpi-label\">Total Labels</div>\n </div>\n </div>\n <div class=\"kpi-card\">\n <div class=\"kpi-icon\" style=\"background: rgba(16, 185, 129, 0.1); color: #10b981;\">\n <i class=\"fa-solid fa-circle-check\"></i>\n </div>\n <div class=\"kpi-content\">\n <div class=\"kpi-value\">{{FormatNumber(ActiveLabels)}}</div>\n <div class=\"kpi-label\">Active</div>\n </div>\n </div>\n <div class=\"kpi-card\">\n <div class=\"kpi-icon\" style=\"background: rgba(107, 114, 128, 0.1); color: #6b7280;\">\n <i class=\"fa-solid fa-box-archive\"></i>\n </div>\n <div class=\"kpi-content\">\n <div class=\"kpi-value\">{{FormatNumber(ArchivedLabels)}}</div>\n <div class=\"kpi-label\">Archived</div>\n </div>\n </div>\n <div class=\"kpi-card\">\n <div class=\"kpi-icon\" style=\"background: rgba(245, 158, 11, 0.1); color: #f59e0b;\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i>\n </div>\n <div class=\"kpi-content\">\n <div class=\"kpi-value\">{{FormatNumber(RestoredLabels)}}</div>\n <div class=\"kpi-label\">Restored</div>\n </div>\n </div>\n </div>\n <!-- Scope breakdown -->\n <div class=\"scope-chips\">\n @for (stat of ScopeStats; track stat) {\n <button class=\"scope-chip\"\n [class.active]=\"ScopeFilter === stat.Scope\"\n (click)=\"OnScopeFilterChange(stat.Scope)\">\n <i [class]=\"stat.Icon\"></i>\n <span>{{stat.Scope}}</span>\n <span class=\"chip-count\">{{stat.Count}}</span>\n </button>\n }\n @for (stat of StatusStats; track stat) {\n <button class=\"scope-chip\"\n [class.active]=\"StatusFilter === stat.Status\"\n [ngClass]=\"GetStatusClass(stat.Status)\"\n (click)=\"OnStatusFilterChange(stat.Status)\">\n <span>{{stat.Status}}</span>\n <span class=\"chip-count\">{{stat.Count}}</span>\n </button>\n }\n </div>\n <!-- Search -->\n <div class=\"search-bar\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input type=\"text\"\n class=\"search-input\"\n placeholder=\"Search labels by name, description, or entity...\"\n [ngModel]=\"SearchText\"\n (ngModelChange)=\"OnSearchChange($event)\" />\n @if (SearchText) {\n <button class=\"btn-clear\" (click)=\"OnSearchChange('')\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n <!-- Labels Card View -->\n @if (FilteredLabels.length > 0 && ViewMode === 'card') {\n <div class=\"labels-list\">\n @for (label of FilteredLabels; track label) {\n <div class=\"label-card clickable\"\n [class.group-parent]=\"IsGroupParent(label)\"\n (click)=\"OnLabelClick(label)\">\n <div class=\"label-header\">\n <div class=\"label-title-row\">\n <i [class]=\"GetScopeIcon(label.Scope)\" class=\"label-scope-icon\"></i>\n <h3 class=\"label-name\">{{label.Name}}</h3>\n @if (IsGroupParent(label)) {\n <span class=\"group-badge\">\n <i class=\"fa-solid fa-layer-group\"></i>\n {{GetChildLabels(label.ID).length}} records\n </span>\n }\n <span class=\"label-status\" [ngClass]=\"GetStatusClass(label.Status)\">\n {{label.Status}}\n </span>\n </div>\n <div class=\"label-meta\">\n <span class=\"meta-item\" title=\"Scope\">\n <i class=\"fa-solid fa-layer-group\"></i> {{label.Scope}}\n </span>\n @if (label.Entity || label.EntityID) {\n <span class=\"meta-item\" title=\"Entity\">\n <i class=\"fa-solid fa-table\"></i> {{label.Entity ?? ResolveEntityName(label.EntityID)}}\n </span>\n }\n @if (label.RecordID) {\n <span class=\"meta-item\" title=\"Record ID\">\n <i class=\"fa-solid fa-fingerprint\"></i> {{label.RecordID | slice:0:12}}...\n </span>\n }\n @if (label.ItemCount) {\n <span class=\"meta-item\" title=\"Items captured\">\n <i class=\"fa-solid fa-camera\"></i> {{label.ItemCount}} items\n </span>\n }\n @if (!label.ItemCount) {\n <span class=\"meta-item\" title=\"Items captured\">\n <i class=\"fa-solid fa-camera\"></i> {{GetItemCount(label.ID)}} items\n </span>\n }\n @if (label.CreationDurationMS) {\n <span class=\"meta-item\" title=\"Creation time\">\n <i class=\"fa-solid fa-stopwatch\"></i> {{FormatDuration(label.CreationDurationMS)}}\n </span>\n }\n @if (label.CreatedByUser) {\n <span class=\"meta-item\" title=\"Created by\">\n <i class=\"fa-solid fa-user\"></i> {{label.CreatedByUser}}\n </span>\n }\n <span class=\"meta-item\" title=\"Created\">\n <i class=\"fa-regular fa-clock\"></i> {{FormatDate(label.__mj_CreatedAt)}}\n </span>\n </div>\n </div>\n @if (label.Description) {\n <p class=\"label-description\">{{label.Description}}</p>\n }\n <!-- Child labels for group parents -->\n @if (IsGroupParent(label) && GetChildLabels(label.ID).length > 0) {\n <div class=\"child-labels\">\n @for (child of GetChildLabels(label.ID); track child) {\n <div class=\"child-label\">\n <i class=\"fa-solid fa-tag child-icon\"></i>\n <span class=\"child-name\">{{child.Name}}</span>\n @if (child.RecordID) {\n <span class=\"child-record\">{{child.RecordID | slice:0:12}}...</span>\n }\n @if (child.ItemCount) {\n <span class=\"child-items\">{{child.ItemCount}} items</span>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Labels List View -->\n @if (FilteredLabels.length > 0 && ViewMode === 'list') {\n <div class=\"labels-table\">\n <div class=\"list-header-row\">\n <span class=\"list-col-icon\"></span>\n <span class=\"list-col-name sortable-header\" (click)=\"OnSortChange('Name')\">\n Name <i [class]=\"GetSortIcon('Name')\" class=\"sort-icon\"></i>\n </span>\n <span class=\"list-col-entity\">Entity</span>\n <span class=\"list-col-status sortable-header\" (click)=\"OnSortChange('Status')\">\n Status <i [class]=\"GetSortIcon('Status')\" class=\"sort-icon\"></i>\n </span>\n <span class=\"list-col-items sortable-header\" (click)=\"OnSortChange('Items')\">\n Items <i [class]=\"GetSortIcon('Items')\" class=\"sort-icon\"></i>\n </span>\n <span class=\"list-col-date sortable-header\" (click)=\"OnSortChange('Date')\">\n Created <i [class]=\"GetSortIcon('Date')\" class=\"sort-icon\"></i>\n </span>\n <span class=\"list-col-arrow\"></span>\n </div>\n @for (label of FilteredLabels; track label) {\n <div class=\"list-row clickable\"\n (click)=\"OnLabelClick(label)\">\n <span class=\"list-col-icon\">\n <i [class]=\"GetScopeIcon(label.Scope)\" class=\"list-scope-icon\"></i>\n </span>\n <span class=\"list-col-name\">\n <span class=\"list-label-name\">{{label.Name}}</span>\n @if (IsGroupParent(label)) {\n <span class=\"list-group-badge\">\n <i class=\"fa-solid fa-layer-group\"></i> {{GetChildLabels(label.ID).length}}\n </span>\n }\n </span>\n <span class=\"list-col-entity\">{{label.Entity ?? ResolveEntityName(label.EntityID)}}</span>\n <span class=\"list-col-status\">\n <span class=\"label-status small\" [ngClass]=\"GetStatusClass(label.Status)\">{{label.Status}}</span>\n </span>\n <span class=\"list-col-items\">{{label.ItemCount || GetItemCount(label.ID)}}</span>\n <span class=\"list-col-date\">{{FormatDate(label.__mj_CreatedAt)}}</span>\n <span class=\"list-col-arrow\">\n <i class=\"fa-solid fa-chevron-right list-arrow\"></i>\n </span>\n </div>\n }\n </div>\n }\n <!-- Empty state -->\n @if (FilteredLabels.length === 0 && !IsLoading) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-tags empty-icon\"></i>\n <h3>No labels found</h3>\n @if (SearchText || ScopeFilter || StatusFilter) {\n <p>\n Try adjusting your filters or search criteria.\n </p>\n }\n @if (!SearchText && !ScopeFilter && !StatusFilter) {\n <p>\n No version labels have been created yet.\n </p>\n }\n @if (!SearchText && !ScopeFilter && !StatusFilter) {\n <button class=\"btn-primary empty-cta\"\n (click)=\"OpenCreateDialog()\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Create Your First Label</span>\n </button>\n }\n </div>\n }\n }\n\n <!-- Create Label Wizard -->\n @if (ShowCreateWizard) {\n <div class=\"create-wizard-overlay\" (click)=\"OnCreateWizardCancel()\">\n <div class=\"create-wizard-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"create-wizard-header\">\n <h3 class=\"create-wizard-title\">\n <i class=\"fa-solid fa-tag\"></i>\n Create Version Label\n </h3>\n <button class=\"create-wizard-close\" (click)=\"OnCreateWizardCancel()\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"create-wizard-body\">\n <mj-label-create\n (Created)=\"OnLabelCreated($event)\"\n (Cancel)=\"OnCreateWizardCancel()\">\n </mj-label-create>\n </div>\n </div>\n </div>\n }\n\n <!-- Detail panel -->\n @if (ShowDetailPanel && SelectedLabel) {\n <mj-label-detail-panel\n [Label]=\"SelectedLabel\"\n [AllLabels]=\"Labels\"\n [ItemCountMap]=\"ItemCountMap\"\n (Close)=\"OnDetailPanelClose()\"\n (LabelUpdated)=\"OnLabelUpdated()\"\n (EntityLinkClick)=\"OnEntityLinkClick($event)\">\n </mj-label-detail-panel>\n }\n</div>\n", styles: [".labels-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n}\n\n/* Header */\n.page-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 24px;\n}\n\n.header-left { flex: 1; }\n\n.page-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n margin: 0 0 4px 0;\n}\n\n.page-subtitle {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.header-actions {\n display: flex;\n gap: 12px;\n align-items: center;\n}\n\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--text-secondary, #6b7280);\n}\n\n.btn-icon:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.btn-primary {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #6366f1;\n color: #ffffff;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: #4f46e5;\n}\n\n.btn-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: var(--card-background, #ffffff);\n color: var(--text-secondary, #6b7280);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-secondary:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n/* KPI Row */\n.kpi-row {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.kpi-card {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n}\n\n.kpi-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 12px;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.kpi-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--text-primary, #1f2937);\n line-height: 1;\n}\n\n.kpi-label {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n margin-top: 4px;\n}\n\n/* Scope Chips */\n.scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.scope-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 20px;\n cursor: pointer;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n transition: all 0.2s ease;\n}\n\n.scope-chip:hover {\n background: var(--hover-background, #f3f4f6);\n border-color: var(--border-hover, #d1d5db);\n}\n\n.scope-chip.active {\n background: #6366f1;\n border-color: #6366f1;\n color: #ffffff;\n}\n\n.scope-chip.active .chip-count {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n}\n\n.chip-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--hover-background, #f3f4f6);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n/* Search Bar */\n.search-bar {\n position: relative;\n margin-bottom: 20px;\n}\n\n.search-icon {\n position: absolute;\n left: 14px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-secondary, #6b7280);\n font-size: 14px;\n}\n\n.search-input {\n width: 100%;\n padding: 10px 40px 10px 40px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n}\n\n.search-input:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.search-input::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.btn-clear {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: none;\n border: none;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n border-radius: 4px;\n}\n\n.btn-clear:hover {\n color: var(--text-primary, #1f2937);\n background: var(--hover-background, #f3f4f6);\n}\n\n/* Labels List */\n.labels-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.label-card {\n padding: 20px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n transition: all 0.2s ease;\n}\n\n.label-card:hover {\n border-color: var(--border-hover, #d1d5db);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n}\n\n.label-card.group-parent {\n border-left: 3px solid #6366f1;\n}\n\n.label-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.label-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.label-scope-icon {\n color: #6366f1;\n font-size: 16px;\n}\n\n.label-name {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n flex: 1;\n}\n\n.group-badge {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n background: rgba(99, 102, 241, 0.1);\n color: #6366f1;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.label-status {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-active {\n background: rgba(16, 185, 129, 0.1);\n color: #059669;\n}\n\n.status-archived {\n background: rgba(107, 114, 128, 0.1);\n color: #6b7280;\n}\n\n.status-restored {\n background: rgba(245, 158, 11, 0.1);\n color: #d97706;\n}\n\n.label-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n margin-top: 4px;\n}\n\n.meta-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.meta-item i {\n font-size: 12px;\n opacity: 0.7;\n}\n\n.label-description {\n margin: 10px 0 0 0;\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n line-height: 1.5;\n}\n\n/* Child labels */\n.child-labels {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--border-color, #e5e7eb);\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.child-label {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 13px;\n}\n\n.child-label:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.child-icon {\n color: var(--text-tertiary, #9ca3af);\n font-size: 11px;\n}\n\n.child-name {\n flex: 1;\n color: var(--text-primary, #1f2937);\n}\n\n.child-record {\n color: var(--text-tertiary, #9ca3af);\n font-size: 12px;\n font-family: monospace;\n}\n\n.child-items {\n color: var(--text-secondary, #6b7280);\n font-size: 12px;\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 20px;\n text-align: center;\n}\n\n.empty-icon {\n font-size: 48px;\n color: var(--text-tertiary, #9ca3af);\n margin-bottom: 16px;\n}\n\n.empty-state h3 {\n font-size: 18px;\n font-weight: 600;\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;\n max-width: 400px;\n}\n\n.empty-cta {\n margin-top: 20px;\n}\n\n/* ==================================================================== */\n/* Create Label Dialog */\n/* ==================================================================== */\n\n/* Step Indicator */\n.step-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0;\n margin-bottom: 24px;\n padding: 0 20px;\n}\n\n.step {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n background: var(--hover-background, #f3f4f6);\n color: var(--text-tertiary, #9ca3af);\n transition: all 0.2s ease;\n}\n\n.step.active .step-number {\n background: #6366f1;\n color: #ffffff;\n}\n\n.step.completed .step-number {\n background: #10b981;\n color: #ffffff;\n}\n\n.step-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-tertiary, #9ca3af);\n}\n\n.step.active .step-label {\n color: var(--text-primary, #1f2937);\n font-weight: 600;\n}\n\n.step.completed .step-label {\n color: #10b981;\n}\n\n.step-connector {\n width: 40px;\n height: 2px;\n background: var(--border-color, #e5e7eb);\n margin: 0 8px;\n transition: background 0.2s ease;\n}\n\n.step-connector.active {\n background: #10b981;\n}\n\n/* Dialog Step Content */\n.dialog-step {\n display: flex;\n flex-direction: column;\n gap: 16px;\n min-height: 300px;\n}\n\n.step-description {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n.step-header-row {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-back {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: none;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n color: var(--text-secondary, #6b7280);\n cursor: pointer;\n transition: all 0.15s ease;\n flex-shrink: 0;\n}\n\n.btn-back:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n/* Dialog Search */\n.dialog-search {\n position: relative;\n}\n\n.dialog-search-icon {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--text-tertiary, #9ca3af);\n font-size: 13px;\n}\n\n.dialog-search-input {\n width: 100%;\n padding: 9px 12px 9px 36px;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n box-sizing: border-box;\n transition: border-color 0.15s ease;\n}\n\n.dialog-search-input:focus {\n border-color: #6366f1;\n}\n\n.dialog-search-input::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n/* Entity List */\n.entity-list {\n flex: 1;\n overflow-y: auto;\n max-height: 320px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n}\n\n.entity-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.15s ease;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.entity-option:last-child {\n border-bottom: none;\n}\n\n.entity-option:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.entity-option-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.entity-option-name {\n font-size: 14px;\n font-weight: 500;\n color: var(--text-primary, #1f2937);\n}\n\n.entity-option-desc {\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.entity-option-arrow {\n color: var(--text-tertiary, #9ca3af);\n font-size: 12px;\n flex-shrink: 0;\n}\n\n.entity-list-empty {\n padding: 40px 20px;\n text-align: center;\n color: var(--text-tertiary, #9ca3af);\n font-size: 14px;\n}\n\n/* Records */\n.records-toolbar {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.selection-actions {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.btn-text {\n padding: 6px 12px;\n background: none;\n border: none;\n font-size: 13px;\n font-weight: 500;\n color: #6366f1;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease;\n}\n\n.btn-text:hover {\n background: rgba(99, 102, 241, 0.1);\n}\n\n.record-list {\n flex: 1;\n overflow-y: auto;\n max-height: 280px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 10px;\n}\n\n.record-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 16px;\n cursor: pointer;\n transition: background 0.15s ease;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n}\n\n.record-option:last-child {\n border-bottom: none;\n}\n\n.record-option:hover {\n background: var(--hover-background, #f3f4f6);\n}\n\n.record-option.selected {\n background: rgba(99, 102, 241, 0.05);\n}\n\n.record-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 2px solid var(--border-color, #d1d5db);\n border-radius: 4px;\n font-size: 11px;\n color: transparent;\n transition: all 0.15s ease;\n flex-shrink: 0;\n}\n\n.record-option.selected .record-checkbox {\n background: #6366f1;\n border-color: #6366f1;\n color: #ffffff;\n}\n\n.record-name {\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.records-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 8px;\n}\n\n.selection-count {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-secondary, #6b7280);\n}\n\n/* Details step */\n.details-summary {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n padding: 14px 16px;\n background: var(--hover-background, #f3f4f6);\n border-radius: 10px;\n}\n\n.summary-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.summary-item i {\n color: #6366f1;\n font-size: 13px;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label {\n font-size: 13px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n}\n\n.form-input {\n padding: 10px 14px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.form-input:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-input::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.form-textarea {\n padding: 10px 14px;\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n outline: none;\n resize: vertical;\n font-family: inherit;\n transition: border-color 0.15s ease;\n}\n\n.form-textarea:focus {\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-textarea::placeholder {\n color: var(--text-tertiary, #9ca3af);\n}\n\n.details-footer {\n display: flex;\n gap: 12px;\n padding-top: 8px;\n}\n\n/* Creating state */\n.creating-step {\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px 20px;\n}\n\n.creating-animation {\n margin-bottom: 16px;\n}\n\n.creating-icon {\n font-size: 40px;\n color: #6366f1;\n}\n\n.creating-title {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.creating-progress {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0;\n}\n\n/* Progress bar */\n.progress-container {\n width: 100%;\n max-width: 420px;\n margin: 16px auto 0;\n text-align: left;\n}\n\n.progress-bar-track {\n width: 100%;\n height: 8px;\n background: var(--hover-background, #e5e7eb);\n border-radius: 4px;\n overflow: hidden;\n}\n\n.progress-bar-fill {\n height: 100%;\n background: linear-gradient(90deg, #6366f1, #818cf8);\n border-radius: 4px;\n transition: width 0.3s ease;\n}\n\n.progress-details {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 8px;\n}\n\n.progress-message {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n margin-right: 12px;\n}\n\n.progress-pct {\n font-size: 13px;\n font-weight: 600;\n color: #6366f1;\n white-space: nowrap;\n}\n\n.progress-stats {\n display: flex;\n gap: 16px;\n margin-top: 6px;\n}\n\n.progress-stat {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--text-tertiary, #9ca3af);\n}\n\n.progress-stat i {\n font-size: 11px;\n}\n\n/* Done state */\n.done-step {\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 40px 20px;\n}\n\n.done-icon-wrap {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n font-size: 24px;\n margin-bottom: 16px;\n}\n\n.done-icon-wrap.success {\n background: rgba(16, 185, 129, 0.1);\n color: #10b981;\n}\n\n.done-icon-wrap.error {\n background: rgba(239, 68, 68, 0.1);\n color: #ef4444;\n}\n\n.done-title {\n font-size: 18px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0 0 8px 0;\n}\n\n.done-message {\n font-size: 14px;\n color: var(--text-secondary, #6b7280);\n margin: 0 0 20px 0;\n}\n\n.error-text {\n color: #ef4444;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.toggle-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n background: transparent;\n border: none;\n cursor: pointer;\n color: var(--text-tertiary, #9ca3af);\n transition: all 0.15s ease;\n font-size: 14px;\n}\n\n.toggle-btn:hover {\n color: var(--text-primary, #1f2937);\n background: var(--hover-background, #f3f4f6);\n}\n\n.toggle-btn.active {\n color: #6366f1;\n background: rgba(99, 102, 241, 0.08);\n}\n\n.toggle-btn + .toggle-btn {\n border-left: 1px solid var(--border-color, #e5e7eb);\n}\n\n/* Clickable cards/rows */\n.clickable {\n cursor: pointer;\n}\n\n.label-card.clickable:hover {\n border-color: #6366f1;\n box-shadow: 0 2px 12px rgba(99, 102, 241, 0.1);\n transform: translateY(-1px);\n}\n\n/* Labels Table (List View) */\n.labels-table {\n background: var(--card-background, #ffffff);\n border: 1px solid var(--border-color, #e5e7eb);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.list-header-row {\n display: grid;\n grid-template-columns: 40px 1fr 160px 90px 60px 100px 32px;\n align-items: center;\n padding: 10px 16px;\n background: var(--hover-background, #f9fafb);\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n font-size: 12px;\n font-weight: 600;\n color: var(--text-tertiary, #9ca3af);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.list-row {\n display: grid;\n grid-template-columns: 40px 1fr 160px 90px 60px 100px 32px;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid var(--border-color, #f3f4f6);\n font-size: 14px;\n color: var(--text-primary, #1f2937);\n transition: all 0.15s ease;\n}\n\n.list-row:last-child {\n border-bottom: none;\n}\n\n.list-row:hover {\n background: rgba(99, 102, 241, 0.04);\n}\n\n.list-scope-icon {\n color: #6366f1;\n font-size: 15px;\n}\n\n.list-col-name {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.list-label-name {\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.list-group-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: rgba(99, 102, 241, 0.1);\n color: #6366f1;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.list-col-entity {\n color: var(--text-secondary, #6b7280);\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.list-col-items {\n text-align: center;\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.list-col-date {\n font-size: 13px;\n color: var(--text-secondary, #6b7280);\n}\n\n.list-col-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.list-arrow {\n color: var(--text-tertiary, #d1d5db);\n font-size: 12px;\n transition: transform 0.15s ease, color 0.15s ease;\n}\n\n.list-row:hover .list-arrow {\n color: #6366f1;\n transform: translateX(2px);\n}\n\n.label-status.small {\n padding: 2px 8px;\n font-size: 11px;\n}\n\n/* Sortable headers */\n.sortable-header {\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: color 0.15s ease;\n}\n\n.sortable-header:hover {\n color: #6366f1;\n}\n\n.sort-icon {\n font-size: 10px;\n opacity: 0.4;\n transition: opacity 0.15s ease;\n}\n\n.sortable-header:hover .sort-icon {\n opacity: 0.8;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .kpi-row {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .list-header-row,\n .list-row {\n grid-template-columns: 36px 1fr 80px 60px 32px;\n }\n\n .list-col-entity,\n .list-col-date {\n display: none;\n }\n}\n\n/* ================================================================= */\n/* CREATE WIZARD OVERLAY */\n/* ================================================================= */\n\n.create-wizard-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n animation: fadeIn 0.15s ease;\n}\n\n.create-wizard-container {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 90%;\n max-width: 600px;\n max-height: 85vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.create-wizard-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-bottom: 1px solid var(--border-color, #e5e7eb);\n flex-shrink: 0;\n}\n\n.create-wizard-title {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n color: var(--text-primary, #1f2937);\n margin: 0;\n}\n\n.create-wizard-title i {\n color: #6366f1;\n font-size: 15px;\n}\n\n.create-wizard-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: none;\n border: none;\n border-radius: 8px;\n color: var(--text-tertiary, #9ca3af);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.create-wizard-close:hover {\n background: var(--hover-background, #f3f4f6);\n color: var(--text-primary, #1f2937);\n}\n\n.create-wizard-body {\n padding: 24px;\n overflow-y: auto;\n flex: 1;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n"] }]
966
+ }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.NavigationService }], null); })();
967
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VersionHistoryLabelsResourceComponent, { className: "VersionHistoryLabelsResourceComponent", filePath: "src/versionhistory/components/labels-resource.component.ts", lineNumber: 40 }); })();
968
+ //# sourceMappingURL=labels-resource.component.js.map