@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
@@ -13,20 +13,19 @@ import { Subject } from 'rxjs';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "../services/list-set-operations.service";
15
15
  import * as i2 from "@memberjunction/ng-notifications";
16
- import * as i3 from "@angular/common";
17
- import * as i4 from "@angular/forms";
18
- import * as i5 from "@memberjunction/ng-shared-generic";
19
- import * as i6 from "./venn-diagram/venn-diagram.component";
20
- function ListsOperationsResource_button_7_Template(rf, ctx) { if (rf & 1) {
16
+ import * as i3 from "@angular/forms";
17
+ import * as i4 from "@memberjunction/ng-shared-generic";
18
+ import * as i5 from "./venn-diagram/venn-diagram.component";
19
+ function ListsOperationsResource_Conditional_7_Template(rf, ctx) { if (rf & 1) {
21
20
  const _r1 = i0.ɵɵgetCurrentView();
22
21
  i0.ɵɵelementStart(0, "button", 35);
23
- i0.ɵɵlistener("click", function ListsOperationsResource_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.clearAllSelections()); });
22
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.clearAllSelections()); });
24
23
  i0.ɵɵelement(1, "i", 36);
25
24
  i0.ɵɵtext(2, " Clear ");
26
25
  i0.ɵɵelementEnd();
27
26
  } }
28
- function ListsOperationsResource_span_15_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "span", 37);
27
+ function ListsOperationsResource_Conditional_15_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelementStart(0, "span", 10);
30
29
  i0.ɵɵtext(1);
31
30
  i0.ɵɵelementEnd();
32
31
  } if (rf & 2) {
@@ -34,8 +33,8 @@ function ListsOperationsResource_span_15_Template(rf, ctx) { if (rf & 1) {
34
33
  i0.ɵɵadvance();
35
34
  i0.ɵɵtextInterpolate2(" ", ctx_r1.selectedLists.length, "/", ctx_r1.maxLists, " ");
36
35
  } }
37
- function ListsOperationsResource_option_23_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelementStart(0, "option", 38);
36
+ function ListsOperationsResource_For_24_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementStart(0, "option", 16);
39
38
  i0.ɵɵtext(1);
40
39
  i0.ɵɵelementEnd();
41
40
  } if (rf & 2) {
@@ -44,19 +43,19 @@ function ListsOperationsResource_option_23_Template(rf, ctx) { if (rf & 1) {
44
43
  i0.ɵɵadvance();
45
44
  i0.ɵɵtextInterpolate2(" ", entity_r3.name, " (", entity_r3.listCount, ") ");
46
45
  } }
47
- function ListsOperationsResource_div_25_Template(rf, ctx) { if (rf & 1) {
46
+ function ListsOperationsResource_For_27_Template(rf, ctx) { if (rf & 1) {
48
47
  const _r4 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "div", 39);
50
- i0.ɵɵelement(1, "div", 40);
51
- i0.ɵɵelementStart(2, "div", 41)(3, "span", 42);
48
+ i0.ɵɵelementStart(0, "div", 18);
49
+ i0.ɵɵelement(1, "div", 37);
50
+ i0.ɵɵelementStart(2, "div", 38)(3, "span", 39);
52
51
  i0.ɵɵtext(4);
53
52
  i0.ɵɵelementEnd();
54
- i0.ɵɵelementStart(5, "span", 43);
53
+ i0.ɵɵelementStart(5, "span", 40);
55
54
  i0.ɵɵtext(6);
56
55
  i0.ɵɵelementEnd()();
57
- i0.ɵɵelementStart(7, "button", 44);
58
- i0.ɵɵlistener("click", function ListsOperationsResource_div_25_Template_button_click_7_listener() { const i_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.removeList(i_r5)); });
59
- i0.ɵɵelement(8, "i", 45);
56
+ i0.ɵɵelementStart(7, "button", 41);
57
+ i0.ɵɵlistener("click", function ListsOperationsResource_For_27_Template_button_click_7_listener() { const ɵ$index_54_r5 = i0.ɵɵrestoreView(_r4).$index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.removeList(ɵ$index_54_r5)); });
58
+ i0.ɵɵelement(8, "i", 42);
60
59
  i0.ɵɵelementEnd()();
61
60
  } if (rf & 2) {
62
61
  const item_r6 = ctx.$implicit;
@@ -67,14 +66,14 @@ function ListsOperationsResource_div_25_Template(rf, ctx) { if (rf & 1) {
67
66
  i0.ɵɵadvance(2);
68
67
  i0.ɵɵtextInterpolate(item_r6.entityName);
69
68
  } }
70
- function ListsOperationsResource_div_26_div_4_div_3_Template(rf, ctx) { if (rf & 1) {
69
+ function ListsOperationsResource_Conditional_28_Conditional_4_For_4_Template(rf, ctx) { if (rf & 1) {
71
70
  const _r9 = i0.ɵɵgetCurrentView();
72
- i0.ɵɵelementStart(0, "div", 55);
73
- i0.ɵɵlistener("click", function ListsOperationsResource_div_26_div_4_div_3_Template_div_click_0_listener() { const list_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addList(list_r10)); });
74
- i0.ɵɵelementStart(1, "span", 56);
71
+ i0.ɵɵelementStart(0, "div", 50);
72
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_28_Conditional_4_For_4_Template_div_click_0_listener() { const list_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addList(list_r10)); });
73
+ i0.ɵɵelementStart(1, "span", 51);
75
74
  i0.ɵɵtext(2);
76
75
  i0.ɵɵelementEnd();
77
- i0.ɵɵelementStart(3, "span", 57);
76
+ i0.ɵɵelementStart(3, "span", 52);
78
77
  i0.ɵɵtext(4);
79
78
  i0.ɵɵelementEnd()();
80
79
  } if (rf & 2) {
@@ -84,39 +83,39 @@ function ListsOperationsResource_div_26_div_4_div_3_Template(rf, ctx) { if (rf &
84
83
  i0.ɵɵadvance(2);
85
84
  i0.ɵɵtextInterpolate(list_r10.Entity);
86
85
  } }
87
- function ListsOperationsResource_div_26_div_4_Template(rf, ctx) { if (rf & 1) {
86
+ function ListsOperationsResource_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
88
87
  const _r8 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "div", 51)(1, "div", 52);
90
- i0.ɵɵlistener("click", function ListsOperationsResource_div_26_div_4_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.showListDropdown = false); });
88
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 47);
89
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_28_Conditional_4_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.showListDropdown = false); });
91
90
  i0.ɵɵelementEnd();
92
- i0.ɵɵelementStart(2, "div", 53);
93
- i0.ɵɵtemplate(3, ListsOperationsResource_div_26_div_4_div_3_Template, 5, 2, "div", 54);
91
+ i0.ɵɵelementStart(2, "div", 48);
92
+ i0.ɵɵrepeaterCreate(3, ListsOperationsResource_Conditional_28_Conditional_4_For_4_Template, 5, 2, "div", 49, i0.ɵɵrepeaterTrackByIdentity);
94
93
  i0.ɵɵelementEnd()();
95
94
  } if (rf & 2) {
96
95
  const ctx_r1 = i0.ɵɵnextContext(2);
97
96
  i0.ɵɵadvance(3);
98
- i0.ɵɵproperty("ngForOf", ctx_r1.filteredAvailableLists);
97
+ i0.ɵɵrepeater(ctx_r1.filteredAvailableLists);
99
98
  } }
100
- function ListsOperationsResource_div_26_Template(rf, ctx) { if (rf & 1) {
99
+ function ListsOperationsResource_Conditional_28_Template(rf, ctx) { if (rf & 1) {
101
100
  const _r7 = i0.ɵɵgetCurrentView();
102
- i0.ɵɵelementStart(0, "div", 46)(1, "div", 47);
103
- i0.ɵɵelement(2, "i", 48);
104
- i0.ɵɵelementStart(3, "input", 49);
105
- i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_div_26_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.listSearchTerm, $event) || (ctx_r1.listSearchTerm = $event); return i0.ɵɵresetView($event); });
106
- i0.ɵɵlistener("ngModelChange", function ListsOperationsResource_div_26_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.filterAvailableLists()); })("focus", function ListsOperationsResource_div_26_Template_input_focus_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showListDropdown = true); });
101
+ i0.ɵɵelementStart(0, "div", 19)(1, "div", 43);
102
+ i0.ɵɵelement(2, "i", 44);
103
+ i0.ɵɵelementStart(3, "input", 45);
104
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_Conditional_28_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.listSearchTerm, $event) || (ctx_r1.listSearchTerm = $event); return i0.ɵɵresetView($event); });
105
+ i0.ɵɵlistener("ngModelChange", function ListsOperationsResource_Conditional_28_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.filterAvailableLists()); })("focus", function ListsOperationsResource_Conditional_28_Template_input_focus_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showListDropdown = true); });
107
106
  i0.ɵɵelementEnd()();
108
- i0.ɵɵtemplate(4, ListsOperationsResource_div_26_div_4_Template, 4, 1, "div", 50);
107
+ i0.ɵɵconditionalCreate(4, ListsOperationsResource_Conditional_28_Conditional_4_Template, 5, 0, "div", 46);
109
108
  i0.ɵɵelementEnd();
110
109
  } if (rf & 2) {
111
110
  const ctx_r1 = i0.ɵɵnextContext();
112
111
  i0.ɵɵadvance(3);
113
112
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.listSearchTerm);
114
113
  i0.ɵɵadvance();
115
- i0.ɵɵproperty("ngIf", ctx_r1.showListDropdown && ctx_r1.filteredAvailableLists.length > 0);
114
+ i0.ɵɵconditional(ctx_r1.showListDropdown && ctx_r1.filteredAvailableLists.length > 0 ? 4 : -1);
116
115
  } }
117
- function ListsOperationsResource_div_27_Template(rf, ctx) { if (rf & 1) {
118
- i0.ɵɵelementStart(0, "div", 58);
119
- i0.ɵɵelement(1, "i", 59);
116
+ function ListsOperationsResource_Conditional_29_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementStart(0, "div", 20);
118
+ i0.ɵɵelement(1, "i", 53);
120
119
  i0.ɵɵtext(2);
121
120
  i0.ɵɵelementEnd();
122
121
  } if (rf & 2) {
@@ -124,9 +123,9 @@ function ListsOperationsResource_div_27_Template(rf, ctx) { if (rf & 1) {
124
123
  i0.ɵɵadvance(2);
125
124
  i0.ɵɵtextInterpolate1(" Maximum ", ctx_r1.maxLists, " lists can be compared ");
126
125
  } }
127
- function ListsOperationsResource_div_28_Template(rf, ctx) { if (rf & 1) {
128
- i0.ɵɵelementStart(0, "div", 60);
129
- i0.ɵɵelement(1, "i", 59);
126
+ function ListsOperationsResource_Conditional_30_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵelementStart(0, "div", 21);
128
+ i0.ɵɵelement(1, "i", 53);
130
129
  i0.ɵɵelementStart(2, "span");
131
130
  i0.ɵɵtext(3, "Comparing lists of type: ");
132
131
  i0.ɵɵelementStart(4, "strong");
@@ -137,26 +136,26 @@ function ListsOperationsResource_div_28_Template(rf, ctx) { if (rf & 1) {
137
136
  i0.ɵɵadvance(5);
138
137
  i0.ɵɵtextInterpolate(ctx_r1.selectedLists[0].entityName);
139
138
  } }
140
- function ListsOperationsResource_div_29_Template(rf, ctx) { if (rf & 1) {
139
+ function ListsOperationsResource_Conditional_31_Template(rf, ctx) { if (rf & 1) {
141
140
  const _r11 = i0.ɵɵgetCurrentView();
142
- i0.ɵɵelementStart(0, "div", 61)(1, "h4");
141
+ i0.ɵɵelementStart(0, "div", 22)(1, "h4");
143
142
  i0.ɵɵtext(2, "Quick Operations");
144
143
  i0.ɵɵelementEnd();
145
- i0.ɵɵelementStart(3, "div", 62)(4, "button", 63);
146
- i0.ɵɵlistener("click", function ListsOperationsResource_div_29_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("union")); });
147
- i0.ɵɵelement(5, "i", 64);
144
+ i0.ɵɵelementStart(3, "div", 54)(4, "button", 55);
145
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_31_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("union")); });
146
+ i0.ɵɵelement(5, "i", 56);
148
147
  i0.ɵɵelementStart(6, "span");
149
148
  i0.ɵɵtext(7, "Union All");
150
149
  i0.ɵɵelementEnd()();
151
- i0.ɵɵelementStart(8, "button", 63);
152
- i0.ɵɵlistener("click", function ListsOperationsResource_div_29_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("intersection")); });
153
- i0.ɵɵelement(9, "i", 65);
150
+ i0.ɵɵelementStart(8, "button", 55);
151
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_31_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("intersection")); });
152
+ i0.ɵɵelement(9, "i", 57);
154
153
  i0.ɵɵelementStart(10, "span");
155
154
  i0.ɵɵtext(11, "Intersection");
156
155
  i0.ɵɵelementEnd()();
157
- i0.ɵɵelementStart(12, "button", 63);
158
- i0.ɵɵlistener("click", function ListsOperationsResource_div_29_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("symmetric_difference")); });
159
- i0.ɵɵelement(13, "i", 66);
156
+ i0.ɵɵelementStart(12, "button", 55);
157
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_31_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.performOperation("symmetric_difference")); });
158
+ i0.ɵɵelement(13, "i", 58);
160
159
  i0.ɵɵelementStart(14, "span");
161
160
  i0.ɵɵtext(15, "Unique Each");
162
161
  i0.ɵɵelementEnd()()()();
@@ -169,18 +168,18 @@ function ListsOperationsResource_div_29_Template(rf, ctx) { if (rf & 1) {
169
168
  i0.ɵɵadvance(4);
170
169
  i0.ɵɵproperty("disabled", ctx_r1.isCalculating);
171
170
  } }
172
- function ListsOperationsResource_mj_venn_diagram_31_Template(rf, ctx) { if (rf & 1) {
171
+ function ListsOperationsResource_Conditional_33_Template(rf, ctx) { if (rf & 1) {
173
172
  const _r12 = i0.ɵɵgetCurrentView();
174
- i0.ɵɵelementStart(0, "mj-venn-diagram", 67);
175
- i0.ɵɵlistener("regionClick", function ListsOperationsResource_mj_venn_diagram_31_Template_mj_venn_diagram_regionClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRegionClick($event)); });
173
+ i0.ɵɵelementStart(0, "mj-venn-diagram", 59);
174
+ i0.ɵɵlistener("regionClick", function ListsOperationsResource_Conditional_33_Template_mj_venn_diagram_regionClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRegionClick($event)); });
176
175
  i0.ɵɵelementEnd();
177
176
  } if (rf & 2) {
178
177
  const ctx_r1 = i0.ɵɵnextContext();
179
178
  i0.ɵɵproperty("data", ctx_r1.vennData)("selectedRegion", ctx_r1.selectedRegion);
180
179
  } }
181
- function ListsOperationsResource_div_32_Template(rf, ctx) { if (rf & 1) {
182
- i0.ɵɵelementStart(0, "div", 68)(1, "div", 69);
183
- i0.ɵɵelement(2, "i", 70);
180
+ function ListsOperationsResource_Conditional_34_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 60);
182
+ i0.ɵɵelement(2, "i", 61);
184
183
  i0.ɵɵelementEnd();
185
184
  i0.ɵɵelementStart(3, "h3");
186
185
  i0.ɵɵtext(4, "Add Lists to Compare");
@@ -189,13 +188,13 @@ function ListsOperationsResource_div_32_Template(rf, ctx) { if (rf & 1) {
189
188
  i0.ɵɵtext(6, "Select 2-4 lists from the same entity to visualize their overlaps and perform set operations.");
190
189
  i0.ɵɵelementEnd()();
191
190
  } }
192
- function ListsOperationsResource_div_33_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵelementStart(0, "div", 71);
194
- i0.ɵɵelement(1, "mj-loading", 72);
191
+ function ListsOperationsResource_Conditional_35_Template(rf, ctx) { if (rf & 1) {
192
+ i0.ɵɵelementStart(0, "div", 26);
193
+ i0.ɵɵelement(1, "mj-loading", 62);
195
194
  i0.ɵɵelementEnd();
196
195
  } }
197
- function ListsOperationsResource_div_39_div_16_div_4_span_4_Template(rf, ctx) { if (rf & 1) {
198
- i0.ɵɵelementStart(0, "span", 94);
196
+ function ListsOperationsResource_Conditional_41_Conditional_16_For_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
197
+ i0.ɵɵelementStart(0, "span", 78);
199
198
  i0.ɵɵtext(1);
200
199
  i0.ɵɵelementEnd();
201
200
  } if (rf & 2) {
@@ -203,69 +202,69 @@ function ListsOperationsResource_div_39_div_16_div_4_span_4_Template(rf, ctx) {
203
202
  i0.ɵɵadvance();
204
203
  i0.ɵɵtextInterpolate(record_r15.secondaryInfo);
205
204
  } }
206
- function ListsOperationsResource_div_39_div_16_div_4_Template(rf, ctx) { if (rf & 1) {
205
+ function ListsOperationsResource_Conditional_41_Conditional_16_For_5_Template(rf, ctx) { if (rf & 1) {
207
206
  const _r14 = i0.ɵɵgetCurrentView();
208
- i0.ɵɵelementStart(0, "div", 88)(1, "div", 89)(2, "span", 90);
207
+ i0.ɵɵelementStart(0, "div", 74)(1, "div", 76)(2, "span", 77);
209
208
  i0.ɵɵtext(3);
210
209
  i0.ɵɵelementEnd();
211
- i0.ɵɵtemplate(4, ListsOperationsResource_div_39_div_16_div_4_span_4_Template, 2, 1, "span", 91);
210
+ i0.ɵɵconditionalCreate(4, ListsOperationsResource_Conditional_41_Conditional_16_For_5_Conditional_4_Template, 2, 1, "span", 78);
212
211
  i0.ɵɵelementEnd();
213
- i0.ɵɵelementStart(5, "button", 92);
214
- i0.ɵɵlistener("click", function ListsOperationsResource_div_39_div_16_div_4_Template_button_click_5_listener() { const record_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openRecord(record_r15)); });
215
- i0.ɵɵelement(6, "i", 93);
212
+ i0.ɵɵelementStart(5, "button", 79);
213
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_41_Conditional_16_For_5_Template_button_click_5_listener() { const record_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openRecord(record_r15)); });
214
+ i0.ɵɵelement(6, "i", 80);
216
215
  i0.ɵɵelementEnd()();
217
216
  } if (rf & 2) {
218
217
  const record_r15 = ctx.$implicit;
219
218
  i0.ɵɵadvance(3);
220
219
  i0.ɵɵtextInterpolate(record_r15.displayName);
221
220
  i0.ɵɵadvance();
222
- i0.ɵɵproperty("ngIf", record_r15.secondaryInfo);
221
+ i0.ɵɵconditional(record_r15.secondaryInfo ? 4 : -1);
223
222
  } }
224
- function ListsOperationsResource_div_39_div_16_div_5_Template(rf, ctx) { if (rf & 1) {
225
- i0.ɵɵelementStart(0, "div", 95);
226
- i0.ɵɵelement(1, "mj-loading", 96);
223
+ function ListsOperationsResource_Conditional_41_Conditional_16_Conditional_6_Template(rf, ctx) { if (rf & 1) {
224
+ i0.ɵɵelementStart(0, "div", 75);
225
+ i0.ɵɵelement(1, "mj-loading", 81);
227
226
  i0.ɵɵelementEnd();
228
227
  } }
229
- function ListsOperationsResource_div_39_div_16_Template(rf, ctx) { if (rf & 1) {
230
- i0.ɵɵelementStart(0, "div", 84)(1, "h5");
228
+ function ListsOperationsResource_Conditional_41_Conditional_16_Template(rf, ctx) { if (rf & 1) {
229
+ i0.ɵɵelementStart(0, "div", 72)(1, "h5");
231
230
  i0.ɵɵtext(2, "Preview (first 10)");
232
231
  i0.ɵɵelementEnd();
233
- i0.ɵɵelementStart(3, "div", 85);
234
- i0.ɵɵtemplate(4, ListsOperationsResource_div_39_div_16_div_4_Template, 7, 2, "div", 86);
232
+ i0.ɵɵelementStart(3, "div", 73);
233
+ i0.ɵɵrepeaterCreate(4, ListsOperationsResource_Conditional_41_Conditional_16_For_5_Template, 7, 2, "div", 74, i0.ɵɵrepeaterTrackByIdentity);
235
234
  i0.ɵɵelementEnd();
236
- i0.ɵɵtemplate(5, ListsOperationsResource_div_39_div_16_div_5_Template, 2, 0, "div", 87);
235
+ i0.ɵɵconditionalCreate(6, ListsOperationsResource_Conditional_41_Conditional_16_Conditional_6_Template, 2, 0, "div", 75);
237
236
  i0.ɵɵelementEnd();
238
237
  } if (rf & 2) {
239
238
  const ctx_r1 = i0.ɵɵnextContext(2);
240
239
  i0.ɵɵadvance(4);
241
- i0.ɵɵproperty("ngForOf", ctx_r1.previewRecordsDisplay);
242
- i0.ɵɵadvance();
243
- i0.ɵɵproperty("ngIf", ctx_r1.loadingPreview);
240
+ i0.ɵɵrepeater(ctx_r1.previewRecordsDisplay);
241
+ i0.ɵɵadvance(2);
242
+ i0.ɵɵconditional(ctx_r1.loadingPreview ? 6 : -1);
244
243
  } }
245
- function ListsOperationsResource_div_39_Template(rf, ctx) { if (rf & 1) {
244
+ function ListsOperationsResource_Conditional_41_Template(rf, ctx) { if (rf & 1) {
246
245
  const _r13 = i0.ɵɵgetCurrentView();
247
- i0.ɵɵelementStart(0, "div", 73)(1, "div", 74)(2, "span", 75);
246
+ i0.ɵɵelementStart(0, "div", 29)(1, "div", 63)(2, "span", 64);
248
247
  i0.ɵɵtext(3);
249
248
  i0.ɵɵelementEnd();
250
- i0.ɵɵelementStart(4, "span", 76);
249
+ i0.ɵɵelementStart(4, "span", 65);
251
250
  i0.ɵɵtext(5);
252
251
  i0.ɵɵelementEnd()();
253
- i0.ɵɵelementStart(6, "div", 77)(7, "button", 78);
254
- i0.ɵɵlistener("click", function ListsOperationsResource_div_39_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createListFromSelection()); });
255
- i0.ɵɵelement(8, "i", 79);
252
+ i0.ɵɵelementStart(6, "div", 66)(7, "button", 67);
253
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_41_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createListFromSelection()); });
254
+ i0.ɵɵelement(8, "i", 68);
256
255
  i0.ɵɵtext(9, " Create New List ");
257
256
  i0.ɵɵelementEnd();
258
- i0.ɵɵelementStart(10, "button", 80);
259
- i0.ɵɵlistener("click", function ListsOperationsResource_div_39_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addToExistingList()); });
260
- i0.ɵɵelement(11, "i", 81);
257
+ i0.ɵɵelementStart(10, "button", 69);
258
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_41_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addToExistingList()); });
259
+ i0.ɵɵelement(11, "i", 70);
261
260
  i0.ɵɵtext(12, " Add to List ");
262
261
  i0.ɵɵelementEnd();
263
- i0.ɵɵelementStart(13, "button", 80);
264
- i0.ɵɵlistener("click", function ListsOperationsResource_div_39_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.exportToExcel()); });
265
- i0.ɵɵelement(14, "i", 82);
262
+ i0.ɵɵelementStart(13, "button", 69);
263
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_41_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.exportToExcel()); });
264
+ i0.ɵɵelement(14, "i", 71);
266
265
  i0.ɵɵtext(15, " Export ");
267
266
  i0.ɵɵelementEnd()();
268
- i0.ɵɵtemplate(16, ListsOperationsResource_div_39_div_16_Template, 6, 2, "div", 83);
267
+ i0.ɵɵconditionalCreate(16, ListsOperationsResource_Conditional_41_Conditional_16_Template, 7, 1, "div", 72);
269
268
  i0.ɵɵelementEnd();
270
269
  } if (rf & 2) {
271
270
  const ctx_r1 = i0.ɵɵnextContext();
@@ -274,24 +273,24 @@ function ListsOperationsResource_div_39_Template(rf, ctx) { if (rf & 1) {
274
273
  i0.ɵɵadvance(2);
275
274
  i0.ɵɵtextInterpolate1("", ctx_r1.selectedRegion.size, " records");
276
275
  i0.ɵɵadvance(11);
277
- i0.ɵɵproperty("ngIf", ctx_r1.previewRecordsDisplay.length > 0);
276
+ i0.ɵɵconditional(ctx_r1.previewRecordsDisplay.length > 0 ? 16 : -1);
278
277
  } }
279
- function ListsOperationsResource_div_40_Template(rf, ctx) { if (rf & 1) {
278
+ function ListsOperationsResource_Conditional_42_Template(rf, ctx) { if (rf & 1) {
280
279
  const _r16 = i0.ɵɵgetCurrentView();
281
- i0.ɵɵelementStart(0, "div", 97)(1, "div", 98)(2, "span", 99);
280
+ i0.ɵɵelementStart(0, "div", 30)(1, "div", 82)(2, "span", 83);
282
281
  i0.ɵɵtext(3);
283
282
  i0.ɵɵelementEnd();
284
- i0.ɵɵelementStart(4, "span", 100);
283
+ i0.ɵɵelementStart(4, "span", 84);
285
284
  i0.ɵɵtext(5);
286
285
  i0.ɵɵelementEnd()();
287
- i0.ɵɵelementStart(6, "div", 77)(7, "button", 78);
288
- i0.ɵɵlistener("click", function ListsOperationsResource_div_40_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createListFromResult()); });
289
- i0.ɵɵelement(8, "i", 79);
286
+ i0.ɵɵelementStart(6, "div", 66)(7, "button", 67);
287
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_42_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createListFromResult()); });
288
+ i0.ɵɵelement(8, "i", 68);
290
289
  i0.ɵɵtext(9, " Create New List ");
291
290
  i0.ɵɵelementEnd();
292
- i0.ɵɵelementStart(10, "button", 80);
293
- i0.ɵɵlistener("click", function ListsOperationsResource_div_40_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addResultToExistingList()); });
294
- i0.ɵɵelement(11, "i", 81);
291
+ i0.ɵɵelementStart(10, "button", 69);
292
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_42_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addResultToExistingList()); });
293
+ i0.ɵɵelement(11, "i", 70);
295
294
  i0.ɵɵtext(12, " Add to List ");
296
295
  i0.ɵɵelementEnd()()();
297
296
  } if (rf & 2) {
@@ -301,54 +300,54 @@ function ListsOperationsResource_div_40_Template(rf, ctx) { if (rf & 1) {
301
300
  i0.ɵɵadvance(2);
302
301
  i0.ɵɵtextInterpolate1("", ctx_r1.lastOperationResult.resultCount, " records");
303
302
  } }
304
- function ListsOperationsResource_div_41_Template(rf, ctx) { if (rf & 1) {
305
- i0.ɵɵelementStart(0, "div", 101);
306
- i0.ɵɵelement(1, "i", 102);
303
+ function ListsOperationsResource_Conditional_43_Template(rf, ctx) { if (rf & 1) {
304
+ i0.ɵɵelementStart(0, "div", 31);
305
+ i0.ɵɵelement(1, "i", 85);
307
306
  i0.ɵɵelementStart(2, "p");
308
307
  i0.ɵɵtext(3, "Click a region in the diagram or run an operation to see results");
309
308
  i0.ɵɵelementEnd()();
310
309
  } }
311
- function ListsOperationsResource_div_42_Template(rf, ctx) { if (rf & 1) {
310
+ function ListsOperationsResource_Conditional_44_Template(rf, ctx) { if (rf & 1) {
312
311
  const _r17 = i0.ɵɵgetCurrentView();
313
- i0.ɵɵelementStart(0, "div", 103);
314
- i0.ɵɵlistener("click", function ListsOperationsResource_div_42_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
312
+ i0.ɵɵelementStart(0, "div", 86);
313
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_44_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
315
314
  i0.ɵɵelementEnd();
316
315
  } }
317
- function ListsOperationsResource_div_43_i_20_Template(rf, ctx) { if (rf & 1) {
318
- i0.ɵɵelement(0, "i", 116);
316
+ function ListsOperationsResource_Conditional_45_Conditional_20_Template(rf, ctx) { if (rf & 1) {
317
+ i0.ɵɵelement(0, "i", 96);
319
318
  } }
320
- function ListsOperationsResource_div_43_Template(rf, ctx) { if (rf & 1) {
319
+ function ListsOperationsResource_Conditional_45_Template(rf, ctx) { if (rf & 1) {
321
320
  const _r18 = i0.ɵɵgetCurrentView();
322
- i0.ɵɵelementStart(0, "div", 104)(1, "div", 105)(2, "h3");
321
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 87)(2, "h3");
323
322
  i0.ɵɵtext(3, "Create New List from Selection");
324
323
  i0.ɵɵelementEnd();
325
- i0.ɵɵelementStart(4, "button", 106);
326
- i0.ɵɵlistener("click", function ListsOperationsResource_div_43_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
327
- i0.ɵɵelement(5, "i", 45);
324
+ i0.ɵɵelementStart(4, "button", 88);
325
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_45_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
326
+ i0.ɵɵelement(5, "i", 42);
328
327
  i0.ɵɵelementEnd()();
329
- i0.ɵɵelementStart(6, "div", 107)(7, "div", 108)(8, "label");
328
+ i0.ɵɵelementStart(6, "div", 89)(7, "div", 90)(8, "label");
330
329
  i0.ɵɵtext(9, "List Name *");
331
330
  i0.ɵɵelementEnd();
332
- i0.ɵɵelementStart(10, "input", 109);
333
- i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_div_43_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newListName, $event) || (ctx_r1.newListName = $event); return i0.ɵɵresetView($event); });
331
+ i0.ɵɵelementStart(10, "input", 91);
332
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_Conditional_45_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newListName, $event) || (ctx_r1.newListName = $event); return i0.ɵɵresetView($event); });
334
333
  i0.ɵɵelementEnd()();
335
- i0.ɵɵelementStart(11, "div", 108)(12, "label");
334
+ i0.ɵɵelementStart(11, "div", 90)(12, "label");
336
335
  i0.ɵɵtext(13, "Description");
337
336
  i0.ɵɵelementEnd();
338
- i0.ɵɵelementStart(14, "textarea", 110);
339
- i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_div_43_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newListDescription, $event) || (ctx_r1.newListDescription = $event); return i0.ɵɵresetView($event); });
337
+ i0.ɵɵelementStart(14, "textarea", 92);
338
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_Conditional_45_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newListDescription, $event) || (ctx_r1.newListDescription = $event); return i0.ɵɵresetView($event); });
340
339
  i0.ɵɵelementEnd()();
341
- i0.ɵɵelementStart(15, "div", 111);
342
- i0.ɵɵelement(16, "i", 59);
340
+ i0.ɵɵelementStart(15, "div", 93);
341
+ i0.ɵɵelement(16, "i", 53);
343
342
  i0.ɵɵtext(17);
344
343
  i0.ɵɵelementEnd()();
345
- i0.ɵɵelementStart(18, "div", 112)(19, "button", 113);
346
- i0.ɵɵlistener("click", function ListsOperationsResource_div_43_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.confirmCreateList()); });
347
- i0.ɵɵtemplate(20, ListsOperationsResource_div_43_i_20_Template, 1, 0, "i", 114);
344
+ i0.ɵɵelementStart(18, "div", 94)(19, "button", 95);
345
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_45_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.confirmCreateList()); });
346
+ i0.ɵɵconditionalCreate(20, ListsOperationsResource_Conditional_45_Conditional_20_Template, 1, 0, "i", 96);
348
347
  i0.ɵɵtext(21);
349
348
  i0.ɵɵelementEnd();
350
- i0.ɵɵelementStart(22, "button", 115);
351
- i0.ɵɵlistener("click", function ListsOperationsResource_div_43_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
349
+ i0.ɵɵelementStart(22, "button", 97);
350
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_45_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCreateDialog()); });
352
351
  i0.ɵɵtext(23, "Cancel");
353
352
  i0.ɵɵelementEnd()()();
354
353
  } if (rf & 2) {
@@ -362,27 +361,27 @@ function ListsOperationsResource_div_43_Template(rf, ctx) { if (rf & 1) {
362
361
  i0.ɵɵadvance(2);
363
362
  i0.ɵɵproperty("disabled", !ctx_r1.newListName || ctx_r1.isSaving);
364
363
  i0.ɵɵadvance();
365
- i0.ɵɵproperty("ngIf", ctx_r1.isSaving);
364
+ i0.ɵɵconditional(ctx_r1.isSaving ? 20 : -1);
366
365
  i0.ɵɵadvance();
367
366
  i0.ɵɵtextInterpolate1(" ", ctx_r1.isSaving ? "Creating..." : "Create List", " ");
368
367
  } }
369
- function ListsOperationsResource_div_44_Template(rf, ctx) { if (rf & 1) {
368
+ function ListsOperationsResource_Conditional_46_Template(rf, ctx) { if (rf & 1) {
370
369
  const _r19 = i0.ɵɵgetCurrentView();
371
- i0.ɵɵelementStart(0, "div", 103);
372
- i0.ɵɵlistener("click", function ListsOperationsResource_div_44_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
370
+ i0.ɵɵelementStart(0, "div", 86);
371
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_46_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
373
372
  i0.ɵɵelementEnd();
374
373
  } }
375
- function ListsOperationsResource_div_45_div_14_Template(rf, ctx) { if (rf & 1) {
374
+ function ListsOperationsResource_Conditional_47_For_15_Template(rf, ctx) { if (rf & 1) {
376
375
  const _r21 = i0.ɵɵgetCurrentView();
377
- i0.ɵɵelementStart(0, "div", 124);
378
- i0.ɵɵlistener("click", function ListsOperationsResource_div_45_div_14_Template_div_click_0_listener() { const list_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectTargetList(list_r22.ID)); });
379
- i0.ɵɵelementStart(1, "div", 125);
380
- i0.ɵɵelement(2, "input", 126);
376
+ i0.ɵɵelementStart(0, "div", 104);
377
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_47_For_15_Template_div_click_0_listener() { const list_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectTargetList(list_r22.ID)); });
378
+ i0.ɵɵelementStart(1, "div", 105);
379
+ i0.ɵɵelement(2, "input", 106);
381
380
  i0.ɵɵelementEnd();
382
- i0.ɵɵelementStart(3, "div", 127)(4, "span", 128);
381
+ i0.ɵɵelementStart(3, "div", 107)(4, "span", 108);
383
382
  i0.ɵɵtext(5);
384
383
  i0.ɵɵelementEnd();
385
- i0.ɵɵelementStart(6, "span", 129);
384
+ i0.ɵɵelementStart(6, "span", 109);
386
385
  i0.ɵɵtext(7);
387
386
  i0.ɵɵelementEnd()()();
388
387
  } if (rf & 2) {
@@ -396,9 +395,9 @@ function ListsOperationsResource_div_45_div_14_Template(rf, ctx) { if (rf & 1) {
396
395
  i0.ɵɵadvance(2);
397
396
  i0.ɵɵtextInterpolate(list_r22.Entity);
398
397
  } }
399
- function ListsOperationsResource_div_45_div_15_Template(rf, ctx) { if (rf & 1) {
400
- i0.ɵɵelementStart(0, "div", 130);
401
- i0.ɵɵelement(1, "i", 131);
398
+ function ListsOperationsResource_Conditional_47_Conditional_16_Template(rf, ctx) { if (rf & 1) {
399
+ i0.ɵɵelementStart(0, "div", 103);
400
+ i0.ɵɵelement(1, "i", 110);
402
401
  i0.ɵɵelementStart(2, "p");
403
402
  i0.ɵɵtext(3);
404
403
  i0.ɵɵelementEnd()();
@@ -407,39 +406,40 @@ function ListsOperationsResource_div_45_div_15_Template(rf, ctx) { if (rf & 1) {
407
406
  i0.ɵɵadvance(3);
408
407
  i0.ɵɵtextInterpolate(ctx_r1.addToListSearchTerm ? "No lists match your search" : "No other lists available");
409
408
  } }
410
- function ListsOperationsResource_div_45_i_18_Template(rf, ctx) { if (rf & 1) {
411
- i0.ɵɵelement(0, "i", 116);
409
+ function ListsOperationsResource_Conditional_47_Conditional_19_Template(rf, ctx) { if (rf & 1) {
410
+ i0.ɵɵelement(0, "i", 96);
412
411
  } }
413
- function ListsOperationsResource_div_45_Template(rf, ctx) { if (rf & 1) {
412
+ function ListsOperationsResource_Conditional_47_Template(rf, ctx) { if (rf & 1) {
414
413
  const _r20 = i0.ɵɵgetCurrentView();
415
- i0.ɵɵelementStart(0, "div", 117)(1, "div", 105)(2, "h3");
414
+ i0.ɵɵelementStart(0, "div", 34)(1, "div", 87)(2, "h3");
416
415
  i0.ɵɵtext(3, "Add to Existing List");
417
416
  i0.ɵɵelementEnd();
418
- i0.ɵɵelementStart(4, "button", 106);
419
- i0.ɵɵlistener("click", function ListsOperationsResource_div_45_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
420
- i0.ɵɵelement(5, "i", 45);
417
+ i0.ɵɵelementStart(4, "button", 88);
418
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_47_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
419
+ i0.ɵɵelement(5, "i", 42);
421
420
  i0.ɵɵelementEnd()();
422
- i0.ɵɵelementStart(6, "div", 107)(7, "div", 118);
423
- i0.ɵɵelement(8, "i", 59);
421
+ i0.ɵɵelementStart(6, "div", 89)(7, "div", 98);
422
+ i0.ɵɵelement(8, "i", 53);
424
423
  i0.ɵɵtext(9);
425
424
  i0.ɵɵelementEnd();
426
- i0.ɵɵelementStart(10, "div", 119);
427
- i0.ɵɵelement(11, "i", 48);
428
- i0.ɵɵelementStart(12, "input", 120);
429
- i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_div_45_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.addToListSearchTerm, $event) || (ctx_r1.addToListSearchTerm = $event); return i0.ɵɵresetView($event); });
430
- i0.ɵɵlistener("ngModelChange", function ListsOperationsResource_div_45_Template_input_ngModelChange_12_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.filterAddToListOptions()); });
425
+ i0.ɵɵelementStart(10, "div", 99);
426
+ i0.ɵɵelement(11, "i", 44);
427
+ i0.ɵɵelementStart(12, "input", 100);
428
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsOperationsResource_Conditional_47_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.addToListSearchTerm, $event) || (ctx_r1.addToListSearchTerm = $event); return i0.ɵɵresetView($event); });
429
+ i0.ɵɵlistener("ngModelChange", function ListsOperationsResource_Conditional_47_Template_input_ngModelChange_12_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.filterAddToListOptions()); });
431
430
  i0.ɵɵelementEnd()();
432
- i0.ɵɵelementStart(13, "div", 121);
433
- i0.ɵɵtemplate(14, ListsOperationsResource_div_45_div_14_Template, 8, 5, "div", 122)(15, ListsOperationsResource_div_45_div_15_Template, 4, 1, "div", 123);
431
+ i0.ɵɵelementStart(13, "div", 101);
432
+ i0.ɵɵrepeaterCreate(14, ListsOperationsResource_Conditional_47_For_15_Template, 8, 5, "div", 102, i0.ɵɵrepeaterTrackByIdentity);
433
+ i0.ɵɵconditionalCreate(16, ListsOperationsResource_Conditional_47_Conditional_16_Template, 4, 1, "div", 103);
434
434
  i0.ɵɵelementEnd()();
435
- i0.ɵɵelementStart(16, "div", 112)(17, "button", 113);
436
- i0.ɵɵlistener("click", function ListsOperationsResource_div_45_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.confirmAddToList()); });
437
- i0.ɵɵtemplate(18, ListsOperationsResource_div_45_i_18_Template, 1, 0, "i", 114);
438
- i0.ɵɵtext(19);
435
+ i0.ɵɵelementStart(17, "div", 94)(18, "button", 95);
436
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_47_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.confirmAddToList()); });
437
+ i0.ɵɵconditionalCreate(19, ListsOperationsResource_Conditional_47_Conditional_19_Template, 1, 0, "i", 96);
438
+ i0.ɵɵtext(20);
439
439
  i0.ɵɵelementEnd();
440
- i0.ɵɵelementStart(20, "button", 115);
441
- i0.ɵɵlistener("click", function ListsOperationsResource_div_45_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
442
- i0.ɵɵtext(21, "Cancel");
440
+ i0.ɵɵelementStart(21, "button", 97);
441
+ i0.ɵɵlistener("click", function ListsOperationsResource_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelAddToListDialog()); });
442
+ i0.ɵɵtext(22, "Cancel");
443
443
  i0.ɵɵelementEnd()()();
444
444
  } if (rf & 2) {
445
445
  const ctx_r1 = i0.ɵɵnextContext();
@@ -448,19 +448,16 @@ function ListsOperationsResource_div_45_Template(rf, ctx) { if (rf & 1) {
448
448
  i0.ɵɵadvance(3);
449
449
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.addToListSearchTerm);
450
450
  i0.ɵɵadvance(2);
451
- i0.ɵɵproperty("ngForOf", ctx_r1.filteredAddToListOptions);
452
- i0.ɵɵadvance();
453
- i0.ɵɵproperty("ngIf", ctx_r1.filteredAddToListOptions.length === 0);
451
+ i0.ɵɵrepeater(ctx_r1.filteredAddToListOptions);
452
+ i0.ɵɵadvance(2);
453
+ i0.ɵɵconditional(ctx_r1.filteredAddToListOptions.length === 0 ? 16 : -1);
454
454
  i0.ɵɵadvance(2);
455
455
  i0.ɵɵproperty("disabled", !ctx_r1.selectedTargetListId || ctx_r1.isSaving);
456
456
  i0.ɵɵadvance();
457
- i0.ɵɵproperty("ngIf", ctx_r1.isSaving);
457
+ i0.ɵɵconditional(ctx_r1.isSaving ? 19 : -1);
458
458
  i0.ɵɵadvance();
459
459
  i0.ɵɵtextInterpolate1(" ", ctx_r1.isSaving ? "Adding..." : "Add to List", " ");
460
460
  } }
461
- export function LoadListsOperationsResource() {
462
- // tree shaker
463
- }
464
461
  let ListsOperationsResource = class ListsOperationsResource extends BaseResourceComponent {
465
462
  cdr;
466
463
  setOperationsService;
@@ -1115,13 +1112,13 @@ let ListsOperationsResource = class ListsOperationsResource extends BaseResource
1115
1112
  }
1116
1113
  }
1117
1114
  static ɵfac = function ListsOperationsResource_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ListsOperationsResource)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ListSetOperationsService), i0.ɵɵdirectiveInject(i2.MJNotificationService)); };
1118
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListsOperationsResource, selectors: [["mj-lists-operations-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 46, vars: 20, consts: [[1, "operations-container"], [1, "operations-header"], [1, "header-top"], [1, "header-title"], [1, "fa-solid", "fa-diagram-project"], ["class", "clear-all-btn", "title", "Clear all selections", 3, "click", 4, "ngIf"], [1, "header-subtitle"], [1, "operations-content"], [1, "selection-panel"], [1, "panel-header"], ["class", "list-count", 4, "ngIf"], [1, "entity-filter-section"], [1, "filter-label"], [1, "entity-selector"], [1, "entity-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value", 4, "ngFor", "ngForOf"], [1, "selected-lists"], ["class", "selected-item", 4, "ngFor", "ngForOf"], ["class", "add-list-area", 4, "ngIf"], ["class", "lists-full", 4, "ngIf"], ["class", "entity-note", 4, "ngIf"], ["class", "quick-operations", 4, "ngIf"], [1, "venn-panel"], [3, "data", "selectedRegion", "regionClick", 4, "ngIf"], ["class", "venn-empty", 4, "ngIf"], ["class", "loading-overlay", 4, "ngIf"], [1, "results-panel"], [1, "fa-solid", "fa-crosshairs"], ["class", "region-details", 4, "ngIf"], ["class", "operation-result", 4, "ngIf"], ["class", "results-empty", 4, "ngIf"], ["class", "modal-overlay", 3, "click", 4, "ngIf"], ["class", "modal-dialog", 4, "ngIf"], ["class", "modal-dialog add-to-list-dialog", 4, "ngIf"], ["title", "Clear all selections", 1, "clear-all-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "list-count"], [3, "value"], [1, "selected-item"], [1, "item-color"], [1, "item-info"], [1, "item-name"], [1, "item-entity"], [1, "remove-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "add-list-area"], [1, "add-list-search"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists to add...", 3, "ngModelChange", "focus", "ngModel"], ["class", "list-dropdown", 4, "ngIf"], [1, "list-dropdown"], [1, "dropdown-backdrop", 3, "click"], [1, "dropdown-content"], ["class", "dropdown-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "dropdown-item", 3, "click"], [1, "dropdown-name"], [1, "dropdown-entity"], [1, "lists-full"], [1, "fa-solid", "fa-info-circle"], [1, "entity-note"], [1, "quick-operations"], [1, "operation-buttons"], [1, "op-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-circle-notch"], [1, "fa-solid", "fa-arrows-split-up-and-left"], [3, "regionClick", "data", "selectedRegion"], [1, "venn-empty"], [1, "empty-icon"], [1, "fa-solid", "fa-circle-nodes"], [1, "loading-overlay"], ["text", "Calculating..."], [1, "region-details"], [1, "region-header"], [1, "region-label"], [1, "region-count"], [1, "region-actions"], [1, "action-btn", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "fa-solid", "fa-file-excel"], ["class", "record-preview", 4, "ngIf"], [1, "record-preview"], [1, "preview-list"], ["class", "preview-card", 4, "ngFor", "ngForOf"], ["class", "preview-loading", 4, "ngIf"], [1, "preview-card"], [1, "preview-card-content"], [1, "preview-name"], ["class", "preview-secondary", 4, "ngIf"], ["title", "Open record", 1, "preview-open-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "preview-secondary"], [1, "preview-loading"], ["text", "Loading preview...", "size", "small"], [1, "operation-result"], [1, "result-header"], [1, "result-operation"], [1, "result-count"], [1, "results-empty"], [1, "fa-solid", "fa-hand-pointer"], [1, "modal-overlay", 3, "click"], [1, "modal-dialog"], [1, "modal-header"], [1, "modal-close", 3, "click"], [1, "modal-body"], [1, "form-group"], ["type", "text", "placeholder", "Enter list name", 1, "form-input", 3, "ngModelChange", "ngModel"], ["placeholder", "Optional description", "rows", "3", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "form-info"], [1, "modal-footer"], [1, "btn-primary", 3, "click", "disabled"], ["class", "fa-solid fa-spinner fa-spin", 4, "ngIf"], [1, "btn-secondary", 3, "click"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "modal-dialog", "add-to-list-dialog"], [1, "form-info", 2, "margin-bottom", "16px"], [1, "list-search"], ["type", "text", "placeholder", "Search lists...", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "list-options"], ["class", "list-option", 3, "selected", "click", 4, "ngFor", "ngForOf"], ["class", "list-options-empty", 4, "ngIf"], [1, "list-option", 3, "click"], [1, "list-option-radio"], ["type", "radio", "name", "targetList", 3, "checked"], [1, "list-option-info"], [1, "list-option-name"], [1, "list-option-entity"], [1, "list-options-empty"], [1, "fa-solid", "fa-inbox"]], template: function ListsOperationsResource_Template(rf, ctx) { if (rf & 1) {
1115
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListsOperationsResource, selectors: [["mj-lists-operations-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 48, vars: 18, consts: [[1, "operations-container"], [1, "operations-header"], [1, "header-top"], [1, "header-title"], [1, "fa-solid", "fa-diagram-project"], ["title", "Clear all selections", 1, "clear-all-btn"], [1, "header-subtitle"], [1, "operations-content"], [1, "selection-panel"], [1, "panel-header"], [1, "list-count"], [1, "entity-filter-section"], [1, "filter-label"], [1, "entity-selector"], [1, "entity-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], [1, "selected-lists"], [1, "selected-item"], [1, "add-list-area"], [1, "lists-full"], [1, "entity-note"], [1, "quick-operations"], [1, "venn-panel"], [3, "data", "selectedRegion"], [1, "venn-empty"], [1, "loading-overlay"], [1, "results-panel"], [1, "fa-solid", "fa-crosshairs"], [1, "region-details"], [1, "operation-result"], [1, "results-empty"], [1, "modal-overlay"], [1, "modal-dialog"], [1, "modal-dialog", "add-to-list-dialog"], ["title", "Clear all selections", 1, "clear-all-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "item-color"], [1, "item-info"], [1, "item-name"], [1, "item-entity"], [1, "remove-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "add-list-search"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists to add...", 3, "ngModelChange", "focus", "ngModel"], [1, "list-dropdown"], [1, "dropdown-backdrop", 3, "click"], [1, "dropdown-content"], [1, "dropdown-item"], [1, "dropdown-item", 3, "click"], [1, "dropdown-name"], [1, "dropdown-entity"], [1, "fa-solid", "fa-info-circle"], [1, "operation-buttons"], [1, "op-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-circle-notch"], [1, "fa-solid", "fa-arrows-split-up-and-left"], [3, "regionClick", "data", "selectedRegion"], [1, "empty-icon"], [1, "fa-solid", "fa-circle-nodes"], ["text", "Calculating..."], [1, "region-header"], [1, "region-label"], [1, "region-count"], [1, "region-actions"], [1, "action-btn", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "fa-solid", "fa-file-excel"], [1, "record-preview"], [1, "preview-list"], [1, "preview-card"], [1, "preview-loading"], [1, "preview-card-content"], [1, "preview-name"], [1, "preview-secondary"], ["title", "Open record", 1, "preview-open-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], ["text", "Loading preview...", "size", "small"], [1, "result-header"], [1, "result-operation"], [1, "result-count"], [1, "fa-solid", "fa-hand-pointer"], [1, "modal-overlay", 3, "click"], [1, "modal-header"], [1, "modal-close", 3, "click"], [1, "modal-body"], [1, "form-group"], ["type", "text", "placeholder", "Enter list name", 1, "form-input", 3, "ngModelChange", "ngModel"], ["placeholder", "Optional description", "rows", "3", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "form-info"], [1, "modal-footer"], [1, "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "btn-secondary", 3, "click"], [1, "form-info", 2, "margin-bottom", "16px"], [1, "list-search"], ["type", "text", "placeholder", "Search lists...", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "list-options"], [1, "list-option", 3, "selected"], [1, "list-options-empty"], [1, "list-option", 3, "click"], [1, "list-option-radio"], ["type", "radio", "name", "targetList", 3, "checked"], [1, "list-option-info"], [1, "list-option-name"], [1, "list-option-entity"], [1, "fa-solid", "fa-inbox"]], template: function ListsOperationsResource_Template(rf, ctx) { if (rf & 1) {
1119
1116
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
1120
1117
  i0.ɵɵelement(4, "i", 4);
1121
1118
  i0.ɵɵelementStart(5, "h2");
1122
1119
  i0.ɵɵtext(6, "List Operations");
1123
1120
  i0.ɵɵelementEnd()();
1124
- i0.ɵɵtemplate(7, ListsOperationsResource_button_7_Template, 3, 0, "button", 5);
1121
+ i0.ɵɵconditionalCreate(7, ListsOperationsResource_Conditional_7_Template, 3, 0, "button", 5);
1125
1122
  i0.ɵɵelementEnd();
1126
1123
  i0.ɵɵelementStart(8, "div", 6);
1127
1124
  i0.ɵɵtext(9, " Visualize overlaps and perform set operations on your lists ");
@@ -1129,7 +1126,7 @@ let ListsOperationsResource = class ListsOperationsResource extends BaseResource
1129
1126
  i0.ɵɵelementStart(10, "div", 7)(11, "div", 8)(12, "div", 9)(13, "h3");
1130
1127
  i0.ɵɵtext(14, "Selected Lists");
1131
1128
  i0.ɵɵelementEnd();
1132
- i0.ɵɵtemplate(15, ListsOperationsResource_span_15_Template, 2, 2, "span", 10);
1129
+ i0.ɵɵconditionalCreate(15, ListsOperationsResource_Conditional_15_Template, 2, 2, "span", 10);
1133
1130
  i0.ɵɵelementEnd();
1134
1131
  i0.ɵɵelementStart(16, "div", 11)(17, "label", 12);
1135
1132
  i0.ɵɵtext(18, "Filter by Entity");
@@ -1140,66 +1137,76 @@ let ListsOperationsResource = class ListsOperationsResource extends BaseResource
1140
1137
  i0.ɵɵelementStart(21, "option", 15);
1141
1138
  i0.ɵɵtext(22, "All Entities");
1142
1139
  i0.ɵɵelementEnd();
1143
- i0.ɵɵtemplate(23, ListsOperationsResource_option_23_Template, 2, 3, "option", 16);
1140
+ i0.ɵɵrepeaterCreate(23, ListsOperationsResource_For_24_Template, 2, 3, "option", 16, i0.ɵɵrepeaterTrackByIdentity);
1144
1141
  i0.ɵɵelementEnd()()();
1145
- i0.ɵɵelementStart(24, "div", 17);
1146
- i0.ɵɵtemplate(25, ListsOperationsResource_div_25_Template, 9, 4, "div", 18)(26, ListsOperationsResource_div_26_Template, 5, 2, "div", 19)(27, ListsOperationsResource_div_27_Template, 3, 1, "div", 20);
1142
+ i0.ɵɵelementStart(25, "div", 17);
1143
+ i0.ɵɵrepeaterCreate(26, ListsOperationsResource_For_27_Template, 9, 4, "div", 18, i0.ɵɵrepeaterTrackByIdentity);
1144
+ i0.ɵɵconditionalCreate(28, ListsOperationsResource_Conditional_28_Template, 5, 2, "div", 19);
1145
+ i0.ɵɵconditionalCreate(29, ListsOperationsResource_Conditional_29_Template, 3, 1, "div", 20);
1147
1146
  i0.ɵɵelementEnd();
1148
- i0.ɵɵtemplate(28, ListsOperationsResource_div_28_Template, 6, 1, "div", 21)(29, ListsOperationsResource_div_29_Template, 16, 3, "div", 22);
1147
+ i0.ɵɵconditionalCreate(30, ListsOperationsResource_Conditional_30_Template, 6, 1, "div", 21);
1148
+ i0.ɵɵconditionalCreate(31, ListsOperationsResource_Conditional_31_Template, 16, 3, "div", 22);
1149
1149
  i0.ɵɵelementEnd();
1150
- i0.ɵɵelementStart(30, "div", 23);
1151
- i0.ɵɵtemplate(31, ListsOperationsResource_mj_venn_diagram_31_Template, 1, 2, "mj-venn-diagram", 24)(32, ListsOperationsResource_div_32_Template, 7, 0, "div", 25)(33, ListsOperationsResource_div_33_Template, 2, 0, "div", 26);
1150
+ i0.ɵɵelementStart(32, "div", 23);
1151
+ i0.ɵɵconditionalCreate(33, ListsOperationsResource_Conditional_33_Template, 1, 2, "mj-venn-diagram", 24);
1152
+ i0.ɵɵconditionalCreate(34, ListsOperationsResource_Conditional_34_Template, 7, 0, "div", 25);
1153
+ i0.ɵɵconditionalCreate(35, ListsOperationsResource_Conditional_35_Template, 2, 0, "div", 26);
1152
1154
  i0.ɵɵelementEnd();
1153
- i0.ɵɵelementStart(34, "div", 27)(35, "div", 9)(36, "h3");
1154
- i0.ɵɵelement(37, "i", 28);
1155
- i0.ɵɵtext(38);
1155
+ i0.ɵɵelementStart(36, "div", 27)(37, "div", 9)(38, "h3");
1156
+ i0.ɵɵelement(39, "i", 28);
1157
+ i0.ɵɵtext(40);
1156
1158
  i0.ɵɵelementEnd()();
1157
- i0.ɵɵtemplate(39, ListsOperationsResource_div_39_Template, 17, 3, "div", 29)(40, ListsOperationsResource_div_40_Template, 13, 2, "div", 30)(41, ListsOperationsResource_div_41_Template, 4, 0, "div", 31);
1159
+ i0.ɵɵconditionalCreate(41, ListsOperationsResource_Conditional_41_Template, 17, 3, "div", 29);
1160
+ i0.ɵɵconditionalCreate(42, ListsOperationsResource_Conditional_42_Template, 13, 2, "div", 30);
1161
+ i0.ɵɵconditionalCreate(43, ListsOperationsResource_Conditional_43_Template, 4, 0, "div", 31);
1158
1162
  i0.ɵɵelementEnd()();
1159
- i0.ɵɵtemplate(42, ListsOperationsResource_div_42_Template, 1, 0, "div", 32)(43, ListsOperationsResource_div_43_Template, 24, 7, "div", 33)(44, ListsOperationsResource_div_44_Template, 1, 0, "div", 32)(45, ListsOperationsResource_div_45_Template, 22, 8, "div", 34);
1163
+ i0.ɵɵconditionalCreate(44, ListsOperationsResource_Conditional_44_Template, 1, 0, "div", 32);
1164
+ i0.ɵɵconditionalCreate(45, ListsOperationsResource_Conditional_45_Template, 24, 7, "div", 33);
1165
+ i0.ɵɵconditionalCreate(46, ListsOperationsResource_Conditional_46_Template, 1, 0, "div", 32);
1166
+ i0.ɵɵconditionalCreate(47, ListsOperationsResource_Conditional_47_Template, 23, 7, "div", 34);
1160
1167
  i0.ɵɵelementEnd();
1161
1168
  } if (rf & 2) {
1162
1169
  i0.ɵɵadvance(7);
1163
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length > 0 || ctx.selectedEntityId);
1170
+ i0.ɵɵconditional(ctx.selectedLists.length > 0 || ctx.selectedEntityId ? 7 : -1);
1164
1171
  i0.ɵɵadvance(8);
1165
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length > 0);
1172
+ i0.ɵɵconditional(ctx.selectedLists.length > 0 ? 15 : -1);
1166
1173
  i0.ɵɵadvance(5);
1167
1174
  i0.ɵɵtwoWayProperty("ngModel", ctx.selectedEntityId);
1168
1175
  i0.ɵɵadvance(3);
1169
- i0.ɵɵproperty("ngForOf", ctx.entityOptions);
1176
+ i0.ɵɵrepeater(ctx.entityOptions);
1177
+ i0.ɵɵadvance(3);
1178
+ i0.ɵɵrepeater(ctx.selectedLists);
1170
1179
  i0.ɵɵadvance(2);
1171
- i0.ɵɵproperty("ngForOf", ctx.selectedLists);
1172
- i0.ɵɵadvance();
1173
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length < ctx.maxLists);
1180
+ i0.ɵɵconditional(ctx.selectedLists.length < ctx.maxLists ? 28 : -1);
1174
1181
  i0.ɵɵadvance();
1175
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length >= ctx.maxLists);
1182
+ i0.ɵɵconditional(ctx.selectedLists.length >= ctx.maxLists ? 29 : -1);
1176
1183
  i0.ɵɵadvance();
1177
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length > 0);
1184
+ i0.ɵɵconditional(ctx.selectedLists.length > 0 ? 30 : -1);
1178
1185
  i0.ɵɵadvance();
1179
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length >= 2);
1186
+ i0.ɵɵconditional(ctx.selectedLists.length >= 2 ? 31 : -1);
1180
1187
  i0.ɵɵadvance(2);
1181
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length > 0);
1188
+ i0.ɵɵconditional(ctx.selectedLists.length > 0 ? 33 : -1);
1182
1189
  i0.ɵɵadvance();
1183
- i0.ɵɵproperty("ngIf", ctx.selectedLists.length === 0);
1190
+ i0.ɵɵconditional(ctx.selectedLists.length === 0 ? 34 : -1);
1184
1191
  i0.ɵɵadvance();
1185
- i0.ɵɵproperty("ngIf", ctx.isCalculating);
1192
+ i0.ɵɵconditional(ctx.isCalculating ? 35 : -1);
1186
1193
  i0.ɵɵadvance(5);
1187
1194
  i0.ɵɵtextInterpolate1(" ", ctx.selectedRegion ? "Selected Region" : "Results", " ");
1188
1195
  i0.ɵɵadvance();
1189
- i0.ɵɵproperty("ngIf", ctx.selectedRegion);
1196
+ i0.ɵɵconditional(ctx.selectedRegion ? 41 : -1);
1190
1197
  i0.ɵɵadvance();
1191
- i0.ɵɵproperty("ngIf", ctx.lastOperationResult && !ctx.selectedRegion);
1198
+ i0.ɵɵconditional(ctx.lastOperationResult && !ctx.selectedRegion ? 42 : -1);
1192
1199
  i0.ɵɵadvance();
1193
- i0.ɵɵproperty("ngIf", !ctx.selectedRegion && !ctx.lastOperationResult);
1200
+ i0.ɵɵconditional(!ctx.selectedRegion && !ctx.lastOperationResult ? 43 : -1);
1194
1201
  i0.ɵɵadvance();
1195
- i0.ɵɵproperty("ngIf", ctx.showCreateDialog);
1202
+ i0.ɵɵconditional(ctx.showCreateDialog ? 44 : -1);
1196
1203
  i0.ɵɵadvance();
1197
- i0.ɵɵproperty("ngIf", ctx.showCreateDialog);
1204
+ i0.ɵɵconditional(ctx.showCreateDialog ? 45 : -1);
1198
1205
  i0.ɵɵadvance();
1199
- i0.ɵɵproperty("ngIf", ctx.showAddToListDialog);
1206
+ i0.ɵɵconditional(ctx.showAddToListDialog ? 46 : -1);
1200
1207
  i0.ɵɵadvance();
1201
- i0.ɵɵproperty("ngIf", ctx.showAddToListDialog);
1202
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgModel, i5.LoadingComponent, i6.VennDiagramComponent], styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .operations-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n }\n\n .operations-header {\n padding: 20px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .header-top {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .clear-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .clear-all-btn:hover {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n }\n\n .clear-all-btn i {\n font-size: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #9C27B0;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-subtitle {\n color: #666;\n font-size: 14px;\n }\n\n .operations-content {\n display: grid;\n grid-template-columns: 280px 1fr 300px;\n gap: 16px;\n flex: 1;\n padding: 16px;\n overflow: hidden;\n }\n\n /* Panels */\n .selection-panel,\n .results-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .venn-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n position: relative;\n min-height: 400px;\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .panel-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .list-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Entity Filter */\n .entity-filter-section {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .filter-label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .entity-select {\n width: 100%;\n padding: 8px 12px;\n font-size: 13px;\n border: 1px solid #ddd;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .entity-select:focus {\n border-color: #9C27B0;\n }\n\n .entity-note {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 12px;\n padding: 8px 10px;\n background: #e8f5e9;\n border-radius: 6px;\n font-size: 12px;\n color: #2e7d32;\n }\n\n .entity-note i {\n color: #4caf50;\n }\n\n /* Selected Lists */\n .selected-lists {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n }\n\n .selected-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 8px;\n }\n\n .item-color {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n flex-shrink: 0;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .item-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-entity {\n font-size: 11px;\n color: #999;\n }\n\n .remove-btn {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n }\n\n .remove-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Add list area */\n .add-list-area {\n position: relative;\n }\n\n .add-list-search {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px dashed #ddd;\n border-radius: 6px;\n transition: border-color 0.2s;\n }\n\n .add-list-search:focus-within {\n border-color: #9C27B0;\n }\n\n .add-list-search i {\n color: #999;\n }\n\n .add-list-search input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 13px;\n }\n\n .list-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 100;\n margin-top: 4px;\n }\n\n .dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .dropdown-content {\n position: relative;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n max-height: 200px;\n overflow-y: auto;\n }\n\n .dropdown-item {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .dropdown-item:hover {\n background: #f5f5f5;\n }\n\n .dropdown-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n .dropdown-entity {\n font-size: 11px;\n color: #999;\n }\n\n .lists-full {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n font-size: 12px;\n color: #999;\n background: #f8f9fa;\n border-radius: 6px;\n }\n\n .entity-warning {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin: 12px;\n padding: 10px;\n background: #fff8e1;\n border-radius: 6px;\n font-size: 12px;\n color: #856404;\n }\n\n .entity-warning i {\n color: #ffc107;\n margin-top: 2px;\n }\n\n /* Quick Operations */\n .quick-operations {\n padding: 12px;\n border-top: 1px solid #f0f0f0;\n }\n\n .quick-operations h4 {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .operation-buttons {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .op-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .op-btn:hover:not(:disabled) {\n background: #e8f4fd;\n border-color: #9C27B0;\n color: #9C27B0;\n }\n\n .op-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Venn Panel */\n .venn-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n padding: 40px;\n }\n\n .empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.1) 0%, rgba(156, 39, 176, 0.05) 100%);\n border-radius: 50%;\n margin-bottom: 20px;\n }\n\n .empty-icon i {\n font-size: 36px;\n color: #9C27B0;\n }\n\n .venn-empty h3 {\n margin: 0 0 8px;\n font-size: 18px;\n color: #333;\n }\n\n .venn-empty p {\n margin: 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n }\n\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255,255,255,0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Results Panel */\n .region-details,\n .operation-result {\n padding: 16px;\n }\n\n .region-header,\n .result-header {\n margin-bottom: 16px;\n }\n\n .region-label,\n .result-operation {\n display: block;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n }\n\n .region-count,\n .result-count {\n font-size: 13px;\n color: #9C27B0;\n font-weight: 500;\n }\n\n .region-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .action-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .action-btn:hover {\n background: #f5f5f5;\n }\n\n .action-btn.primary {\n background: #9C27B0;\n border-color: #9C27B0;\n color: white;\n }\n\n .action-btn.primary:hover {\n background: #7B1FA2;\n }\n\n .record-preview h5 {\n margin: 0 0 8px;\n font-size: 12px;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .preview-list {\n max-height: 200px;\n overflow-y: auto;\n }\n\n .preview-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 6px;\n transition: all 0.15s ease;\n }\n\n .preview-card:hover {\n background: #eef1f5;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .preview-card-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .preview-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-secondary {\n font-size: 11px;\n color: #888;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-open-btn {\n background: none;\n border: none;\n color: #9C27B0;\n cursor: pointer;\n padding: 6px 8px;\n border-radius: 4px;\n opacity: 0.6;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .preview-open-btn:hover {\n opacity: 1;\n background: rgba(156, 39, 176, 0.1);\n }\n\n .preview-loading {\n padding: 12px;\n text-align: center;\n }\n\n .results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n text-align: center;\n color: #999;\n }\n\n .results-empty i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.5;\n }\n\n .results-empty p {\n font-size: 13px;\n margin: 0;\n max-width: 200px;\n }\n\n /* Modal */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n width: 420px;\n max-width: 90vw;\n z-index: 1001;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 16px;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px 8px;\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #9C27B0;\n box-shadow: 0 0 0 3px rgba(156, 39, 176, 0.1);\n }\n\n textarea.form-input {\n resize: vertical;\n }\n\n .form-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n }\n\n .form-info i {\n color: #9C27B0;\n }\n\n .modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #9C27B0;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #7B1FA2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-secondary:hover {\n background: #f5f5f5;\n }\n\n /* Add to List Dialog */\n .add-to-list-dialog {\n width: 480px;\n }\n\n .add-to-list-dialog .modal-body {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 12px;\n }\n\n .list-search i {\n color: #999;\n flex-shrink: 0;\n }\n\n .list-search .form-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 0;\n font-size: 14px;\n }\n\n .list-search .form-input:focus {\n box-shadow: none;\n outline: none;\n }\n\n .list-options {\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n max-height: 250px;\n overflow-y: auto;\n }\n\n .list-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .list-option:last-child {\n border-bottom: none;\n }\n\n .list-option:hover {\n background: #f8f9fa;\n }\n\n .list-option.selected {\n background: #f3e5f5;\n }\n\n .list-option-radio {\n flex-shrink: 0;\n }\n\n .list-option-radio input[type=\"radio\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #9C27B0;\n }\n\n .list-option-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .list-option-name {\n font-size: 14px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-option-entity {\n font-size: 12px;\n color: #888;\n }\n\n .list-options-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n color: #999;\n }\n\n .list-options-empty i {\n font-size: 28px;\n margin-bottom: 10px;\n opacity: 0.5;\n }\n\n .list-options-empty p {\n margin: 0;\n font-size: 13px;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .operations-content {\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr auto;\n }\n\n .selection-panel {\n order: 1;\n }\n\n .venn-panel {\n order: 2;\n min-height: 300px;\n }\n\n .results-panel {\n order: 3;\n }\n }\n "], encapsulation: 2 });
1208
+ i0.ɵɵconditional(ctx.showAddToListDialog ? 47 : -1);
1209
+ } }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.DefaultValueAccessor, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.NgModel, i4.LoadingComponent, i5.VennDiagramComponent], styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .operations-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n }\n\n .operations-header {\n padding: 20px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .header-top {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .clear-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .clear-all-btn:hover {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n }\n\n .clear-all-btn i {\n font-size: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #9C27B0;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-subtitle {\n color: #666;\n font-size: 14px;\n }\n\n .operations-content {\n display: grid;\n grid-template-columns: 280px 1fr 300px;\n gap: 16px;\n flex: 1;\n padding: 16px;\n overflow: hidden;\n }\n\n /* Panels */\n .selection-panel,\n .results-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .venn-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n position: relative;\n min-height: 400px;\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .panel-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .list-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Entity Filter */\n .entity-filter-section {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .filter-label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .entity-select {\n width: 100%;\n padding: 8px 12px;\n font-size: 13px;\n border: 1px solid #ddd;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .entity-select:focus {\n border-color: #9C27B0;\n }\n\n .entity-note {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 12px;\n padding: 8px 10px;\n background: #e8f5e9;\n border-radius: 6px;\n font-size: 12px;\n color: #2e7d32;\n }\n\n .entity-note i {\n color: #4caf50;\n }\n\n /* Selected Lists */\n .selected-lists {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n }\n\n .selected-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 8px;\n }\n\n .item-color {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n flex-shrink: 0;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .item-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-entity {\n font-size: 11px;\n color: #999;\n }\n\n .remove-btn {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n }\n\n .remove-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Add list area */\n .add-list-area {\n position: relative;\n }\n\n .add-list-search {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px dashed #ddd;\n border-radius: 6px;\n transition: border-color 0.2s;\n }\n\n .add-list-search:focus-within {\n border-color: #9C27B0;\n }\n\n .add-list-search i {\n color: #999;\n }\n\n .add-list-search input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 13px;\n }\n\n .list-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 100;\n margin-top: 4px;\n }\n\n .dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .dropdown-content {\n position: relative;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n max-height: 200px;\n overflow-y: auto;\n }\n\n .dropdown-item {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .dropdown-item:hover {\n background: #f5f5f5;\n }\n\n .dropdown-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n .dropdown-entity {\n font-size: 11px;\n color: #999;\n }\n\n .lists-full {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n font-size: 12px;\n color: #999;\n background: #f8f9fa;\n border-radius: 6px;\n }\n\n .entity-warning {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin: 12px;\n padding: 10px;\n background: #fff8e1;\n border-radius: 6px;\n font-size: 12px;\n color: #856404;\n }\n\n .entity-warning i {\n color: #ffc107;\n margin-top: 2px;\n }\n\n /* Quick Operations */\n .quick-operations {\n padding: 12px;\n border-top: 1px solid #f0f0f0;\n }\n\n .quick-operations h4 {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .operation-buttons {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .op-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .op-btn:hover:not(:disabled) {\n background: #e8f4fd;\n border-color: #9C27B0;\n color: #9C27B0;\n }\n\n .op-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Venn Panel */\n .venn-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n padding: 40px;\n }\n\n .empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.1) 0%, rgba(156, 39, 176, 0.05) 100%);\n border-radius: 50%;\n margin-bottom: 20px;\n }\n\n .empty-icon i {\n font-size: 36px;\n color: #9C27B0;\n }\n\n .venn-empty h3 {\n margin: 0 0 8px;\n font-size: 18px;\n color: #333;\n }\n\n .venn-empty p {\n margin: 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n }\n\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255,255,255,0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Results Panel */\n .region-details,\n .operation-result {\n padding: 16px;\n }\n\n .region-header,\n .result-header {\n margin-bottom: 16px;\n }\n\n .region-label,\n .result-operation {\n display: block;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n }\n\n .region-count,\n .result-count {\n font-size: 13px;\n color: #9C27B0;\n font-weight: 500;\n }\n\n .region-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .action-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .action-btn:hover {\n background: #f5f5f5;\n }\n\n .action-btn.primary {\n background: #9C27B0;\n border-color: #9C27B0;\n color: white;\n }\n\n .action-btn.primary:hover {\n background: #7B1FA2;\n }\n\n .record-preview h5 {\n margin: 0 0 8px;\n font-size: 12px;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .preview-list {\n max-height: 200px;\n overflow-y: auto;\n }\n\n .preview-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 6px;\n transition: all 0.15s ease;\n }\n\n .preview-card:hover {\n background: #eef1f5;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .preview-card-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .preview-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-secondary {\n font-size: 11px;\n color: #888;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-open-btn {\n background: none;\n border: none;\n color: #9C27B0;\n cursor: pointer;\n padding: 6px 8px;\n border-radius: 4px;\n opacity: 0.6;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .preview-open-btn:hover {\n opacity: 1;\n background: rgba(156, 39, 176, 0.1);\n }\n\n .preview-loading {\n padding: 12px;\n text-align: center;\n }\n\n .results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n text-align: center;\n color: #999;\n }\n\n .results-empty i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.5;\n }\n\n .results-empty p {\n font-size: 13px;\n margin: 0;\n max-width: 200px;\n }\n\n /* Modal */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n width: 420px;\n max-width: 90vw;\n z-index: 1001;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 16px;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px 8px;\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #9C27B0;\n box-shadow: 0 0 0 3px rgba(156, 39, 176, 0.1);\n }\n\n textarea.form-input {\n resize: vertical;\n }\n\n .form-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n }\n\n .form-info i {\n color: #9C27B0;\n }\n\n .modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #9C27B0;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #7B1FA2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-secondary:hover {\n background: #f5f5f5;\n }\n\n /* Add to List Dialog */\n .add-to-list-dialog {\n width: 480px;\n }\n\n .add-to-list-dialog .modal-body {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 12px;\n }\n\n .list-search i {\n color: #999;\n flex-shrink: 0;\n }\n\n .list-search .form-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 0;\n font-size: 14px;\n }\n\n .list-search .form-input:focus {\n box-shadow: none;\n outline: none;\n }\n\n .list-options {\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n max-height: 250px;\n overflow-y: auto;\n }\n\n .list-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .list-option:last-child {\n border-bottom: none;\n }\n\n .list-option:hover {\n background: #f8f9fa;\n }\n\n .list-option.selected {\n background: #f3e5f5;\n }\n\n .list-option-radio {\n flex-shrink: 0;\n }\n\n .list-option-radio input[type=\"radio\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #9C27B0;\n }\n\n .list-option-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .list-option-name {\n font-size: 14px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-option-entity {\n font-size: 12px;\n color: #888;\n }\n\n .list-options-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n color: #999;\n }\n\n .list-options-empty i {\n font-size: 28px;\n margin-bottom: 10px;\n opacity: 0.5;\n }\n\n .list-options-empty p {\n margin: 0;\n font-size: 13px;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .operations-content {\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr auto;\n }\n\n .selection-panel {\n order: 1;\n }\n\n .venn-panel {\n order: 2;\n min-height: 300px;\n }\n\n .results-panel {\n order: 3;\n }\n }\n "], encapsulation: 2 });
1203
1210
  };
1204
1211
  ListsOperationsResource = __decorate([
1205
1212
  RegisterClass(BaseResourceComponent, 'ListsOperationsResource')
@@ -1207,7 +1214,7 @@ ListsOperationsResource = __decorate([
1207
1214
  export { ListsOperationsResource };
1208
1215
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListsOperationsResource, [{
1209
1216
  type: Component,
1210
- args: [{ selector: 'mj-lists-operations-resource', template: `
1217
+ args: [{ standalone: false, selector: 'mj-lists-operations-resource', template: `
1211
1218
  <div class="operations-container">
1212
1219
  <!-- Header -->
1213
1220
  <div class="operations-header">
@@ -1216,30 +1223,34 @@ export { ListsOperationsResource };
1216
1223
  <i class="fa-solid fa-diagram-project"></i>
1217
1224
  <h2>List Operations</h2>
1218
1225
  </div>
1219
- <button *ngIf="selectedLists.length > 0 || selectedEntityId"
1220
- class="clear-all-btn"
1221
- (click)="clearAllSelections()"
1222
- title="Clear all selections">
1223
- <i class="fa-solid fa-xmark"></i>
1224
- Clear
1225
- </button>
1226
+ @if (selectedLists.length > 0 || selectedEntityId) {
1227
+ <button
1228
+ class="clear-all-btn"
1229
+ (click)="clearAllSelections()"
1230
+ title="Clear all selections">
1231
+ <i class="fa-solid fa-xmark"></i>
1232
+ Clear
1233
+ </button>
1234
+ }
1226
1235
  </div>
1227
1236
  <div class="header-subtitle">
1228
1237
  Visualize overlaps and perform set operations on your lists
1229
1238
  </div>
1230
1239
  </div>
1231
-
1240
+
1232
1241
  <!-- Main Content -->
1233
1242
  <div class="operations-content">
1234
1243
  <!-- Left Panel: List Selection -->
1235
1244
  <div class="selection-panel">
1236
1245
  <div class="panel-header">
1237
1246
  <h3>Selected Lists</h3>
1238
- <span class="list-count" *ngIf="selectedLists.length > 0">
1239
- {{selectedLists.length}}/{{maxLists}}
1240
- </span>
1247
+ @if (selectedLists.length > 0) {
1248
+ <span class="list-count">
1249
+ {{selectedLists.length}}/{{maxLists}}
1250
+ </span>
1251
+ }
1241
1252
  </div>
1242
-
1253
+
1243
1254
  <!-- Entity Filter Selector -->
1244
1255
  <div class="entity-filter-section">
1245
1256
  <label class="filter-label">Filter by Entity</label>
@@ -1249,106 +1260,125 @@ export { ListsOperationsResource };
1249
1260
  (ngModelChange)="onEntityFilterChange()"
1250
1261
  class="entity-select">
1251
1262
  <option value="">All Entities</option>
1252
- <option *ngFor="let entity of entityOptions" [value]="entity.id">
1253
- {{entity.name}} ({{entity.listCount}})
1254
- </option>
1263
+ @for (entity of entityOptions; track entity) {
1264
+ <option [value]="entity.id">
1265
+ {{entity.name}} ({{entity.listCount}})
1266
+ </option>
1267
+ }
1255
1268
  </select>
1256
1269
  </div>
1257
1270
  </div>
1258
-
1271
+
1259
1272
  <!-- Selected lists -->
1260
1273
  <div class="selected-lists">
1261
- <div class="selected-item" *ngFor="let item of selectedLists; let i = index">
1262
- <div class="item-color" [style.background-color]="item.color"></div>
1263
- <div class="item-info">
1264
- <span class="item-name">{{item.list.Name}}</span>
1265
- <span class="item-entity">{{item.entityName}}</span>
1266
- </div>
1267
- <button class="remove-btn" (click)="removeList(i)">
1268
- <i class="fa-solid fa-times"></i>
1269
- </button>
1270
- </div>
1271
-
1272
- <div class="add-list-area" *ngIf="selectedLists.length < maxLists">
1273
- <div class="add-list-search">
1274
- <i class="fa-solid fa-search"></i>
1275
- <input
1276
- type="text"
1277
- [(ngModel)]="listSearchTerm"
1278
- (ngModelChange)="filterAvailableLists()"
1279
- placeholder="Search lists to add..."
1280
- (focus)="showListDropdown = true" />
1274
+ @for (item of selectedLists; track item; let i = $index) {
1275
+ <div class="selected-item">
1276
+ <div class="item-color" [style.background-color]="item.color"></div>
1277
+ <div class="item-info">
1278
+ <span class="item-name">{{item.list.Name}}</span>
1279
+ <span class="item-entity">{{item.entityName}}</span>
1280
+ </div>
1281
+ <button class="remove-btn" (click)="removeList(i)">
1282
+ <i class="fa-solid fa-times"></i>
1283
+ </button>
1281
1284
  </div>
1282
-
1283
- <!-- Available lists dropdown -->
1284
- <div class="list-dropdown" *ngIf="showListDropdown && filteredAvailableLists.length > 0">
1285
- <div class="dropdown-backdrop" (click)="showListDropdown = false"></div>
1286
- <div class="dropdown-content">
1287
- <div
1288
- class="dropdown-item"
1289
- *ngFor="let list of filteredAvailableLists"
1290
- (click)="addList(list)">
1291
- <span class="dropdown-name">{{list.Name}}</span>
1292
- <span class="dropdown-entity">{{list.Entity}}</span>
1293
- </div>
1285
+ }
1286
+
1287
+ @if (selectedLists.length < maxLists) {
1288
+ <div class="add-list-area">
1289
+ <div class="add-list-search">
1290
+ <i class="fa-solid fa-search"></i>
1291
+ <input
1292
+ type="text"
1293
+ [(ngModel)]="listSearchTerm"
1294
+ (ngModelChange)="filterAvailableLists()"
1295
+ placeholder="Search lists to add..."
1296
+ (focus)="showListDropdown = true" />
1294
1297
  </div>
1298
+ <!-- Available lists dropdown -->
1299
+ @if (showListDropdown && filteredAvailableLists.length > 0) {
1300
+ <div class="list-dropdown">
1301
+ <div class="dropdown-backdrop" (click)="showListDropdown = false"></div>
1302
+ <div class="dropdown-content">
1303
+ @for (list of filteredAvailableLists; track list) {
1304
+ <div
1305
+ class="dropdown-item"
1306
+ (click)="addList(list)">
1307
+ <span class="dropdown-name">{{list.Name}}</span>
1308
+ <span class="dropdown-entity">{{list.Entity}}</span>
1309
+ </div>
1310
+ }
1311
+ </div>
1312
+ </div>
1313
+ }
1295
1314
  </div>
1296
- </div>
1297
-
1298
- <div class="lists-full" *ngIf="selectedLists.length >= maxLists">
1299
- <i class="fa-solid fa-info-circle"></i>
1300
- Maximum {{maxLists}} lists can be compared
1301
- </div>
1315
+ }
1316
+
1317
+ @if (selectedLists.length >= maxLists) {
1318
+ <div class="lists-full">
1319
+ <i class="fa-solid fa-info-circle"></i>
1320
+ Maximum {{maxLists}} lists can be compared
1321
+ </div>
1322
+ }
1302
1323
  </div>
1303
-
1324
+
1304
1325
  <!-- Entity consistency note -->
1305
- <div class="entity-note" *ngIf="selectedLists.length > 0">
1306
- <i class="fa-solid fa-info-circle"></i>
1307
- <span>Comparing lists of type: <strong>{{selectedLists[0].entityName}}</strong></span>
1308
- </div>
1309
-
1326
+ @if (selectedLists.length > 0) {
1327
+ <div class="entity-note">
1328
+ <i class="fa-solid fa-info-circle"></i>
1329
+ <span>Comparing lists of type: <strong>{{selectedLists[0].entityName}}</strong></span>
1330
+ </div>
1331
+ }
1332
+
1310
1333
  <!-- Quick Operations -->
1311
- <div class="quick-operations" *ngIf="selectedLists.length >= 2">
1312
- <h4>Quick Operations</h4>
1313
- <div class="operation-buttons">
1314
- <button class="op-btn" (click)="performOperation('union')" [disabled]="isCalculating">
1315
- <i class="fa-solid fa-layer-group"></i>
1316
- <span>Union All</span>
1317
- </button>
1318
- <button class="op-btn" (click)="performOperation('intersection')" [disabled]="isCalculating">
1319
- <i class="fa-solid fa-circle-notch"></i>
1320
- <span>Intersection</span>
1321
- </button>
1322
- <button class="op-btn" (click)="performOperation('symmetric_difference')" [disabled]="isCalculating">
1323
- <i class="fa-solid fa-arrows-split-up-and-left"></i>
1324
- <span>Unique Each</span>
1325
- </button>
1334
+ @if (selectedLists.length >= 2) {
1335
+ <div class="quick-operations">
1336
+ <h4>Quick Operations</h4>
1337
+ <div class="operation-buttons">
1338
+ <button class="op-btn" (click)="performOperation('union')" [disabled]="isCalculating">
1339
+ <i class="fa-solid fa-layer-group"></i>
1340
+ <span>Union All</span>
1341
+ </button>
1342
+ <button class="op-btn" (click)="performOperation('intersection')" [disabled]="isCalculating">
1343
+ <i class="fa-solid fa-circle-notch"></i>
1344
+ <span>Intersection</span>
1345
+ </button>
1346
+ <button class="op-btn" (click)="performOperation('symmetric_difference')" [disabled]="isCalculating">
1347
+ <i class="fa-solid fa-arrows-split-up-and-left"></i>
1348
+ <span>Unique Each</span>
1349
+ </button>
1350
+ </div>
1326
1351
  </div>
1327
- </div>
1352
+ }
1328
1353
  </div>
1329
-
1354
+
1330
1355
  <!-- Center: Venn Diagram -->
1331
1356
  <div class="venn-panel">
1332
- <mj-venn-diagram
1333
- *ngIf="selectedLists.length > 0"
1334
- [data]="vennData"
1335
- [selectedRegion]="selectedRegion"
1336
- (regionClick)="onRegionClick($event)">
1337
- </mj-venn-diagram>
1338
-
1339
- <div class="venn-empty" *ngIf="selectedLists.length === 0">
1340
- <div class="empty-icon">
1341
- <i class="fa-solid fa-circle-nodes"></i>
1357
+ @if (selectedLists.length > 0) {
1358
+ <mj-venn-diagram
1359
+ [data]="vennData"
1360
+ [selectedRegion]="selectedRegion"
1361
+ (regionClick)="onRegionClick($event)">
1362
+ </mj-venn-diagram>
1363
+ }
1364
+
1365
+ @if (selectedLists.length === 0) {
1366
+ <div class="venn-empty">
1367
+ <div class="empty-icon">
1368
+ <i class="fa-solid fa-circle-nodes"></i>
1369
+ </div>
1370
+ <h3>Add Lists to Compare</h3>
1371
+ <p>Select 2-4 lists from the same entity to visualize their overlaps and perform set operations.</p>
1342
1372
  </div>
1343
- <h3>Add Lists to Compare</h3>
1344
- <p>Select 2-4 lists from the same entity to visualize their overlaps and perform set operations.</p>
1345
- </div>
1346
-
1347
- <div class="loading-overlay" *ngIf="isCalculating">
1348
- <mj-loading text="Calculating..."></mj-loading>
1349
- </div>
1373
+ }
1374
+
1375
+ @if (isCalculating) {
1376
+ <div class="loading-overlay">
1377
+ <mj-loading text="Calculating..."></mj-loading>
1378
+ </div>
1379
+ }
1350
1380
  </div>
1351
-
1381
+
1352
1382
  <!-- Right Panel: Selected Region / Results -->
1353
1383
  <div class="results-panel">
1354
1384
  <div class="panel-header">
@@ -1357,176 +1387,199 @@ export { ListsOperationsResource };
1357
1387
  {{selectedRegion ? 'Selected Region' : 'Results'}}
1358
1388
  </h3>
1359
1389
  </div>
1360
-
1390
+
1361
1391
  <!-- Selected region details -->
1362
- <div class="region-details" *ngIf="selectedRegion">
1363
- <div class="region-header">
1364
- <span class="region-label">{{selectedRegion.label}}</span>
1365
- <span class="region-count">{{selectedRegion.size}} records</span>
1366
- </div>
1367
-
1368
- <div class="region-actions">
1369
- <button class="action-btn primary" (click)="createListFromSelection()">
1370
- <i class="fa-solid fa-plus"></i>
1371
- Create New List
1372
- </button>
1373
- <button class="action-btn" (click)="addToExistingList()">
1374
- <i class="fa-solid fa-folder-plus"></i>
1375
- Add to List
1376
- </button>
1377
- <button class="action-btn" (click)="exportToExcel()">
1378
- <i class="fa-solid fa-file-excel"></i>
1379
- Export
1380
- </button>
1381
- </div>
1382
-
1383
- <div class="record-preview" *ngIf="previewRecordsDisplay.length > 0">
1384
- <h5>Preview (first 10)</h5>
1385
- <div class="preview-list">
1386
- <div class="preview-card" *ngFor="let record of previewRecordsDisplay">
1387
- <div class="preview-card-content">
1388
- <span class="preview-name">{{record.displayName}}</span>
1389
- <span class="preview-secondary" *ngIf="record.secondaryInfo">{{record.secondaryInfo}}</span>
1390
- </div>
1391
- <button class="preview-open-btn" (click)="openRecord(record)" title="Open record">
1392
- <i class="fa-solid fa-external-link-alt"></i>
1393
- </button>
1394
- </div>
1392
+ @if (selectedRegion) {
1393
+ <div class="region-details">
1394
+ <div class="region-header">
1395
+ <span class="region-label">{{selectedRegion.label}}</span>
1396
+ <span class="region-count">{{selectedRegion.size}} records</span>
1395
1397
  </div>
1396
- <div class="preview-loading" *ngIf="loadingPreview">
1397
- <mj-loading text="Loading preview..." size="small"></mj-loading>
1398
+ <div class="region-actions">
1399
+ <button class="action-btn primary" (click)="createListFromSelection()">
1400
+ <i class="fa-solid fa-plus"></i>
1401
+ Create New List
1402
+ </button>
1403
+ <button class="action-btn" (click)="addToExistingList()">
1404
+ <i class="fa-solid fa-folder-plus"></i>
1405
+ Add to List
1406
+ </button>
1407
+ <button class="action-btn" (click)="exportToExcel()">
1408
+ <i class="fa-solid fa-file-excel"></i>
1409
+ Export
1410
+ </button>
1398
1411
  </div>
1412
+ @if (previewRecordsDisplay.length > 0) {
1413
+ <div class="record-preview">
1414
+ <h5>Preview (first 10)</h5>
1415
+ <div class="preview-list">
1416
+ @for (record of previewRecordsDisplay; track record) {
1417
+ <div class="preview-card">
1418
+ <div class="preview-card-content">
1419
+ <span class="preview-name">{{record.displayName}}</span>
1420
+ @if (record.secondaryInfo) {
1421
+ <span class="preview-secondary">{{record.secondaryInfo}}</span>
1422
+ }
1423
+ </div>
1424
+ <button class="preview-open-btn" (click)="openRecord(record)" title="Open record">
1425
+ <i class="fa-solid fa-external-link-alt"></i>
1426
+ </button>
1427
+ </div>
1428
+ }
1429
+ </div>
1430
+ @if (loadingPreview) {
1431
+ <div class="preview-loading">
1432
+ <mj-loading text="Loading preview..." size="small"></mj-loading>
1433
+ </div>
1434
+ }
1435
+ </div>
1436
+ }
1399
1437
  </div>
1400
- </div>
1401
-
1438
+ }
1439
+
1402
1440
  <!-- Operation result -->
1403
- <div class="operation-result" *ngIf="lastOperationResult && !selectedRegion">
1404
- <div class="result-header">
1405
- <span class="result-operation">{{getOperationLabel(lastOperationResult.operation)}}</span>
1406
- <span class="result-count">{{lastOperationResult.resultCount}} records</span>
1407
- </div>
1408
-
1409
- <div class="region-actions">
1410
- <button class="action-btn primary" (click)="createListFromResult()">
1411
- <i class="fa-solid fa-plus"></i>
1412
- Create New List
1413
- </button>
1414
- <button class="action-btn" (click)="addResultToExistingList()">
1415
- <i class="fa-solid fa-folder-plus"></i>
1416
- Add to List
1417
- </button>
1441
+ @if (lastOperationResult && !selectedRegion) {
1442
+ <div class="operation-result">
1443
+ <div class="result-header">
1444
+ <span class="result-operation">{{getOperationLabel(lastOperationResult.operation)}}</span>
1445
+ <span class="result-count">{{lastOperationResult.resultCount}} records</span>
1446
+ </div>
1447
+ <div class="region-actions">
1448
+ <button class="action-btn primary" (click)="createListFromResult()">
1449
+ <i class="fa-solid fa-plus"></i>
1450
+ Create New List
1451
+ </button>
1452
+ <button class="action-btn" (click)="addResultToExistingList()">
1453
+ <i class="fa-solid fa-folder-plus"></i>
1454
+ Add to List
1455
+ </button>
1456
+ </div>
1418
1457
  </div>
1419
- </div>
1420
-
1458
+ }
1459
+
1421
1460
  <!-- Empty state -->
1422
- <div class="results-empty" *ngIf="!selectedRegion && !lastOperationResult">
1423
- <i class="fa-solid fa-hand-pointer"></i>
1424
- <p>Click a region in the diagram or run an operation to see results</p>
1425
- </div>
1461
+ @if (!selectedRegion && !lastOperationResult) {
1462
+ <div class="results-empty">
1463
+ <i class="fa-solid fa-hand-pointer"></i>
1464
+ <p>Click a region in the diagram or run an operation to see results</p>
1465
+ </div>
1466
+ }
1426
1467
  </div>
1427
1468
  </div>
1428
-
1469
+
1429
1470
  <!-- Create List Dialog -->
1430
- <div class="modal-overlay" *ngIf="showCreateDialog" (click)="cancelCreateDialog()"></div>
1431
- <div class="modal-dialog" *ngIf="showCreateDialog">
1432
- <div class="modal-header">
1433
- <h3>Create New List from Selection</h3>
1434
- <button class="modal-close" (click)="cancelCreateDialog()">
1435
- <i class="fa-solid fa-times"></i>
1436
- </button>
1437
- </div>
1438
- <div class="modal-body">
1439
- <div class="form-group">
1440
- <label>List Name *</label>
1441
- <input
1442
- type="text"
1443
- [(ngModel)]="newListName"
1444
- placeholder="Enter list name"
1445
- class="form-input" />
1471
+ @if (showCreateDialog) {
1472
+ <div class="modal-overlay" (click)="cancelCreateDialog()"></div>
1473
+ }
1474
+ @if (showCreateDialog) {
1475
+ <div class="modal-dialog">
1476
+ <div class="modal-header">
1477
+ <h3>Create New List from Selection</h3>
1478
+ <button class="modal-close" (click)="cancelCreateDialog()">
1479
+ <i class="fa-solid fa-times"></i>
1480
+ </button>
1446
1481
  </div>
1447
- <div class="form-group">
1448
- <label>Description</label>
1449
- <textarea
1450
- [(ngModel)]="newListDescription"
1451
- placeholder="Optional description"
1452
- class="form-input"
1482
+ <div class="modal-body">
1483
+ <div class="form-group">
1484
+ <label>List Name *</label>
1485
+ <input
1486
+ type="text"
1487
+ [(ngModel)]="newListName"
1488
+ placeholder="Enter list name"
1489
+ class="form-input" />
1490
+ </div>
1491
+ <div class="form-group">
1492
+ <label>Description</label>
1493
+ <textarea
1494
+ [(ngModel)]="newListDescription"
1495
+ placeholder="Optional description"
1496
+ class="form-input"
1453
1497
  rows="3"></textarea>
1498
+ </div>
1499
+ <div class="form-info">
1500
+ <i class="fa-solid fa-info-circle"></i>
1501
+ {{recordsToAdd.length}} record{{recordsToAdd.length !== 1 ? 's' : ''}} will be added to this list
1502
+ </div>
1454
1503
  </div>
1455
- <div class="form-info">
1456
- <i class="fa-solid fa-info-circle"></i>
1457
- {{recordsToAdd.length}} record{{recordsToAdd.length !== 1 ? 's' : ''}} will be added to this list
1504
+ <div class="modal-footer">
1505
+ <button class="btn-primary" (click)="confirmCreateList()" [disabled]="!newListName || isSaving">
1506
+ @if (isSaving) {
1507
+ <i class="fa-solid fa-spinner fa-spin"></i>
1508
+ }
1509
+ {{isSaving ? 'Creating...' : 'Create List'}}
1510
+ </button>
1511
+ <button class="btn-secondary" (click)="cancelCreateDialog()">Cancel</button>
1458
1512
  </div>
1459
1513
  </div>
1460
- <div class="modal-footer">
1461
- <button class="btn-primary" (click)="confirmCreateList()" [disabled]="!newListName || isSaving">
1462
- <i *ngIf="isSaving" class="fa-solid fa-spinner fa-spin"></i>
1463
- {{isSaving ? 'Creating...' : 'Create List'}}
1464
- </button>
1465
- <button class="btn-secondary" (click)="cancelCreateDialog()">Cancel</button>
1466
- </div>
1467
- </div>
1468
-
1514
+ }
1515
+
1469
1516
  <!-- Add to Existing List Dialog -->
1470
- <div class="modal-overlay" *ngIf="showAddToListDialog" (click)="cancelAddToListDialog()"></div>
1471
- <div class="modal-dialog add-to-list-dialog" *ngIf="showAddToListDialog">
1472
- <div class="modal-header">
1473
- <h3>Add to Existing List</h3>
1474
- <button class="modal-close" (click)="cancelAddToListDialog()">
1475
- <i class="fa-solid fa-times"></i>
1476
- </button>
1477
- </div>
1478
- <div class="modal-body">
1479
- <div class="form-info" style="margin-bottom: 16px;">
1480
- <i class="fa-solid fa-info-circle"></i>
1481
- {{recordsToAdd.length}} record{{recordsToAdd.length !== 1 ? 's' : ''}} will be added
1517
+ @if (showAddToListDialog) {
1518
+ <div class="modal-overlay" (click)="cancelAddToListDialog()"></div>
1519
+ }
1520
+ @if (showAddToListDialog) {
1521
+ <div class="modal-dialog add-to-list-dialog">
1522
+ <div class="modal-header">
1523
+ <h3>Add to Existing List</h3>
1524
+ <button class="modal-close" (click)="cancelAddToListDialog()">
1525
+ <i class="fa-solid fa-times"></i>
1526
+ </button>
1482
1527
  </div>
1483
-
1484
- <!-- Search input -->
1485
- <div class="list-search">
1486
- <i class="fa-solid fa-search"></i>
1487
- <input
1488
- type="text"
1489
- [(ngModel)]="addToListSearchTerm"
1490
- (ngModelChange)="filterAddToListOptions()"
1491
- placeholder="Search lists..."
1492
- class="form-input" />
1493
- </div>
1494
-
1495
- <!-- List options -->
1496
- <div class="list-options">
1497
- <div
1498
- class="list-option"
1499
- *ngFor="let list of filteredAddToListOptions"
1500
- [class.selected]="selectedTargetListId === list.ID"
1501
- (click)="selectTargetList(list.ID)">
1502
- <div class="list-option-radio">
1503
- <input
1504
- type="radio"
1505
- [checked]="selectedTargetListId === list.ID"
1506
- name="targetList" />
1507
- </div>
1508
- <div class="list-option-info">
1509
- <span class="list-option-name">{{list.Name}}</span>
1510
- <span class="list-option-entity">{{list.Entity}}</span>
1511
- </div>
1528
+ <div class="modal-body">
1529
+ <div class="form-info" style="margin-bottom: 16px;">
1530
+ <i class="fa-solid fa-info-circle"></i>
1531
+ {{recordsToAdd.length}} record{{recordsToAdd.length !== 1 ? 's' : ''}} will be added
1512
1532
  </div>
1513
-
1514
- <div class="list-options-empty" *ngIf="filteredAddToListOptions.length === 0">
1515
- <i class="fa-solid fa-inbox"></i>
1516
- <p>{{addToListSearchTerm ? 'No lists match your search' : 'No other lists available'}}</p>
1533
+ <!-- Search input -->
1534
+ <div class="list-search">
1535
+ <i class="fa-solid fa-search"></i>
1536
+ <input
1537
+ type="text"
1538
+ [(ngModel)]="addToListSearchTerm"
1539
+ (ngModelChange)="filterAddToListOptions()"
1540
+ placeholder="Search lists..."
1541
+ class="form-input" />
1542
+ </div>
1543
+ <!-- List options -->
1544
+ <div class="list-options">
1545
+ @for (list of filteredAddToListOptions; track list) {
1546
+ <div
1547
+ class="list-option"
1548
+ [class.selected]="selectedTargetListId === list.ID"
1549
+ (click)="selectTargetList(list.ID)">
1550
+ <div class="list-option-radio">
1551
+ <input
1552
+ type="radio"
1553
+ [checked]="selectedTargetListId === list.ID"
1554
+ name="targetList" />
1555
+ </div>
1556
+ <div class="list-option-info">
1557
+ <span class="list-option-name">{{list.Name}}</span>
1558
+ <span class="list-option-entity">{{list.Entity}}</span>
1559
+ </div>
1560
+ </div>
1561
+ }
1562
+ @if (filteredAddToListOptions.length === 0) {
1563
+ <div class="list-options-empty">
1564
+ <i class="fa-solid fa-inbox"></i>
1565
+ <p>{{addToListSearchTerm ? 'No lists match your search' : 'No other lists available'}}</p>
1566
+ </div>
1567
+ }
1517
1568
  </div>
1518
1569
  </div>
1570
+ <div class="modal-footer">
1571
+ <button class="btn-primary" (click)="confirmAddToList()" [disabled]="!selectedTargetListId || isSaving">
1572
+ @if (isSaving) {
1573
+ <i class="fa-solid fa-spinner fa-spin"></i>
1574
+ }
1575
+ {{isSaving ? 'Adding...' : 'Add to List'}}
1576
+ </button>
1577
+ <button class="btn-secondary" (click)="cancelAddToListDialog()">Cancel</button>
1578
+ </div>
1519
1579
  </div>
1520
- <div class="modal-footer">
1521
- <button class="btn-primary" (click)="confirmAddToList()" [disabled]="!selectedTargetListId || isSaving">
1522
- <i *ngIf="isSaving" class="fa-solid fa-spinner fa-spin"></i>
1523
- {{isSaving ? 'Adding...' : 'Add to List'}}
1524
- </button>
1525
- <button class="btn-secondary" (click)="cancelAddToListDialog()">Cancel</button>
1526
- </div>
1527
- </div>
1580
+ }
1528
1581
  </div>
1529
- `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .operations-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n }\n\n .operations-header {\n padding: 20px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .header-top {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .clear-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .clear-all-btn:hover {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n }\n\n .clear-all-btn i {\n font-size: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #9C27B0;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-subtitle {\n color: #666;\n font-size: 14px;\n }\n\n .operations-content {\n display: grid;\n grid-template-columns: 280px 1fr 300px;\n gap: 16px;\n flex: 1;\n padding: 16px;\n overflow: hidden;\n }\n\n /* Panels */\n .selection-panel,\n .results-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .venn-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n position: relative;\n min-height: 400px;\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .panel-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .list-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Entity Filter */\n .entity-filter-section {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .filter-label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .entity-select {\n width: 100%;\n padding: 8px 12px;\n font-size: 13px;\n border: 1px solid #ddd;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .entity-select:focus {\n border-color: #9C27B0;\n }\n\n .entity-note {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 12px;\n padding: 8px 10px;\n background: #e8f5e9;\n border-radius: 6px;\n font-size: 12px;\n color: #2e7d32;\n }\n\n .entity-note i {\n color: #4caf50;\n }\n\n /* Selected Lists */\n .selected-lists {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n }\n\n .selected-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 8px;\n }\n\n .item-color {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n flex-shrink: 0;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .item-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-entity {\n font-size: 11px;\n color: #999;\n }\n\n .remove-btn {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n }\n\n .remove-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Add list area */\n .add-list-area {\n position: relative;\n }\n\n .add-list-search {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px dashed #ddd;\n border-radius: 6px;\n transition: border-color 0.2s;\n }\n\n .add-list-search:focus-within {\n border-color: #9C27B0;\n }\n\n .add-list-search i {\n color: #999;\n }\n\n .add-list-search input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 13px;\n }\n\n .list-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 100;\n margin-top: 4px;\n }\n\n .dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .dropdown-content {\n position: relative;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n max-height: 200px;\n overflow-y: auto;\n }\n\n .dropdown-item {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .dropdown-item:hover {\n background: #f5f5f5;\n }\n\n .dropdown-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n .dropdown-entity {\n font-size: 11px;\n color: #999;\n }\n\n .lists-full {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n font-size: 12px;\n color: #999;\n background: #f8f9fa;\n border-radius: 6px;\n }\n\n .entity-warning {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin: 12px;\n padding: 10px;\n background: #fff8e1;\n border-radius: 6px;\n font-size: 12px;\n color: #856404;\n }\n\n .entity-warning i {\n color: #ffc107;\n margin-top: 2px;\n }\n\n /* Quick Operations */\n .quick-operations {\n padding: 12px;\n border-top: 1px solid #f0f0f0;\n }\n\n .quick-operations h4 {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .operation-buttons {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .op-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .op-btn:hover:not(:disabled) {\n background: #e8f4fd;\n border-color: #9C27B0;\n color: #9C27B0;\n }\n\n .op-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Venn Panel */\n .venn-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n padding: 40px;\n }\n\n .empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.1) 0%, rgba(156, 39, 176, 0.05) 100%);\n border-radius: 50%;\n margin-bottom: 20px;\n }\n\n .empty-icon i {\n font-size: 36px;\n color: #9C27B0;\n }\n\n .venn-empty h3 {\n margin: 0 0 8px;\n font-size: 18px;\n color: #333;\n }\n\n .venn-empty p {\n margin: 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n }\n\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255,255,255,0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Results Panel */\n .region-details,\n .operation-result {\n padding: 16px;\n }\n\n .region-header,\n .result-header {\n margin-bottom: 16px;\n }\n\n .region-label,\n .result-operation {\n display: block;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n }\n\n .region-count,\n .result-count {\n font-size: 13px;\n color: #9C27B0;\n font-weight: 500;\n }\n\n .region-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .action-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .action-btn:hover {\n background: #f5f5f5;\n }\n\n .action-btn.primary {\n background: #9C27B0;\n border-color: #9C27B0;\n color: white;\n }\n\n .action-btn.primary:hover {\n background: #7B1FA2;\n }\n\n .record-preview h5 {\n margin: 0 0 8px;\n font-size: 12px;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .preview-list {\n max-height: 200px;\n overflow-y: auto;\n }\n\n .preview-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 6px;\n transition: all 0.15s ease;\n }\n\n .preview-card:hover {\n background: #eef1f5;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .preview-card-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .preview-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-secondary {\n font-size: 11px;\n color: #888;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-open-btn {\n background: none;\n border: none;\n color: #9C27B0;\n cursor: pointer;\n padding: 6px 8px;\n border-radius: 4px;\n opacity: 0.6;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .preview-open-btn:hover {\n opacity: 1;\n background: rgba(156, 39, 176, 0.1);\n }\n\n .preview-loading {\n padding: 12px;\n text-align: center;\n }\n\n .results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n text-align: center;\n color: #999;\n }\n\n .results-empty i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.5;\n }\n\n .results-empty p {\n font-size: 13px;\n margin: 0;\n max-width: 200px;\n }\n\n /* Modal */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n width: 420px;\n max-width: 90vw;\n z-index: 1001;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 16px;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px 8px;\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #9C27B0;\n box-shadow: 0 0 0 3px rgba(156, 39, 176, 0.1);\n }\n\n textarea.form-input {\n resize: vertical;\n }\n\n .form-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n }\n\n .form-info i {\n color: #9C27B0;\n }\n\n .modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #9C27B0;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #7B1FA2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-secondary:hover {\n background: #f5f5f5;\n }\n\n /* Add to List Dialog */\n .add-to-list-dialog {\n width: 480px;\n }\n\n .add-to-list-dialog .modal-body {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 12px;\n }\n\n .list-search i {\n color: #999;\n flex-shrink: 0;\n }\n\n .list-search .form-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 0;\n font-size: 14px;\n }\n\n .list-search .form-input:focus {\n box-shadow: none;\n outline: none;\n }\n\n .list-options {\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n max-height: 250px;\n overflow-y: auto;\n }\n\n .list-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .list-option:last-child {\n border-bottom: none;\n }\n\n .list-option:hover {\n background: #f8f9fa;\n }\n\n .list-option.selected {\n background: #f3e5f5;\n }\n\n .list-option-radio {\n flex-shrink: 0;\n }\n\n .list-option-radio input[type=\"radio\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #9C27B0;\n }\n\n .list-option-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .list-option-name {\n font-size: 14px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-option-entity {\n font-size: 12px;\n color: #888;\n }\n\n .list-options-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n color: #999;\n }\n\n .list-options-empty i {\n font-size: 28px;\n margin-bottom: 10px;\n opacity: 0.5;\n }\n\n .list-options-empty p {\n margin: 0;\n font-size: 13px;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .operations-content {\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr auto;\n }\n\n .selection-panel {\n order: 1;\n }\n\n .venn-panel {\n order: 2;\n min-height: 300px;\n }\n\n .results-panel {\n order: 3;\n }\n }\n "] }]
1582
+ `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .operations-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n }\n\n .operations-header {\n padding: 20px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .header-top {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .clear-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .clear-all-btn:hover {\n background: #ffebee;\n border-color: #f44336;\n color: #d32f2f;\n }\n\n .clear-all-btn i {\n font-size: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #9C27B0;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-subtitle {\n color: #666;\n font-size: 14px;\n }\n\n .operations-content {\n display: grid;\n grid-template-columns: 280px 1fr 300px;\n gap: 16px;\n flex: 1;\n padding: 16px;\n overflow: hidden;\n }\n\n /* Panels */\n .selection-panel,\n .results-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .venn-panel {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n position: relative;\n min-height: 400px;\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .panel-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .list-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Entity Filter */\n .entity-filter-section {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .filter-label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .entity-select {\n width: 100%;\n padding: 8px 12px;\n font-size: 13px;\n border: 1px solid #ddd;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .entity-select:focus {\n border-color: #9C27B0;\n }\n\n .entity-note {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 12px;\n padding: 8px 10px;\n background: #e8f5e9;\n border-radius: 6px;\n font-size: 12px;\n color: #2e7d32;\n }\n\n .entity-note i {\n color: #4caf50;\n }\n\n /* Selected Lists */\n .selected-lists {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n }\n\n .selected-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 8px;\n }\n\n .item-color {\n width: 12px;\n height: 12px;\n border-radius: 3px;\n flex-shrink: 0;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n }\n\n .item-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-entity {\n font-size: 11px;\n color: #999;\n }\n\n .remove-btn {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n }\n\n .remove-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Add list area */\n .add-list-area {\n position: relative;\n }\n\n .add-list-search {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: 1px dashed #ddd;\n border-radius: 6px;\n transition: border-color 0.2s;\n }\n\n .add-list-search:focus-within {\n border-color: #9C27B0;\n }\n\n .add-list-search i {\n color: #999;\n }\n\n .add-list-search input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 13px;\n }\n\n .list-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 100;\n margin-top: 4px;\n }\n\n .dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .dropdown-content {\n position: relative;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n max-height: 200px;\n overflow-y: auto;\n }\n\n .dropdown-item {\n display: flex;\n flex-direction: column;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .dropdown-item:hover {\n background: #f5f5f5;\n }\n\n .dropdown-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n }\n\n .dropdown-entity {\n font-size: 11px;\n color: #999;\n }\n\n .lists-full {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n font-size: 12px;\n color: #999;\n background: #f8f9fa;\n border-radius: 6px;\n }\n\n .entity-warning {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin: 12px;\n padding: 10px;\n background: #fff8e1;\n border-radius: 6px;\n font-size: 12px;\n color: #856404;\n }\n\n .entity-warning i {\n color: #ffc107;\n margin-top: 2px;\n }\n\n /* Quick Operations */\n .quick-operations {\n padding: 12px;\n border-top: 1px solid #f0f0f0;\n }\n\n .quick-operations h4 {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .operation-buttons {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .op-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .op-btn:hover:not(:disabled) {\n background: #e8f4fd;\n border-color: #9C27B0;\n color: #9C27B0;\n }\n\n .op-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Venn Panel */\n .venn-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n text-align: center;\n padding: 40px;\n }\n\n .empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.1) 0%, rgba(156, 39, 176, 0.05) 100%);\n border-radius: 50%;\n margin-bottom: 20px;\n }\n\n .empty-icon i {\n font-size: 36px;\n color: #9C27B0;\n }\n\n .venn-empty h3 {\n margin: 0 0 8px;\n font-size: 18px;\n color: #333;\n }\n\n .venn-empty p {\n margin: 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n }\n\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255,255,255,0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Results Panel */\n .region-details,\n .operation-result {\n padding: 16px;\n }\n\n .region-header,\n .result-header {\n margin-bottom: 16px;\n }\n\n .region-label,\n .result-operation {\n display: block;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n }\n\n .region-count,\n .result-count {\n font-size: 13px;\n color: #9C27B0;\n font-weight: 500;\n }\n\n .region-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .action-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 13px;\n color: #333;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .action-btn:hover {\n background: #f5f5f5;\n }\n\n .action-btn.primary {\n background: #9C27B0;\n border-color: #9C27B0;\n color: white;\n }\n\n .action-btn.primary:hover {\n background: #7B1FA2;\n }\n\n .record-preview h5 {\n margin: 0 0 8px;\n font-size: 12px;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .preview-list {\n max-height: 200px;\n overflow-y: auto;\n }\n\n .preview-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n margin-bottom: 6px;\n transition: all 0.15s ease;\n }\n\n .preview-card:hover {\n background: #eef1f5;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .preview-card-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .preview-name {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-secondary {\n font-size: 11px;\n color: #888;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .preview-open-btn {\n background: none;\n border: none;\n color: #9C27B0;\n cursor: pointer;\n padding: 6px 8px;\n border-radius: 4px;\n opacity: 0.6;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .preview-open-btn:hover {\n opacity: 1;\n background: rgba(156, 39, 176, 0.1);\n }\n\n .preview-loading {\n padding: 12px;\n text-align: center;\n }\n\n .results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n text-align: center;\n color: #999;\n }\n\n .results-empty i {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.5;\n }\n\n .results-empty p {\n font-size: 13px;\n margin: 0;\n max-width: 200px;\n }\n\n /* Modal */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0,0,0,0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n width: 420px;\n max-width: 90vw;\n z-index: 1001;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 16px;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px 8px;\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #9C27B0;\n box-shadow: 0 0 0 3px rgba(156, 39, 176, 0.1);\n }\n\n textarea.form-input {\n resize: vertical;\n }\n\n .form-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px;\n background: #f8f9fa;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n }\n\n .form-info i {\n color: #9C27B0;\n }\n\n .modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #9C27B0;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #7B1FA2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n }\n\n .btn-secondary:hover {\n background: #f5f5f5;\n }\n\n /* Add to List Dialog */\n .add-to-list-dialog {\n width: 480px;\n }\n\n .add-to-list-dialog .modal-body {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-search {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 12px;\n }\n\n .list-search i {\n color: #999;\n flex-shrink: 0;\n }\n\n .list-search .form-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 0;\n font-size: 14px;\n }\n\n .list-search .form-input:focus {\n box-shadow: none;\n outline: none;\n }\n\n .list-options {\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n max-height: 250px;\n overflow-y: auto;\n }\n\n .list-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .list-option:last-child {\n border-bottom: none;\n }\n\n .list-option:hover {\n background: #f8f9fa;\n }\n\n .list-option.selected {\n background: #f3e5f5;\n }\n\n .list-option-radio {\n flex-shrink: 0;\n }\n\n .list-option-radio input[type=\"radio\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #9C27B0;\n }\n\n .list-option-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .list-option-name {\n font-size: 14px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-option-entity {\n font-size: 12px;\n color: #888;\n }\n\n .list-options-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n color: #999;\n }\n\n .list-options-empty i {\n font-size: 28px;\n margin-bottom: 10px;\n opacity: 0.5;\n }\n\n .list-options-empty p {\n margin: 0;\n font-size: 13px;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .operations-content {\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr auto;\n }\n\n .selection-panel {\n order: 1;\n }\n\n .venn-panel {\n order: 2;\n min-height: 300px;\n }\n\n .results-panel {\n order: 3;\n }\n }\n "] }]
1530
1583
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.ListSetOperationsService }, { type: i2.MJNotificationService }], null); })();
1531
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsOperationsResource, { className: "ListsOperationsResource", filePath: "src/Lists/components/lists-operations-resource.component.ts", lineNumber: 1248 }); })();
1584
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsOperationsResource, { className: "ListsOperationsResource", filePath: "src/lists/components/lists-operations-resource.component.ts", lineNumber: 1290 }); })();
1532
1585
  //# sourceMappingURL=lists-operations-resource.component.js.map