@memberjunction/ng-dashboards 3.3.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/dist/AI/ai-dashboard.component.d.ts +62 -0
  2. package/dist/AI/ai-dashboard.component.d.ts.map +1 -0
  3. package/dist/AI/ai-dashboard.component.js +338 -0
  4. package/dist/AI/ai-dashboard.component.js.map +1 -0
  5. package/dist/AI/components/agents/agent-configuration.component.d.ts +36 -5
  6. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-configuration.component.js +287 -141
  8. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  9. package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
  10. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  11. package/dist/AI/components/agents/agent-editor.component.js +149 -211
  12. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  13. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  14. package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
  15. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  16. package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
  17. package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
  18. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  19. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  20. package/dist/AI/components/charts/time-series-chart.component.js +6 -7
  21. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  22. package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
  23. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  24. package/dist/AI/components/execution-monitoring.component.js +33 -37
  25. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  26. package/dist/AI/components/models/model-management-v2.component.d.ts +96 -0
  27. package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
  28. package/dist/AI/components/models/model-management-v2.component.js +981 -0
  29. package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
  30. package/dist/AI/components/models/model-management.component.d.ts +26 -6
  31. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  32. package/dist/AI/components/models/model-management.component.js +216 -103
  33. package/dist/AI/components/models/model-management.component.js.map +1 -1
  34. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  35. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
  36. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  37. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
  38. package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
  39. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  40. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +97 -0
  41. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
  42. package/dist/AI/components/prompts/prompt-management-v2.component.js +811 -0
  43. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
  44. package/dist/AI/components/prompts/prompt-management.component.d.ts +26 -6
  45. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/prompts/prompt-management.component.js +164 -57
  47. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  49. package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
  50. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  51. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
  52. package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
  53. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  54. package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
  55. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.js +26 -27
  57. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  58. package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
  59. package/dist/AI/components/widgets/kpi-card.component.js +52 -42
  60. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  61. package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
  62. package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
  63. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  64. package/dist/APIKeys/api-applications-panel.component.d.ts +5 -5
  65. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  66. package/dist/APIKeys/api-applications-panel.component.js +242 -239
  67. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  68. package/dist/APIKeys/api-key-create-dialog.component.d.ts +4 -5
  69. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  70. package/dist/APIKeys/api-key-create-dialog.component.js +237 -217
  71. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  72. package/dist/APIKeys/api-key-edit-panel.component.d.ts +1 -3
  73. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  74. package/dist/APIKeys/api-key-edit-panel.component.js +268 -249
  75. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  76. package/dist/APIKeys/api-key-list.component.d.ts +2 -3
  77. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  78. package/dist/APIKeys/api-key-list.component.js +136 -133
  79. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  80. package/dist/APIKeys/api-keys-resource.component.d.ts +6 -6
  81. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  82. package/dist/APIKeys/api-keys-resource.component.js +335 -358
  83. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  84. package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
  85. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  86. package/dist/APIKeys/api-scopes-panel.component.js +151 -155
  87. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  88. package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
  89. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  90. package/dist/APIKeys/api-usage-panel.component.js +237 -234
  91. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  92. package/dist/Actions/actions-management-dashboard.component.d.ts +52 -0
  93. package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -0
  94. package/dist/Actions/actions-management-dashboard.component.js +308 -0
  95. package/dist/Actions/actions-management-dashboard.component.js.map +1 -0
  96. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  97. package/dist/Actions/components/actions-list-view.component.js +15 -14
  98. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  99. package/dist/Actions/components/actions-overview.component.d.ts +3 -6
  100. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  101. package/dist/Actions/components/actions-overview.component.js +17 -19
  102. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  103. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  104. package/dist/Actions/components/categories-list-view.component.js +6 -6
  105. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  106. package/dist/Actions/components/code-management.component.d.ts +0 -4
  107. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  108. package/dist/Actions/components/code-management.component.js +3 -9
  109. package/dist/Actions/components/code-management.component.js.map +1 -1
  110. package/dist/Actions/components/entity-integration.component.d.ts +0 -4
  111. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  112. package/dist/Actions/components/entity-integration.component.js +3 -9
  113. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  114. package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
  115. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  116. package/dist/Actions/components/execution-monitoring.component.js +13 -16
  117. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  118. package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
  119. package/dist/Actions/components/executions-list-view.component.js +3 -3
  120. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  121. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts +22 -0
  122. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -0
  123. package/dist/Actions/components/explorer/action-breadcrumb.component.js +139 -0
  124. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -0
  125. package/dist/Actions/components/explorer/action-card.component.d.ts +39 -0
  126. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -0
  127. package/dist/Actions/components/explorer/action-card.component.js +411 -0
  128. package/dist/Actions/components/explorer/action-card.component.js.map +1 -0
  129. package/dist/Actions/components/explorer/action-explorer.component.d.ts +58 -0
  130. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -0
  131. package/dist/Actions/components/explorer/action-explorer.component.js +523 -0
  132. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -0
  133. package/dist/Actions/components/explorer/action-list-item.component.d.ts +24 -0
  134. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -0
  135. package/dist/Actions/components/explorer/action-list-item.component.js +210 -0
  136. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -0
  137. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +63 -0
  138. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -0
  139. package/dist/Actions/components/explorer/action-toolbar.component.js +484 -0
  140. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -0
  141. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts +57 -0
  142. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -0
  143. package/dist/Actions/components/explorer/action-tree-panel.component.js +455 -0
  144. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -0
  145. package/dist/Actions/components/explorer/index.d.ts +9 -0
  146. package/dist/Actions/components/explorer/index.d.ts.map +1 -0
  147. package/dist/Actions/components/explorer/index.js +10 -0
  148. package/dist/Actions/components/explorer/index.js.map +1 -0
  149. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +49 -0
  150. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -0
  151. package/dist/Actions/components/explorer/new-action-panel.component.js +359 -0
  152. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -0
  153. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +37 -0
  154. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -0
  155. package/dist/Actions/components/explorer/new-category-panel.component.js +282 -0
  156. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -0
  157. package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
  158. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  159. package/dist/Actions/components/scheduled-actions.component.js +3 -9
  160. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  161. package/dist/Actions/components/security-permissions.component.d.ts +0 -4
  162. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  163. package/dist/Actions/components/security-permissions.component.js +3 -9
  164. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  165. package/dist/Actions/index.d.ts +2 -6
  166. package/dist/Actions/index.d.ts.map +1 -1
  167. package/dist/Actions/index.js +4 -7
  168. package/dist/Actions/index.js.map +1 -1
  169. package/dist/Actions/services/action-explorer-state.service.d.ts +104 -0
  170. package/dist/Actions/services/action-explorer-state.service.d.ts.map +1 -0
  171. package/dist/Actions/services/action-explorer-state.service.js +352 -0
  172. package/dist/Actions/services/action-explorer-state.service.js.map +1 -0
  173. package/dist/Communication/communication-dashboard.component.d.ts +2 -7
  174. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  175. package/dist/Communication/communication-dashboard.component.js +143 -107
  176. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  177. package/dist/Communication/communication-logs-resource.component.d.ts +10 -8
  178. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  179. package/dist/Communication/communication-logs-resource.component.js +270 -134
  180. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  181. package/dist/Communication/communication-monitor-resource.component.d.ts +38 -7
  182. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  183. package/dist/Communication/communication-monitor-resource.component.js +469 -186
  184. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  185. package/dist/Communication/communication-providers-resource.component.d.ts +16 -9
  186. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  187. package/dist/Communication/communication-providers-resource.component.js +262 -139
  188. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  189. package/dist/Communication/communication-runs-resource.component.d.ts +4 -6
  190. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  191. package/dist/Communication/communication-runs-resource.component.js +168 -159
  192. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  193. package/dist/Communication/communication-templates-resource.component.d.ts +39 -0
  194. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -0
  195. package/dist/Communication/communication-templates-resource.component.js +388 -0
  196. package/dist/Communication/communication-templates-resource.component.js.map +1 -0
  197. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +69 -271
  198. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  199. package/dist/ComponentStudio/component-studio-dashboard.component.js +705 -1808
  200. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  201. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +68 -0
  202. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -0
  203. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +400 -0
  204. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -0
  205. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  206. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
  207. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  208. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  209. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
  210. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  211. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts +44 -0
  212. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -0
  213. package/dist/ComponentStudio/components/browser/component-browser.component.js +638 -0
  214. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -0
  215. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts +35 -0
  216. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -0
  217. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +380 -0
  218. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -0
  219. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +24 -0
  220. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -0
  221. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +221 -0
  222. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -0
  223. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts +28 -0
  224. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -0
  225. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +263 -0
  226. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -0
  227. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts +34 -0
  228. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -0
  229. package/dist/ComponentStudio/components/editors/spec-editor.component.js +307 -0
  230. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -0
  231. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts +29 -0
  232. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -0
  233. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +159 -0
  234. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -0
  235. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts +20 -0
  236. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -0
  237. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +192 -0
  238. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -0
  239. package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
  240. package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
  241. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  242. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +57 -0
  243. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -0
  244. package/dist/ComponentStudio/components/workspace/component-preview.component.js +343 -0
  245. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -0
  246. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +15 -0
  247. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -0
  248. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +144 -0
  249. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -0
  250. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +203 -0
  251. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -0
  252. package/dist/ComponentStudio/services/component-studio-state.service.js +651 -0
  253. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -0
  254. package/dist/ComponentStudio/services/component-version.service.d.ts +120 -0
  255. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -0
  256. package/dist/ComponentStudio/services/component-version.service.js +394 -0
  257. package/dist/ComponentStudio/services/component-version.service.js.map +1 -0
  258. package/dist/Credentials/components/credential-category-edit-panel.component.js +1 -1
  259. package/dist/Credentials/components/credential-edit-panel.component.js +1 -1
  260. package/dist/Credentials/components/credential-type-edit-panel.component.js +1 -1
  261. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
  262. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  263. package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
  264. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  265. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +1 -2
  266. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  267. package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
  268. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  269. package/dist/Credentials/components/credentials-list-resource.component.d.ts +1 -2
  270. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  271. package/dist/Credentials/components/credentials-list-resource.component.js +252 -241
  272. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  273. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
  274. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  275. package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
  276. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  277. package/dist/Credentials/components/credentials-types-resource.component.d.ts +1 -2
  278. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  279. package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
  280. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  281. package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
  282. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  283. package/dist/Credentials/credentials-dashboard.component.js +31 -44
  284. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  285. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
  286. package/dist/Credentials/pipes/group-by.pipe.js +2 -1
  287. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  288. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
  289. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  290. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
  291. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  292. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  293. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
  294. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  295. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
  296. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
  297. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  298. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +2 -2
  299. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  300. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
  301. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  302. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
  303. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
  304. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
  305. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
  306. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  307. package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
  308. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  309. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +0 -4
  310. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  311. package/dist/DataExplorer/data-explorer-dashboard.component.js +49 -54
  312. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  313. package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
  314. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  315. package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
  316. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  317. package/dist/DataExplorer/index.d.ts +2 -2
  318. package/dist/DataExplorer/index.d.ts.map +1 -1
  319. package/dist/DataExplorer/index.js +2 -2
  320. package/dist/DataExplorer/index.js.map +1 -1
  321. package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
  322. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
  323. package/dist/EntityAdmin/components/entity-details.component.js +680 -0
  324. package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
  325. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
  326. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
  327. package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
  328. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
  329. package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
  330. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
  331. package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
  332. package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
  333. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
  334. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
  335. package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
  336. package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
  337. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
  338. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  339. package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
  340. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  341. package/dist/Home/home-application.d.ts +0 -5
  342. package/dist/Home/home-application.d.ts.map +1 -1
  343. package/dist/Home/home-application.js +0 -9
  344. package/dist/Home/home-application.js.map +1 -1
  345. package/dist/Home/home-dashboard.component.d.ts +0 -4
  346. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  347. package/dist/Home/home-dashboard.component.js +141 -139
  348. package/dist/Home/home-dashboard.component.js.map +1 -1
  349. package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
  350. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  351. package/dist/Lists/components/lists-browse-resource.component.js +761 -685
  352. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  353. package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
  354. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  355. package/dist/Lists/components/lists-categories-resource.component.js +340 -316
  356. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  357. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
  358. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  359. package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
  360. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  361. package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
  362. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  363. package/dist/Lists/components/lists-operations-resource.component.js +508 -455
  364. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  365. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  366. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
  367. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  368. package/dist/Lists/index.d.ts +0 -1
  369. package/dist/Lists/index.d.ts.map +1 -1
  370. package/dist/Lists/index.js +0 -11
  371. package/dist/Lists/index.js.map +1 -1
  372. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +68 -0
  373. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -0
  374. package/dist/MCP/components/mcp-connection-dialog.component.js +523 -0
  375. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -0
  376. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +73 -0
  377. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -0
  378. package/dist/MCP/components/mcp-log-detail-panel.component.js +533 -0
  379. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -0
  380. package/dist/MCP/components/mcp-server-dialog.component.d.ts +76 -0
  381. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -0
  382. package/dist/MCP/components/mcp-server-dialog.component.js +546 -0
  383. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -0
  384. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +267 -0
  385. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -0
  386. package/dist/MCP/components/mcp-test-tool-dialog.component.js +1300 -0
  387. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -0
  388. package/dist/MCP/index.d.ts +11 -0
  389. package/dist/MCP/index.d.ts.map +1 -0
  390. package/dist/MCP/index.js +15 -0
  391. package/dist/MCP/index.js.map +1 -0
  392. package/dist/MCP/mcp-dashboard.component.d.ts +467 -0
  393. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -0
  394. package/dist/MCP/mcp-dashboard.component.js +2765 -0
  395. package/dist/MCP/mcp-dashboard.component.js.map +1 -0
  396. package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
  397. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
  398. package/dist/MCP/mcp-filter-panel.component.js +288 -0
  399. package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
  400. package/dist/MCP/mcp-resource.component.d.ts +26 -0
  401. package/dist/MCP/mcp-resource.component.d.ts.map +1 -0
  402. package/dist/MCP/mcp-resource.component.js +54 -0
  403. package/dist/MCP/mcp-resource.component.js.map +1 -0
  404. package/dist/MCP/mcp.module.d.ts +24 -0
  405. package/dist/MCP/mcp.module.d.ts.map +1 -0
  406. package/dist/MCP/mcp.module.js +113 -0
  407. package/dist/MCP/mcp.module.js.map +1 -0
  408. package/dist/MCP/services/mcp-tools.service.d.ts +115 -0
  409. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -0
  410. package/dist/MCP/services/mcp-tools.service.js +221 -0
  411. package/dist/MCP/services/mcp-tools.service.js.map +1 -0
  412. package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
  413. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  414. package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
  415. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  416. package/dist/Scheduling/components/index.d.ts +5 -8
  417. package/dist/Scheduling/components/index.d.ts.map +1 -1
  418. package/dist/Scheduling/components/index.js +6 -9
  419. package/dist/Scheduling/components/index.js.map +1 -1
  420. package/dist/Scheduling/components/job-slideout.component.d.ts +45 -0
  421. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -0
  422. package/dist/Scheduling/components/job-slideout.component.js +459 -0
  423. package/dist/Scheduling/components/job-slideout.component.js.map +1 -0
  424. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +15 -0
  425. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -0
  426. package/dist/Scheduling/components/scheduling-activity-resource.component.js +45 -0
  427. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -0
  428. package/dist/Scheduling/components/scheduling-activity.component.d.ts +71 -0
  429. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -0
  430. package/dist/Scheduling/components/scheduling-activity.component.js +714 -0
  431. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -0
  432. package/dist/Scheduling/components/scheduling-health-resource.component.js +1 -1
  433. package/dist/Scheduling/components/scheduling-health.component.js +1 -1
  434. package/dist/Scheduling/components/scheduling-history-resource.component.js +1 -1
  435. package/dist/Scheduling/components/scheduling-history.component.js +1 -1
  436. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +3 -8
  437. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  438. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +5 -15
  439. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  440. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +52 -34
  441. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  442. package/dist/Scheduling/components/scheduling-jobs.component.js +452 -262
  443. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  444. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +1 -1
  445. package/dist/Scheduling/components/scheduling-monitoring.component.js +1 -1
  446. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +15 -0
  447. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -0
  448. package/dist/Scheduling/components/scheduling-overview-resource.component.js +45 -0
  449. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -0
  450. package/dist/Scheduling/components/scheduling-overview.component.d.ts +43 -0
  451. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -0
  452. package/dist/Scheduling/components/scheduling-overview.component.js +600 -0
  453. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -0
  454. package/dist/Scheduling/components/scheduling-types-resource.component.js +1 -1
  455. package/dist/Scheduling/components/scheduling-types.component.js +1 -1
  456. package/dist/Scheduling/scheduling-dashboard.component.d.ts +22 -33
  457. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  458. package/dist/Scheduling/scheduling-dashboard.component.js +173 -175
  459. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  460. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +49 -6
  461. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  462. package/dist/Scheduling/services/scheduling-instrumentation.service.js +218 -149
  463. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  464. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
  465. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  466. package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
  467. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  468. package/dist/Testing/components/index.d.ts +7 -8
  469. package/dist/Testing/components/index.d.ts.map +1 -1
  470. package/dist/Testing/components/index.js +8 -9
  471. package/dist/Testing/components/index.js.map +1 -1
  472. package/dist/Testing/components/testing-analytics-resource.component.d.ts +0 -4
  473. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  474. package/dist/Testing/components/testing-analytics-resource.component.js +3 -9
  475. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  476. package/dist/Testing/components/testing-analytics.component.d.ts +52 -37
  477. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  478. package/dist/Testing/components/testing-analytics.component.js +1024 -570
  479. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  480. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +16 -0
  481. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -0
  482. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +47 -0
  483. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -0
  484. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +57 -0
  485. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -0
  486. package/dist/Testing/components/testing-dashboard-tab.component.js +649 -0
  487. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -0
  488. package/dist/Testing/components/testing-execution-resource.component.js +1 -1
  489. package/dist/Testing/components/testing-execution.component.js +1 -1
  490. package/dist/Testing/components/testing-explorer-resource.component.d.ts +16 -0
  491. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -0
  492. package/dist/Testing/components/testing-explorer-resource.component.js +47 -0
  493. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -0
  494. package/dist/Testing/components/testing-explorer.component.d.ts +193 -0
  495. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -0
  496. package/dist/Testing/components/testing-explorer.component.js +2219 -0
  497. package/dist/Testing/components/testing-explorer.component.js.map +1 -0
  498. package/dist/Testing/components/testing-feedback-resource.component.js +1 -1
  499. package/dist/Testing/components/testing-feedback.component.js +1 -1
  500. package/dist/Testing/components/testing-overview-resource.component.js +1 -1
  501. package/dist/Testing/components/testing-overview.component.js +1 -1
  502. package/dist/Testing/components/testing-review-resource.component.d.ts +16 -0
  503. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -0
  504. package/dist/Testing/components/testing-review-resource.component.js +47 -0
  505. package/dist/Testing/components/testing-review-resource.component.js.map +1 -0
  506. package/dist/Testing/components/testing-review.component.d.ts +60 -0
  507. package/dist/Testing/components/testing-review.component.d.ts.map +1 -0
  508. package/dist/Testing/components/testing-review.component.js +985 -0
  509. package/dist/Testing/components/testing-review.component.js.map +1 -0
  510. package/dist/Testing/components/testing-runs-resource.component.d.ts +16 -0
  511. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -0
  512. package/dist/Testing/components/testing-runs-resource.component.js +47 -0
  513. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -0
  514. package/dist/Testing/components/testing-runs.component.d.ts +82 -0
  515. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -0
  516. package/dist/Testing/components/testing-runs.component.js +1067 -0
  517. package/dist/Testing/components/testing-runs.component.js.map +1 -0
  518. package/dist/Testing/components/testing-version-comparison.component.js +1 -1
  519. package/dist/Testing/components/testing-version-resource.component.js +1 -1
  520. package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
  521. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
  522. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  523. package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
  524. package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
  525. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  526. package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
  527. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
  528. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  529. package/dist/Testing/testing-dashboard.component.d.ts +12 -16
  530. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  531. package/dist/Testing/testing-dashboard.component.js +51 -72
  532. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  533. package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
  534. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
  535. package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
  536. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
  537. package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
  538. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
  539. package/dist/VersionHistory/components/graph-resource.component.js +521 -0
  540. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
  541. package/dist/VersionHistory/components/index.d.ts +5 -0
  542. package/dist/VersionHistory/components/index.d.ts.map +1 -0
  543. package/dist/VersionHistory/components/index.js +5 -0
  544. package/dist/VersionHistory/components/index.js.map +1 -0
  545. package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
  546. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
  547. package/dist/VersionHistory/components/labels-resource.component.js +968 -0
  548. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
  549. package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
  550. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
  551. package/dist/VersionHistory/components/restore-resource.component.js +472 -0
  552. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
  553. package/dist/VersionHistory/index.d.ts +2 -0
  554. package/dist/VersionHistory/index.d.ts.map +1 -0
  555. package/dist/VersionHistory/index.js +2 -0
  556. package/dist/VersionHistory/index.js.map +1 -0
  557. package/dist/generic/base-dashboard.d.ts +65 -0
  558. package/dist/generic/base-dashboard.d.ts.map +1 -0
  559. package/dist/generic/base-dashboard.js +74 -0
  560. package/dist/generic/base-dashboard.js.map +1 -0
  561. package/dist/module.d.ts +127 -104
  562. package/dist/module.d.ts.map +1 -1
  563. package/dist/module.js +221 -95
  564. package/dist/module.js.map +1 -1
  565. package/dist/public-api.d.ts +22 -19
  566. package/dist/public-api.d.ts.map +1 -1
  567. package/dist/public-api.js +28 -119
  568. package/dist/public-api.js.map +1 -1
  569. package/dist/shared/pipes/highlight-search.pipe.d.ts +17 -0
  570. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -0
  571. package/dist/shared/pipes/highlight-search.pipe.js +41 -0
  572. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -0
  573. package/dist/shared/pipes/index.d.ts +2 -0
  574. package/dist/shared/pipes/index.d.ts.map +1 -0
  575. package/dist/shared/pipes/index.js +2 -0
  576. package/dist/shared/pipes/index.js.map +1 -0
  577. package/dist/shared/shared-pipes.module.d.ts +11 -0
  578. package/dist/shared/shared-pipes.module.d.ts.map +1 -0
  579. package/dist/shared/shared-pipes.module.js +24 -0
  580. package/dist/shared/shared-pipes.module.js.map +1 -0
  581. package/package.json +65 -56
@@ -18,15 +18,15 @@ import * as i5 from "@angular/forms";
18
18
  import * as i6 from "@memberjunction/ng-shared-generic";
19
19
  const _c0 = a0 => ({ node: a0, depth: 0 });
20
20
  const _c1 = (a0, a1) => ({ node: a0, depth: a1 });
21
- function ListsBrowseResource_button_15_Template(rf, ctx) { if (rf & 1) {
21
+ function ListsBrowseResource_Conditional_15_Template(rf, ctx) { if (rf & 1) {
22
22
  const _r2 = i0.ɵɵgetCurrentView();
23
23
  i0.ɵɵelementStart(0, "button", 36);
24
- i0.ɵɵlistener("click", function ListsBrowseResource_button_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSearch()); });
24
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSearch()); });
25
25
  i0.ɵɵelement(1, "i", 37);
26
26
  i0.ɵɵelementEnd();
27
27
  } }
28
- function ListsBrowseResource_option_18_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "option", 38);
28
+ function ListsBrowseResource_For_19_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "option", 16);
30
30
  i0.ɵɵtext(1);
31
31
  i0.ɵɵelementEnd();
32
32
  } if (rf & 2) {
@@ -35,8 +35,8 @@ function ListsBrowseResource_option_18_Template(rf, ctx) { if (rf & 1) {
35
35
  i0.ɵɵadvance();
36
36
  i0.ɵɵtextInterpolate(opt_r4.name);
37
37
  } }
38
- function ListsBrowseResource_option_21_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "option", 38);
38
+ function ListsBrowseResource_For_23_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "option", 16);
40
40
  i0.ɵɵtext(1);
41
41
  i0.ɵɵelementEnd();
42
42
  } if (rf & 2) {
@@ -45,15 +45,15 @@ function ListsBrowseResource_option_21_Template(rf, ctx) { if (rf & 1) {
45
45
  i0.ɵɵadvance();
46
46
  i0.ɵɵtextInterpolate(opt_r5.name);
47
47
  } }
48
- function ListsBrowseResource_div_29_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵelementStart(0, "div", 39);
50
- i0.ɵɵelement(1, "mj-loading", 40);
48
+ function ListsBrowseResource_Conditional_31_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "div", 25);
50
+ i0.ɵɵelement(1, "mj-loading", 38);
51
51
  i0.ɵɵelementEnd();
52
52
  } }
53
- function ListsBrowseResource_div_30_Template(rf, ctx) { if (rf & 1) {
53
+ function ListsBrowseResource_Conditional_32_Template(rf, ctx) { if (rf & 1) {
54
54
  const _r6 = i0.ɵɵgetCurrentView();
55
- i0.ɵɵelementStart(0, "div", 41)(1, "div", 42);
56
- i0.ɵɵelement(2, "div", 43)(3, "i", 6);
55
+ i0.ɵɵelementStart(0, "div", 26)(1, "div", 39);
56
+ i0.ɵɵelement(2, "div", 40)(3, "i", 6);
57
57
  i0.ɵɵelementEnd();
58
58
  i0.ɵɵelementStart(4, "h3");
59
59
  i0.ɵɵtext(5, "No Lists Yet");
@@ -61,31 +61,31 @@ function ListsBrowseResource_div_30_Template(rf, ctx) { if (rf & 1) {
61
61
  i0.ɵɵelementStart(6, "p");
62
62
  i0.ɵɵtext(7, "Lists help you organize and track groups of records across your data.");
63
63
  i0.ɵɵelementEnd();
64
- i0.ɵɵelementStart(8, "div", 44)(9, "div", 45);
65
- i0.ɵɵelement(10, "i", 46);
64
+ i0.ɵɵelementStart(8, "div", 41)(9, "div", 42);
65
+ i0.ɵɵelement(10, "i", 43);
66
66
  i0.ɵɵelementStart(11, "span");
67
67
  i0.ɵɵtext(12, "Group records from any entity");
68
68
  i0.ɵɵelementEnd()();
69
- i0.ɵɵelementStart(13, "div", 45);
70
- i0.ɵɵelement(14, "i", 46);
69
+ i0.ɵɵelementStart(13, "div", 42);
70
+ i0.ɵɵelement(14, "i", 43);
71
71
  i0.ɵɵelementStart(15, "span");
72
72
  i0.ɵɵtext(16, "Organize with categories");
73
73
  i0.ɵɵelementEnd()();
74
- i0.ɵɵelementStart(17, "div", 45);
75
- i0.ɵɵelement(18, "i", 46);
74
+ i0.ɵɵelementStart(17, "div", 42);
75
+ i0.ɵɵelement(18, "i", 43);
76
76
  i0.ɵɵelementStart(19, "span");
77
77
  i0.ɵɵtext(20, "Quick access from any view");
78
78
  i0.ɵɵelementEnd()()();
79
- i0.ɵɵelementStart(21, "button", 47);
80
- i0.ɵɵlistener("click", function ListsBrowseResource_div_30_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createNewList()); });
79
+ i0.ɵɵelementStart(21, "button", 44);
80
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_32_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createNewList()); });
81
81
  i0.ɵɵelement(22, "i", 8);
82
82
  i0.ɵɵtext(23, " Create Your First List ");
83
83
  i0.ɵɵelementEnd()();
84
84
  } }
85
- function ListsBrowseResource_div_31_Template(rf, ctx) { if (rf & 1) {
85
+ function ListsBrowseResource_Conditional_33_Template(rf, ctx) { if (rf & 1) {
86
86
  const _r7 = i0.ɵɵgetCurrentView();
87
- i0.ɵɵelementStart(0, "div", 48)(1, "div", 49);
88
- i0.ɵɵelement(2, "i", 50);
87
+ i0.ɵɵelementStart(0, "div", 27)(1, "div", 45);
88
+ i0.ɵɵelement(2, "i", 46);
89
89
  i0.ɵɵelementEnd();
90
90
  i0.ɵɵelementStart(3, "h3");
91
91
  i0.ɵɵtext(4, "No Results Found");
@@ -93,16 +93,16 @@ function ListsBrowseResource_div_31_Template(rf, ctx) { if (rf & 1) {
93
93
  i0.ɵɵelementStart(5, "p");
94
94
  i0.ɵɵtext(6, "No lists match your current filters.");
95
95
  i0.ɵɵelementEnd();
96
- i0.ɵɵelementStart(7, "p", 51);
96
+ i0.ɵɵelementStart(7, "p", 47);
97
97
  i0.ɵɵtext(8, "Try adjusting your search or filters.");
98
98
  i0.ɵɵelementEnd();
99
- i0.ɵɵelementStart(9, "button", 52);
100
- i0.ɵɵlistener("click", function ListsBrowseResource_div_31_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearFilters()); });
99
+ i0.ɵɵelementStart(9, "button", 48);
100
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_33_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearFilters()); });
101
101
  i0.ɵɵtext(10, "Clear All Filters");
102
102
  i0.ɵɵelementEnd()();
103
103
  } }
104
- function ListsBrowseResource_div_32_option_8_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵelementStart(0, "option", 38);
104
+ function ListsBrowseResource_Conditional_34_For_9_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "option", 16);
106
106
  i0.ɵɵtext(1);
107
107
  i0.ɵɵelementEnd();
108
108
  } if (rf & 2) {
@@ -111,8 +111,8 @@ function ListsBrowseResource_div_32_option_8_Template(rf, ctx) { if (rf & 1) {
111
111
  i0.ɵɵadvance();
112
112
  i0.ɵɵtextInterpolate(opt_r9.name);
113
113
  } }
114
- function ListsBrowseResource_div_32_div_9_tr_20_span_8_Template(rf, ctx) { if (rf & 1) {
115
- i0.ɵɵelementStart(0, "span", 90);
114
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_8_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "span", 72);
116
116
  i0.ɵɵtext(1);
117
117
  i0.ɵɵelementEnd();
118
118
  } if (rf & 2) {
@@ -120,76 +120,76 @@ function ListsBrowseResource_div_32_div_9_tr_20_span_8_Template(rf, ctx) { if (r
120
120
  i0.ɵɵadvance();
121
121
  i0.ɵɵtextInterpolate(item_r11.list.Description);
122
122
  } }
123
- function ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_span_1_Template(rf, ctx) { if (rf & 1) {
124
- i0.ɵɵelementStart(0, "span", 92);
125
- i0.ɵɵelement(1, "i", 93);
126
- i0.ɵɵelementStart(2, "span", 94);
123
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
124
+ i0.ɵɵelementStart(0, "span", 83);
125
+ i0.ɵɵelement(1, "i", 84);
126
+ i0.ɵɵelementStart(2, "span", 85);
127
127
  i0.ɵɵtext(3);
128
128
  i0.ɵɵelementEnd()();
129
129
  } if (rf & 2) {
130
- const sharing_r12 = i0.ɵɵnextContext().ngIf;
130
+ const sharing_r12 = i0.ɵɵnextContext();
131
131
  i0.ɵɵadvance(3);
132
132
  i0.ɵɵtextInterpolate(sharing_r12.totalShares);
133
133
  } }
134
- function ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_span_2_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "span", 95);
136
- i0.ɵɵelement(1, "i", 96);
134
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
135
+ i0.ɵɵelementStart(0, "span", 77);
136
+ i0.ɵɵelement(1, "i", 86);
137
137
  i0.ɵɵelementEnd();
138
138
  } }
139
- function ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_Template(rf, ctx) { if (rf & 1) {
140
- i0.ɵɵelementContainerStart(0);
141
- i0.ɵɵtemplate(1, ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_span_1_Template, 4, 1, "span", 91)(2, ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_span_2_Template, 2, 0, "span", 84);
142
- i0.ɵɵelementContainerEnd();
139
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Template(rf, ctx) { if (rf & 1) {
140
+ i0.ɵɵconditionalCreate(0, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Conditional_0_Template, 4, 1, "span", 83);
141
+ i0.ɵɵconditionalCreate(1, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Conditional_1_Template, 2, 0, "span", 77);
143
142
  } if (rf & 2) {
144
- const sharing_r12 = ctx.ngIf;
143
+ const sharing_r12 = ctx;
144
+ i0.ɵɵconditional(sharing_r12.totalShares > 0 ? 0 : -1);
145
145
  i0.ɵɵadvance();
146
- i0.ɵɵproperty("ngIf", sharing_r12.totalShares > 0);
147
- i0.ɵɵadvance();
148
- i0.ɵɵproperty("ngIf", sharing_r12.totalShares === 0);
146
+ i0.ɵɵconditional(sharing_r12.totalShares === 0 ? 1 : -1);
149
147
  } }
150
- function ListsBrowseResource_div_32_div_9_tr_20_span_16_Template(rf, ctx) { if (rf & 1) {
151
- i0.ɵɵelementStart(0, "span", 95);
152
- i0.ɵɵelement(1, "i", 96);
148
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_16_Template(rf, ctx) { if (rf & 1) {
149
+ i0.ɵɵelementStart(0, "span", 77);
150
+ i0.ɵɵelement(1, "i", 86);
153
151
  i0.ɵɵelementEnd();
154
152
  } }
155
- function ListsBrowseResource_div_32_div_9_tr_20_button_23_Template(rf, ctx) { if (rf & 1) {
153
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_23_Template(rf, ctx) { if (rf & 1) {
156
154
  const _r13 = i0.ɵɵgetCurrentView();
157
- i0.ɵɵelementStart(0, "button", 97);
158
- i0.ɵɵlistener("click", function ListsBrowseResource_div_32_div_9_tr_20_button_23_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const item_r11 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r11)); });
159
- i0.ɵɵelement(1, "i", 98);
155
+ i0.ɵɵelementStart(0, "button", 87);
156
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_23_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const item_r11 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r11)); });
157
+ i0.ɵɵelement(1, "i", 88);
160
158
  i0.ɵɵelementEnd();
161
159
  } }
162
- function ListsBrowseResource_div_32_div_9_tr_20_Template(rf, ctx) { if (rf & 1) {
160
+ function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Template(rf, ctx) { if (rf & 1) {
163
161
  const _r10 = i0.ɵɵgetCurrentView();
164
- i0.ɵɵelementStart(0, "tr", 72);
165
- i0.ɵɵlistener("click", function ListsBrowseResource_div_32_div_9_tr_20_Template_tr_click_0_listener() { const item_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r11)); })("keydown.enter", function ListsBrowseResource_div_32_div_9_tr_20_Template_tr_keydown_enter_0_listener() { const item_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r11)); });
166
- i0.ɵɵelementStart(1, "td", 73)(2, "div", 74)(3, "div", 75);
162
+ i0.ɵɵelementStart(0, "tr", 66);
163
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Template_tr_click_0_listener() { const item_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r11)); })("keydown.enter", function ListsBrowseResource_Conditional_34_Conditional_10_For_21_Template_tr_keydown_enter_0_listener() { const item_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r11)); });
164
+ i0.ɵɵelementStart(1, "td", 67)(2, "div", 68)(3, "div", 69);
167
165
  i0.ɵɵelement(4, "i");
168
166
  i0.ɵɵelementEnd();
169
- i0.ɵɵelementStart(5, "div", 76)(6, "span", 77);
167
+ i0.ɵɵelementStart(5, "div", 70)(6, "span", 71);
170
168
  i0.ɵɵtext(7);
171
169
  i0.ɵɵelementEnd();
172
- i0.ɵɵtemplate(8, ListsBrowseResource_div_32_div_9_tr_20_span_8_Template, 2, 1, "span", 78);
170
+ i0.ɵɵconditionalCreate(8, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_8_Template, 2, 1, "span", 72);
173
171
  i0.ɵɵelementEnd()()();
174
- i0.ɵɵelementStart(9, "td", 79)(10, "span", 80);
172
+ i0.ɵɵelementStart(9, "td", 73)(10, "span", 74);
175
173
  i0.ɵɵtext(11);
176
174
  i0.ɵɵelementEnd()();
177
- i0.ɵɵelementStart(12, "td", 81);
175
+ i0.ɵɵelementStart(12, "td", 75);
178
176
  i0.ɵɵtext(13);
179
177
  i0.ɵɵelementEnd();
180
- i0.ɵɵelementStart(14, "td", 82);
181
- i0.ɵɵtemplate(15, ListsBrowseResource_div_32_div_9_tr_20_ng_container_15_Template, 3, 2, "ng-container", 83)(16, ListsBrowseResource_div_32_div_9_tr_20_span_16_Template, 2, 0, "span", 84);
178
+ i0.ɵɵelementStart(14, "td", 76);
179
+ i0.ɵɵconditionalCreate(15, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_15_Template, 2, 2);
180
+ i0.ɵɵconditionalCreate(16, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_16_Template, 2, 0, "span", 77);
182
181
  i0.ɵɵelementEnd();
183
- i0.ɵɵelementStart(17, "td", 85)(18, "span", 86);
182
+ i0.ɵɵelementStart(17, "td", 78)(18, "span", 79);
184
183
  i0.ɵɵtext(19);
185
184
  i0.ɵɵelementEnd()();
186
- i0.ɵɵelementStart(20, "td", 87);
185
+ i0.ɵɵelementStart(20, "td", 80);
187
186
  i0.ɵɵtext(21);
188
187
  i0.ɵɵelementEnd();
189
- i0.ɵɵelementStart(22, "td", 88);
190
- i0.ɵɵtemplate(23, ListsBrowseResource_div_32_div_9_tr_20_button_23_Template, 2, 0, "button", 89);
188
+ i0.ɵɵelementStart(22, "td", 81);
189
+ i0.ɵɵconditionalCreate(23, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Conditional_23_Template, 2, 0, "button", 82);
191
190
  i0.ɵɵelementEnd()();
192
191
  } if (rf & 2) {
192
+ let tmp_19_0;
193
193
  const item_r11 = ctx.$implicit;
194
194
  const ctx_r2 = i0.ɵɵnextContext(3);
195
195
  i0.ɵɵadvance(3);
@@ -199,15 +199,15 @@ function ListsBrowseResource_div_32_div_9_tr_20_Template(rf, ctx) { if (rf & 1)
199
199
  i0.ɵɵadvance(3);
200
200
  i0.ɵɵtextInterpolate(item_r11.list.Name);
201
201
  i0.ɵɵadvance();
202
- i0.ɵɵproperty("ngIf", item_r11.list.Description);
202
+ i0.ɵɵconditional(item_r11.list.Description ? 8 : -1);
203
203
  i0.ɵɵadvance(3);
204
204
  i0.ɵɵtextInterpolate(item_r11.entityName);
205
205
  i0.ɵɵadvance(2);
206
206
  i0.ɵɵtextInterpolate(item_r11.itemCount);
207
207
  i0.ɵɵadvance(2);
208
- i0.ɵɵproperty("ngIf", item_r11.sharingInfo);
208
+ i0.ɵɵconditional((tmp_19_0 = item_r11.sharingInfo) ? 15 : -1, tmp_19_0);
209
209
  i0.ɵɵadvance();
210
- i0.ɵɵproperty("ngIf", !item_r11.sharingInfo);
210
+ i0.ɵɵconditional(!item_r11.sharingInfo ? 16 : -1);
211
211
  i0.ɵɵadvance(2);
212
212
  i0.ɵɵclassProp("is-me", item_r11.isOwner);
213
213
  i0.ɵɵadvance();
@@ -215,47 +215,47 @@ function ListsBrowseResource_div_32_div_9_tr_20_Template(rf, ctx) { if (rf & 1)
215
215
  i0.ɵɵadvance(2);
216
216
  i0.ɵɵtextInterpolate(ctx_r2.formatDate(item_r11.list.__mj_UpdatedAt));
217
217
  i0.ɵɵadvance(2);
218
- i0.ɵɵproperty("ngIf", item_r11.isOwner);
218
+ i0.ɵɵconditional(item_r11.isOwner ? 23 : -1);
219
219
  } }
220
- function ListsBrowseResource_div_32_div_9_Template(rf, ctx) { if (rf & 1) {
221
- i0.ɵɵelementStart(0, "div", 61)(1, "table", 62)(2, "thead")(3, "tr")(4, "th", 63);
220
+ function ListsBrowseResource_Conditional_34_Conditional_10_Template(rf, ctx) { if (rf & 1) {
221
+ i0.ɵɵelementStart(0, "div", 53)(1, "table", 56)(2, "thead")(3, "tr")(4, "th", 57);
222
222
  i0.ɵɵtext(5, "Name");
223
223
  i0.ɵɵelementEnd();
224
- i0.ɵɵelementStart(6, "th", 64);
224
+ i0.ɵɵelementStart(6, "th", 58);
225
225
  i0.ɵɵtext(7, "Entity");
226
226
  i0.ɵɵelementEnd();
227
- i0.ɵɵelementStart(8, "th", 65);
227
+ i0.ɵɵelementStart(8, "th", 59);
228
228
  i0.ɵɵtext(9, "Items");
229
229
  i0.ɵɵelementEnd();
230
- i0.ɵɵelementStart(10, "th", 66);
230
+ i0.ɵɵelementStart(10, "th", 60);
231
231
  i0.ɵɵtext(11, "Shared");
232
232
  i0.ɵɵelementEnd();
233
- i0.ɵɵelementStart(12, "th", 67);
233
+ i0.ɵɵelementStart(12, "th", 61);
234
234
  i0.ɵɵtext(13, "Owner");
235
235
  i0.ɵɵelementEnd();
236
- i0.ɵɵelementStart(14, "th", 68);
236
+ i0.ɵɵelementStart(14, "th", 62);
237
237
  i0.ɵɵtext(15, "Updated");
238
238
  i0.ɵɵelementEnd();
239
- i0.ɵɵelementStart(16, "th", 69)(17, "span", 70);
239
+ i0.ɵɵelementStart(16, "th", 63)(17, "span", 64);
240
240
  i0.ɵɵtext(18, "Actions");
241
241
  i0.ɵɵelementEnd()()()();
242
242
  i0.ɵɵelementStart(19, "tbody");
243
- i0.ɵɵtemplate(20, ListsBrowseResource_div_32_div_9_tr_20_Template, 24, 15, "tr", 71);
243
+ i0.ɵɵrepeaterCreate(20, ListsBrowseResource_Conditional_34_Conditional_10_For_21_Template, 24, 15, "tr", 65, i0.ɵɵrepeaterTrackByIdentity);
244
244
  i0.ɵɵelementEnd()()();
245
245
  } if (rf & 2) {
246
246
  const ctx_r2 = i0.ɵɵnextContext(2);
247
247
  i0.ɵɵadvance(20);
248
- i0.ɵɵproperty("ngForOf", ctx_r2.filteredLists);
248
+ i0.ɵɵrepeater(ctx_r2.filteredLists);
249
249
  } }
250
- function ListsBrowseResource_div_32_div_10_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
250
+ function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
251
251
  const _r16 = i0.ɵɵgetCurrentView();
252
- i0.ɵɵelementStart(0, "div", 117)(1, "button", 118);
253
- i0.ɵɵlistener("click", function ListsBrowseResource_div_32_div_10_div_1_div_4_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r16); const item_r15 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r15)); });
254
- i0.ɵɵelement(2, "i", 98);
252
+ i0.ɵɵelementStart(0, "div", 93)(1, "button", 106);
253
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_4_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r16); const item_r15 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r15)); });
254
+ i0.ɵɵelement(2, "i", 88);
255
255
  i0.ɵɵelementEnd()();
256
256
  } }
257
- function ListsBrowseResource_div_32_div_10_div_1_p_8_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelementStart(0, "p", 119);
257
+ function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
258
+ i0.ɵɵelementStart(0, "p", 96);
259
259
  i0.ɵɵtext(1);
260
260
  i0.ɵɵelementEnd();
261
261
  } if (rf & 2) {
@@ -263,54 +263,51 @@ function ListsBrowseResource_div_32_div_10_div_1_p_8_Template(rf, ctx) { if (rf
263
263
  i0.ɵɵadvance();
264
264
  i0.ɵɵtextInterpolate(item_r15.list.Description);
265
265
  } }
266
- function ListsBrowseResource_div_32_div_10_div_1_ng_container_21_span_1_Template(rf, ctx) { if (rf & 1) {
267
- i0.ɵɵelementStart(0, "span", 121);
268
- i0.ɵɵelement(1, "i", 93);
266
+ function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
267
+ i0.ɵɵelementStart(0, "span", 107);
268
+ i0.ɵɵelement(1, "i", 84);
269
269
  i0.ɵɵelementEnd();
270
270
  } if (rf & 2) {
271
- const sharing_r17 = i0.ɵɵnextContext().ngIf;
271
+ const sharing_r17 = i0.ɵɵnextContext();
272
272
  i0.ɵɵproperty("title", "Shared with " + sharing_r17.totalShares + " user(s)/role(s)");
273
273
  } }
274
- function ListsBrowseResource_div_32_div_10_div_1_ng_container_21_Template(rf, ctx) { if (rf & 1) {
275
- i0.ɵɵelementContainerStart(0);
276
- i0.ɵɵtemplate(1, ListsBrowseResource_div_32_div_10_div_1_ng_container_21_span_1_Template, 2, 1, "span", 120);
277
- i0.ɵɵelementContainerEnd();
274
+ function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
275
+ i0.ɵɵconditionalCreate(0, ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_21_Conditional_0_Template, 2, 1, "span", 107);
278
276
  } if (rf & 2) {
279
- const sharing_r17 = ctx.ngIf;
280
- i0.ɵɵadvance();
281
- i0.ɵɵproperty("ngIf", sharing_r17.totalShares > 0);
277
+ i0.ɵɵconditional(ctx.totalShares > 0 ? 0 : -1);
282
278
  } }
283
- function ListsBrowseResource_div_32_div_10_div_1_Template(rf, ctx) { if (rf & 1) {
279
+ function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
284
280
  const _r14 = i0.ɵɵgetCurrentView();
285
- i0.ɵɵelementStart(0, "div", 101);
286
- i0.ɵɵlistener("click", function ListsBrowseResource_div_32_div_10_div_1_Template_div_click_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15)); })("keydown.enter", function ListsBrowseResource_div_32_div_10_div_1_Template_div_keydown_enter_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15)); });
287
- i0.ɵɵelementStart(1, "div", 102)(2, "div", 103);
281
+ i0.ɵɵelementStart(0, "div", 90);
282
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Template_div_click_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15)); })("keydown.enter", function ListsBrowseResource_Conditional_34_Conditional_11_For_2_Template_div_keydown_enter_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15)); });
283
+ i0.ɵɵelementStart(1, "div", 91)(2, "div", 92);
288
284
  i0.ɵɵelement(3, "i");
289
285
  i0.ɵɵelementEnd();
290
- i0.ɵɵtemplate(4, ListsBrowseResource_div_32_div_10_div_1_div_4_Template, 3, 0, "div", 104);
286
+ i0.ɵɵconditionalCreate(4, ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_4_Template, 3, 0, "div", 93);
291
287
  i0.ɵɵelementEnd();
292
- i0.ɵɵelementStart(5, "div", 105)(6, "h3", 106);
288
+ i0.ɵɵelementStart(5, "div", 94)(6, "h3", 95);
293
289
  i0.ɵɵtext(7);
294
290
  i0.ɵɵelementEnd();
295
- i0.ɵɵtemplate(8, ListsBrowseResource_div_32_div_10_div_1_p_8_Template, 2, 1, "p", 107);
296
- i0.ɵɵelementStart(9, "div", 108)(10, "span", 109);
297
- i0.ɵɵelement(11, "i", 110);
291
+ i0.ɵɵconditionalCreate(8, ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_8_Template, 2, 1, "p", 96);
292
+ i0.ɵɵelementStart(9, "div", 97)(10, "span", 98);
293
+ i0.ɵɵelement(11, "i", 99);
298
294
  i0.ɵɵtext(12);
299
295
  i0.ɵɵelementEnd();
300
- i0.ɵɵelementStart(13, "span", 109);
301
- i0.ɵɵelement(14, "i", 111);
296
+ i0.ɵɵelementStart(13, "span", 98);
297
+ i0.ɵɵelement(14, "i", 100);
302
298
  i0.ɵɵtext(15);
303
299
  i0.ɵɵelementEnd()()();
304
- i0.ɵɵelementStart(16, "div", 112)(17, "span", 113);
305
- i0.ɵɵelement(18, "i", 114);
300
+ i0.ɵɵelementStart(16, "div", 101)(17, "span", 102);
301
+ i0.ɵɵelement(18, "i", 103);
306
302
  i0.ɵɵtext(19);
307
303
  i0.ɵɵelementEnd();
308
- i0.ɵɵelementStart(20, "div", 115);
309
- i0.ɵɵtemplate(21, ListsBrowseResource_div_32_div_10_div_1_ng_container_21_Template, 2, 1, "ng-container", 83);
310
- i0.ɵɵelementStart(22, "span", 116);
304
+ i0.ɵɵelementStart(20, "div", 104);
305
+ i0.ɵɵconditionalCreate(21, ListsBrowseResource_Conditional_34_Conditional_11_For_2_Conditional_21_Template, 1, 1);
306
+ i0.ɵɵelementStart(22, "span", 105);
311
307
  i0.ɵɵtext(23);
312
308
  i0.ɵɵelementEnd()()()();
313
309
  } if (rf & 2) {
310
+ let tmp_22_0;
314
311
  const item_r15 = ctx.$implicit;
315
312
  const ctx_r2 = i0.ɵɵnextContext(3);
316
313
  i0.ɵɵadvance(2);
@@ -318,11 +315,11 @@ function ListsBrowseResource_div_32_div_10_div_1_Template(rf, ctx) { if (rf & 1)
318
315
  i0.ɵɵadvance();
319
316
  i0.ɵɵclassMap(ctx_r2.getEntityIcon(item_r15.entityName));
320
317
  i0.ɵɵadvance();
321
- i0.ɵɵproperty("ngIf", item_r15.isOwner);
318
+ i0.ɵɵconditional(item_r15.isOwner ? 4 : -1);
322
319
  i0.ɵɵadvance(3);
323
320
  i0.ɵɵtextInterpolate(item_r15.list.Name);
324
321
  i0.ɵɵadvance();
325
- i0.ɵɵproperty("ngIf", item_r15.list.Description);
322
+ i0.ɵɵconditional(item_r15.list.Description ? 8 : -1);
326
323
  i0.ɵɵadvance(4);
327
324
  i0.ɵɵtextInterpolate1(" ", item_r15.entityName, " ");
328
325
  i0.ɵɵadvance(3);
@@ -332,81 +329,80 @@ function ListsBrowseResource_div_32_div_10_div_1_Template(rf, ctx) { if (rf & 1)
332
329
  i0.ɵɵadvance(2);
333
330
  i0.ɵɵtextInterpolate1(" ", item_r15.isOwner ? "You" : item_r15.ownerName, " ");
334
331
  i0.ɵɵadvance(2);
335
- i0.ɵɵproperty("ngIf", item_r15.sharingInfo);
332
+ i0.ɵɵconditional((tmp_22_0 = item_r15.sharingInfo) ? 21 : -1, tmp_22_0);
336
333
  i0.ɵɵadvance(2);
337
334
  i0.ɵɵtextInterpolate(ctx_r2.formatDate(item_r15.list.__mj_UpdatedAt));
338
335
  } }
339
- function ListsBrowseResource_div_32_div_10_Template(rf, ctx) { if (rf & 1) {
340
- i0.ɵɵelementStart(0, "div", 99);
341
- i0.ɵɵtemplate(1, ListsBrowseResource_div_32_div_10_div_1_Template, 24, 15, "div", 100);
336
+ function ListsBrowseResource_Conditional_34_Conditional_11_Template(rf, ctx) { if (rf & 1) {
337
+ i0.ɵɵelementStart(0, "div", 54);
338
+ i0.ɵɵrepeaterCreate(1, ListsBrowseResource_Conditional_34_Conditional_11_For_2_Template, 24, 15, "div", 89, i0.ɵɵrepeaterTrackByIdentity);
342
339
  i0.ɵɵelementEnd();
343
340
  } if (rf & 2) {
344
341
  const ctx_r2 = i0.ɵɵnextContext(2);
345
342
  i0.ɵɵadvance();
346
- i0.ɵɵproperty("ngForOf", ctx_r2.filteredLists);
343
+ i0.ɵɵrepeater(ctx_r2.filteredLists);
347
344
  } }
348
- function ListsBrowseResource_div_32_div_11_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
345
+ function ListsBrowseResource_Conditional_34_Conditional_12_For_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
349
346
  i0.ɵɵelementContainer(0);
350
347
  } }
351
- function ListsBrowseResource_div_32_div_11_ng_container_1_Template(rf, ctx) { if (rf & 1) {
352
- i0.ɵɵelementContainerStart(0);
353
- i0.ɵɵtemplate(1, ListsBrowseResource_div_32_div_11_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 124);
354
- i0.ɵɵelementContainerEnd();
348
+ function ListsBrowseResource_Conditional_34_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
349
+ i0.ɵɵtemplate(0, ListsBrowseResource_Conditional_34_Conditional_12_For_2_ng_container_0_Template, 1, 0, "ng-container", 108);
355
350
  } if (rf & 2) {
356
351
  const node_r18 = ctx.$implicit;
357
352
  i0.ɵɵnextContext(3);
358
- const categoryNodeTemplate_r19 = i0.ɵɵreference(34);
359
- i0.ɵɵadvance();
353
+ const categoryNodeTemplate_r19 = i0.ɵɵreference(36);
360
354
  i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTemplate_r19)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r18));
361
355
  } }
362
- function ListsBrowseResource_div_32_div_11_Template(rf, ctx) { if (rf & 1) {
363
- i0.ɵɵelementStart(0, "div", 122);
364
- i0.ɵɵtemplate(1, ListsBrowseResource_div_32_div_11_ng_container_1_Template, 2, 4, "ng-container", 123);
356
+ function ListsBrowseResource_Conditional_34_Conditional_12_Template(rf, ctx) { if (rf & 1) {
357
+ i0.ɵɵelementStart(0, "div", 55);
358
+ i0.ɵɵrepeaterCreate(1, ListsBrowseResource_Conditional_34_Conditional_12_For_2_Template, 1, 4, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
365
359
  i0.ɵɵelementEnd();
366
360
  } if (rf & 2) {
367
361
  const ctx_r2 = i0.ɵɵnextContext(2);
368
362
  i0.ɵɵadvance();
369
- i0.ɵɵproperty("ngForOf", ctx_r2.categoryTree);
363
+ i0.ɵɵrepeater(ctx_r2.categoryTree);
370
364
  } }
371
- function ListsBrowseResource_div_32_Template(rf, ctx) { if (rf & 1) {
365
+ function ListsBrowseResource_Conditional_34_Template(rf, ctx) { if (rf & 1) {
372
366
  const _r8 = i0.ɵɵgetCurrentView();
373
- i0.ɵɵelementStart(0, "div", 53)(1, "div", 54)(2, "span", 55);
367
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 49)(2, "span", 50);
374
368
  i0.ɵɵtext(3);
375
369
  i0.ɵɵelementEnd();
376
- i0.ɵɵelementStart(4, "div", 56)(5, "label");
370
+ i0.ɵɵelementStart(4, "div", 51)(5, "label");
377
371
  i0.ɵɵtext(6, "Sort:");
378
372
  i0.ɵɵelementEnd();
379
- i0.ɵɵelementStart(7, "select", 57);
380
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_div_32_Template_select_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedSort, $event) || (ctx_r2.selectedSort = $event); return i0.ɵɵresetView($event); });
381
- i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_div_32_Template_select_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSortChange($event)); });
382
- i0.ɵɵtemplate(8, ListsBrowseResource_div_32_option_8_Template, 2, 2, "option", 16);
373
+ i0.ɵɵelementStart(7, "select", 52);
374
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Conditional_34_Template_select_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedSort, $event) || (ctx_r2.selectedSort = $event); return i0.ɵɵresetView($event); });
375
+ i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Conditional_34_Template_select_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSortChange($event)); });
376
+ i0.ɵɵrepeaterCreate(8, ListsBrowseResource_Conditional_34_For_9_Template, 2, 2, "option", 16, i0.ɵɵrepeaterTrackByIdentity);
383
377
  i0.ɵɵelementEnd()()();
384
- i0.ɵɵtemplate(9, ListsBrowseResource_div_32_div_9_Template, 21, 1, "div", 58)(10, ListsBrowseResource_div_32_div_10_Template, 2, 1, "div", 59)(11, ListsBrowseResource_div_32_div_11_Template, 2, 1, "div", 60);
378
+ i0.ɵɵconditionalCreate(10, ListsBrowseResource_Conditional_34_Conditional_10_Template, 22, 0, "div", 53);
379
+ i0.ɵɵconditionalCreate(11, ListsBrowseResource_Conditional_34_Conditional_11_Template, 3, 0, "div", 54);
380
+ i0.ɵɵconditionalCreate(12, ListsBrowseResource_Conditional_34_Conditional_12_Template, 3, 0, "div", 55);
385
381
  i0.ɵɵelementEnd();
386
382
  } if (rf & 2) {
387
383
  const ctx_r2 = i0.ɵɵnextContext();
388
384
  i0.ɵɵadvance(3);
389
- i0.ɵɵtextInterpolate2("", ctx_r2.filteredLists.length, " list", ctx_r2.filteredLists.length !== 1 ? "s" : "", "");
385
+ i0.ɵɵtextInterpolate2("", ctx_r2.filteredLists.length, " list", ctx_r2.filteredLists.length !== 1 ? "s" : "");
390
386
  i0.ɵɵadvance(4);
391
387
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.selectedSort);
392
388
  i0.ɵɵadvance();
393
- i0.ɵɵproperty("ngForOf", ctx_r2.sortOptions);
394
- i0.ɵɵadvance();
395
- i0.ɵɵproperty("ngIf", ctx_r2.viewMode === "table");
389
+ i0.ɵɵrepeater(ctx_r2.sortOptions);
390
+ i0.ɵɵadvance(2);
391
+ i0.ɵɵconditional(ctx_r2.viewMode === "table" ? 10 : -1);
396
392
  i0.ɵɵadvance();
397
- i0.ɵɵproperty("ngIf", ctx_r2.viewMode === "card");
393
+ i0.ɵɵconditional(ctx_r2.viewMode === "card" ? 11 : -1);
398
394
  i0.ɵɵadvance();
399
- i0.ɵɵproperty("ngIf", ctx_r2.viewMode === "hierarchy");
395
+ i0.ɵɵconditional(ctx_r2.viewMode === "hierarchy" ? 12 : -1);
400
396
  } }
401
- function ListsBrowseResource_ng_template_33_div_1_Template(rf, ctx) { if (rf & 1) {
397
+ function ListsBrowseResource_ng_template_35_Conditional_1_Template(rf, ctx) { if (rf & 1) {
402
398
  const _r20 = i0.ɵɵgetCurrentView();
403
- i0.ɵɵelementStart(0, "div", 129);
404
- i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_33_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r20); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r21)); });
405
- i0.ɵɵelement(1, "i")(2, "i", 130);
406
- i0.ɵɵelementStart(3, "span", 131);
399
+ i0.ɵɵelementStart(0, "div", 113);
400
+ i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_35_Conditional_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r20); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r21)); });
401
+ i0.ɵɵelement(1, "i")(2, "i", 114);
402
+ i0.ɵɵelementStart(3, "span", 115);
407
403
  i0.ɵɵtext(4);
408
404
  i0.ɵɵelementEnd();
409
- i0.ɵɵelementStart(5, "span", 132);
405
+ i0.ɵɵelementStart(5, "span", 116);
410
406
  i0.ɵɵtext(6);
411
407
  i0.ɵɵelementEnd()();
412
408
  } if (rf & 2) {
@@ -421,15 +417,15 @@ function ListsBrowseResource_ng_template_33_div_1_Template(rf, ctx) { if (rf & 1
421
417
  i0.ɵɵadvance(2);
422
418
  i0.ɵɵtextInterpolate(ctx_r2.getListCountInCategory(node_r21));
423
419
  } }
424
- function ListsBrowseResource_ng_template_33_div_2_Template(rf, ctx) { if (rf & 1) {
420
+ function ListsBrowseResource_ng_template_35_Conditional_2_Template(rf, ctx) { if (rf & 1) {
425
421
  const _r22 = i0.ɵɵgetCurrentView();
426
- i0.ɵɵelementStart(0, "div", 133);
427
- i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_33_div_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r21)); });
428
- i0.ɵɵelement(1, "i")(2, "i", 134);
429
- i0.ɵɵelementStart(3, "span", 131);
422
+ i0.ɵɵelementStart(0, "div", 117);
423
+ i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_35_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r21)); });
424
+ i0.ɵɵelement(1, "i")(2, "i", 118);
425
+ i0.ɵɵelementStart(3, "span", 115);
430
426
  i0.ɵɵtext(4, "Uncategorized");
431
427
  i0.ɵɵelementEnd();
432
- i0.ɵɵelementStart(5, "span", 132);
428
+ i0.ɵɵelementStart(5, "span", 116);
433
429
  i0.ɵɵtext(6);
434
430
  i0.ɵɵelementEnd()();
435
431
  } if (rf & 2) {
@@ -439,37 +435,37 @@ function ListsBrowseResource_ng_template_33_div_2_Template(rf, ctx) { if (rf & 1
439
435
  i0.ɵɵadvance(5);
440
436
  i0.ɵɵtextInterpolate(node_r21.lists.length);
441
437
  } }
442
- function ListsBrowseResource_ng_template_33_div_3_div_1_span_8_Template(rf, ctx) { if (rf & 1) {
438
+ function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
443
439
  i0.ɵɵelementStart(0, "span");
444
440
  i0.ɵɵtext(1);
445
441
  i0.ɵɵelementEnd();
446
442
  } if (rf & 2) {
447
443
  const item_r24 = i0.ɵɵnextContext().$implicit;
448
444
  i0.ɵɵadvance();
449
- i0.ɵɵtextInterpolate1(" \u00B7 ", item_r24.ownerName, "");
445
+ i0.ɵɵtextInterpolate1(" \u00B7 ", item_r24.ownerName);
450
446
  } }
451
- function ListsBrowseResource_ng_template_33_div_3_div_1_div_9_Template(rf, ctx) { if (rf & 1) {
447
+ function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
452
448
  const _r25 = i0.ɵɵgetCurrentView();
453
- i0.ɵɵelementStart(0, "div", 141)(1, "button", 142);
454
- i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_33_div_3_div_1_div_9_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r25); const item_r24 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r24)); });
455
- i0.ɵɵelement(2, "i", 98);
449
+ i0.ɵɵelementStart(0, "div", 123)(1, "button", 124);
450
+ i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Conditional_9_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r25); const item_r24 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r24)); });
451
+ i0.ɵɵelement(2, "i", 88);
456
452
  i0.ɵɵelementEnd()();
457
453
  } }
458
- function ListsBrowseResource_ng_template_33_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
454
+ function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
459
455
  const _r23 = i0.ɵɵgetCurrentView();
460
- i0.ɵɵelementStart(0, "div", 137);
461
- i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_33_div_3_div_1_Template_div_click_0_listener() { const item_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r24)); })("keydown.enter", function ListsBrowseResource_ng_template_33_div_3_div_1_Template_div_keydown_enter_0_listener() { const item_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r24)); });
462
- i0.ɵɵelementStart(1, "div", 75);
456
+ i0.ɵɵelementStart(0, "div", 120);
457
+ i0.ɵɵlistener("click", function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Template_div_click_0_listener() { const item_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r24)); })("keydown.enter", function ListsBrowseResource_ng_template_35_Conditional_3_For_2_Template_div_keydown_enter_0_listener() { const item_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r24)); });
458
+ i0.ɵɵelementStart(1, "div", 69);
463
459
  i0.ɵɵelement(2, "i");
464
460
  i0.ɵɵelementEnd();
465
- i0.ɵɵelementStart(3, "div", 138)(4, "span", 77);
461
+ i0.ɵɵelementStart(3, "div", 121)(4, "span", 71);
466
462
  i0.ɵɵtext(5);
467
463
  i0.ɵɵelementEnd();
468
- i0.ɵɵelementStart(6, "span", 139);
464
+ i0.ɵɵelementStart(6, "span", 122);
469
465
  i0.ɵɵtext(7);
470
- i0.ɵɵtemplate(8, ListsBrowseResource_ng_template_33_div_3_div_1_span_8_Template, 2, 1, "span", 83);
466
+ i0.ɵɵconditionalCreate(8, ListsBrowseResource_ng_template_35_Conditional_3_For_2_Conditional_8_Template, 2, 1, "span");
471
467
  i0.ɵɵelementEnd()();
472
- i0.ɵɵtemplate(9, ListsBrowseResource_ng_template_33_div_3_div_1_div_9_Template, 3, 0, "div", 140);
468
+ i0.ɵɵconditionalCreate(9, ListsBrowseResource_ng_template_35_Conditional_3_For_2_Conditional_9_Template, 3, 0, "div", 123);
473
469
  i0.ɵɵelementEnd();
474
470
  } if (rf & 2) {
475
471
  const item_r24 = ctx.$implicit;
@@ -483,126 +479,123 @@ function ListsBrowseResource_ng_template_33_div_3_div_1_Template(rf, ctx) { if (
483
479
  i0.ɵɵadvance(2);
484
480
  i0.ɵɵtextInterpolate2(" ", item_r24.entityName, " \u00B7 ", item_r24.itemCount, " items ");
485
481
  i0.ɵɵadvance();
486
- i0.ɵɵproperty("ngIf", !item_r24.isOwner);
482
+ i0.ɵɵconditional(!item_r24.isOwner ? 8 : -1);
487
483
  i0.ɵɵadvance();
488
- i0.ɵɵproperty("ngIf", item_r24.isOwner);
484
+ i0.ɵɵconditional(item_r24.isOwner ? 9 : -1);
489
485
  } }
490
- function ListsBrowseResource_ng_template_33_div_3_Template(rf, ctx) { if (rf & 1) {
491
- i0.ɵɵelementStart(0, "div", 135);
492
- i0.ɵɵtemplate(1, ListsBrowseResource_ng_template_33_div_3_div_1_Template, 10, 9, "div", 136);
486
+ function ListsBrowseResource_ng_template_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
487
+ i0.ɵɵelementStart(0, "div", 112);
488
+ i0.ɵɵrepeaterCreate(1, ListsBrowseResource_ng_template_35_Conditional_3_For_2_Template, 10, 9, "div", 119, i0.ɵɵrepeaterTrackByIdentity);
493
489
  i0.ɵɵelementEnd();
494
490
  } if (rf & 2) {
495
491
  const node_r21 = i0.ɵɵnextContext().node;
496
492
  i0.ɵɵadvance();
497
- i0.ɵɵproperty("ngForOf", node_r21.lists);
493
+ i0.ɵɵrepeater(node_r21.lists);
498
494
  } }
499
- function ListsBrowseResource_ng_template_33_ng_container_4_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
495
+ function ListsBrowseResource_ng_template_35_Conditional_4_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
500
496
  i0.ɵɵelementContainer(0);
501
497
  } }
502
- function ListsBrowseResource_ng_template_33_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
503
- i0.ɵɵelementContainerStart(0);
504
- i0.ɵɵtemplate(1, ListsBrowseResource_ng_template_33_ng_container_4_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 124);
505
- i0.ɵɵelementContainerEnd();
498
+ function ListsBrowseResource_ng_template_35_Conditional_4_For_1_Template(rf, ctx) { if (rf & 1) {
499
+ i0.ɵɵtemplate(0, ListsBrowseResource_ng_template_35_Conditional_4_For_1_ng_container_0_Template, 1, 0, "ng-container", 108);
506
500
  } if (rf & 2) {
507
501
  const child_r26 = ctx.$implicit;
508
502
  const depth_r27 = i0.ɵɵnextContext(2).depth;
509
503
  i0.ɵɵnextContext();
510
- const categoryNodeTemplate_r19 = i0.ɵɵreference(34);
511
- i0.ɵɵadvance();
504
+ const categoryNodeTemplate_r19 = i0.ɵɵreference(36);
512
505
  i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTemplate_r19)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r26, depth_r27 + 1));
513
506
  } }
514
- function ListsBrowseResource_ng_template_33_ng_container_4_Template(rf, ctx) { if (rf & 1) {
515
- i0.ɵɵelementContainerStart(0);
516
- i0.ɵɵtemplate(1, ListsBrowseResource_ng_template_33_ng_container_4_ng_container_1_Template, 2, 5, "ng-container", 123);
517
- i0.ɵɵelementContainerEnd();
507
+ function ListsBrowseResource_ng_template_35_Conditional_4_Template(rf, ctx) { if (rf & 1) {
508
+ i0.ɵɵrepeaterCreate(0, ListsBrowseResource_ng_template_35_Conditional_4_For_1_Template, 1, 5, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
518
509
  } if (rf & 2) {
519
510
  const node_r21 = i0.ɵɵnextContext().node;
520
- i0.ɵɵadvance();
521
- i0.ɵɵproperty("ngForOf", node_r21.children);
511
+ i0.ɵɵrepeater(node_r21.children);
522
512
  } }
523
- function ListsBrowseResource_ng_template_33_Template(rf, ctx) { if (rf & 1) {
524
- i0.ɵɵelementStart(0, "div", 125);
525
- i0.ɵɵtemplate(1, ListsBrowseResource_ng_template_33_div_1_Template, 7, 6, "div", 126)(2, ListsBrowseResource_ng_template_33_div_2_Template, 7, 3, "div", 127)(3, ListsBrowseResource_ng_template_33_div_3_Template, 2, 1, "div", 128)(4, ListsBrowseResource_ng_template_33_ng_container_4_Template, 2, 1, "ng-container", 83);
513
+ function ListsBrowseResource_ng_template_35_Template(rf, ctx) { if (rf & 1) {
514
+ i0.ɵɵelementStart(0, "div", 109);
515
+ i0.ɵɵconditionalCreate(1, ListsBrowseResource_ng_template_35_Conditional_1_Template, 7, 6, "div", 110);
516
+ i0.ɵɵconditionalCreate(2, ListsBrowseResource_ng_template_35_Conditional_2_Template, 7, 3, "div", 111);
517
+ i0.ɵɵconditionalCreate(3, ListsBrowseResource_ng_template_35_Conditional_3_Template, 3, 0, "div", 112);
518
+ i0.ɵɵconditionalCreate(4, ListsBrowseResource_ng_template_35_Conditional_4_Template, 2, 0);
526
519
  i0.ɵɵelementEnd();
527
520
  } if (rf & 2) {
528
521
  const node_r21 = ctx.node;
529
522
  const depth_r27 = ctx.depth;
530
523
  i0.ɵɵstyleProp("margin-left", depth_r27 * 20, "px");
531
524
  i0.ɵɵadvance();
532
- i0.ɵɵproperty("ngIf", node_r21.category);
525
+ i0.ɵɵconditional(node_r21.category ? 1 : -1);
533
526
  i0.ɵɵadvance();
534
- i0.ɵɵproperty("ngIf", !node_r21.category && node_r21.lists.length > 0);
527
+ i0.ɵɵconditional(!node_r21.category && node_r21.lists.length > 0 ? 2 : -1);
535
528
  i0.ɵɵadvance();
536
- i0.ɵɵproperty("ngIf", node_r21.isExpanded);
529
+ i0.ɵɵconditional(node_r21.isExpanded ? 3 : -1);
537
530
  i0.ɵɵadvance();
538
- i0.ɵɵproperty("ngIf", node_r21.isExpanded);
531
+ i0.ɵɵconditional(node_r21.isExpanded ? 4 : -1);
539
532
  } }
540
- function ListsBrowseResource_div_35_Template(rf, ctx) { if (rf & 1) {
533
+ function ListsBrowseResource_Conditional_37_Template(rf, ctx) { if (rf & 1) {
541
534
  const _r28 = i0.ɵɵgetCurrentView();
542
- i0.ɵɵelementStart(0, "div", 143);
543
- i0.ɵɵlistener("click", function ListsBrowseResource_div_35_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeContextMenu()); });
535
+ i0.ɵɵelementStart(0, "div", 125);
536
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_37_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeContextMenu()); });
544
537
  i0.ɵɵelementEnd();
545
538
  } }
546
- function ListsBrowseResource_div_36_Template(rf, ctx) { if (rf & 1) {
539
+ function ListsBrowseResource_Conditional_38_Template(rf, ctx) { if (rf & 1) {
547
540
  const _r29 = i0.ɵɵgetCurrentView();
548
- i0.ɵɵelementStart(0, "div", 144)(1, "button", 145);
549
- i0.ɵɵlistener("click", function ListsBrowseResource_div_36_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.editList()); });
550
- i0.ɵɵelement(2, "i", 146);
541
+ i0.ɵɵelementStart(0, "div", 126)(1, "button", 127);
542
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_38_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.editList()); });
543
+ i0.ɵɵelement(2, "i", 128);
551
544
  i0.ɵɵtext(3, " Edit ");
552
545
  i0.ɵɵelementEnd();
553
- i0.ɵɵelementStart(4, "button", 145);
554
- i0.ɵɵlistener("click", function ListsBrowseResource_div_36_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.openShareDialog()); });
555
- i0.ɵɵelement(5, "i", 93);
546
+ i0.ɵɵelementStart(4, "button", 127);
547
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_38_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.openShareDialog()); });
548
+ i0.ɵɵelement(5, "i", 84);
556
549
  i0.ɵɵtext(6, " Share ");
557
550
  i0.ɵɵelementEnd();
558
- i0.ɵɵelementStart(7, "button", 145);
559
- i0.ɵɵlistener("click", function ListsBrowseResource_div_36_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.duplicateList()); });
560
- i0.ɵɵelement(8, "i", 147);
551
+ i0.ɵɵelementStart(7, "button", 127);
552
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_38_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.duplicateList()); });
553
+ i0.ɵɵelement(8, "i", 129);
561
554
  i0.ɵɵtext(9, " Duplicate ");
562
555
  i0.ɵɵelementEnd();
563
- i0.ɵɵelement(10, "div", 148);
564
- i0.ɵɵelementStart(11, "button", 149);
565
- i0.ɵɵlistener("click", function ListsBrowseResource_div_36_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.confirmDeleteList()); });
566
- i0.ɵɵelement(12, "i", 150);
556
+ i0.ɵɵelement(10, "div", 130);
557
+ i0.ɵɵelementStart(11, "button", 131);
558
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_38_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.confirmDeleteList()); });
559
+ i0.ɵɵelement(12, "i", 132);
567
560
  i0.ɵɵtext(13, " Delete ");
568
561
  i0.ɵɵelementEnd()();
569
562
  } if (rf & 2) {
570
563
  const ctx_r2 = i0.ɵɵnextContext();
571
564
  i0.ɵɵstyleProp("top", ctx_r2.contextMenuY, "px")("left", ctx_r2.contextMenuX, "px");
572
565
  } }
573
- function ListsBrowseResource_div_37_Template(rf, ctx) { if (rf & 1) {
566
+ function ListsBrowseResource_Conditional_39_Template(rf, ctx) { if (rf & 1) {
574
567
  const _r30 = i0.ɵɵgetCurrentView();
575
- i0.ɵɵelementStart(0, "div", 151);
576
- i0.ɵɵlistener("click", function ListsBrowseResource_div_37_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
568
+ i0.ɵɵelementStart(0, "div", 133);
569
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_39_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
577
570
  i0.ɵɵelementEnd();
578
571
  } }
579
- function ListsBrowseResource_div_38_div_15_Template(rf, ctx) { if (rf & 1) {
572
+ function ListsBrowseResource_Conditional_40_Conditional_15_Template(rf, ctx) { if (rf & 1) {
580
573
  const _r32 = i0.ɵɵgetCurrentView();
581
- i0.ɵɵelementStart(0, "div", 156)(1, "label");
574
+ i0.ɵɵelementStart(0, "div", 137)(1, "label");
582
575
  i0.ɵɵtext(2, "Entity *");
583
576
  i0.ɵɵelementEnd();
584
- i0.ɵɵelementStart(3, "div", 167)(4, "input", 168, 1);
585
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_div_38_div_15_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.entitySearchTerm, $event) || (ctx_r2.entitySearchTerm = $event); return i0.ɵɵresetView($event); });
586
- i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_div_38_div_15_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.filterEntities($event)); })("focus", function ListsBrowseResource_div_38_div_15_Template_input_focus_4_listener() { i0.ɵɵrestoreView(_r32); const entityInput_r33 = i0.ɵɵreference(5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openEntityDropdown(entityInput_r33)); });
577
+ i0.ɵɵelementStart(3, "div", 146)(4, "input", 147, 1);
578
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Conditional_40_Conditional_15_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.entitySearchTerm, $event) || (ctx_r2.entitySearchTerm = $event); return i0.ɵɵresetView($event); });
579
+ i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Conditional_40_Conditional_15_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.filterEntities($event)); })("focus", function ListsBrowseResource_Conditional_40_Conditional_15_Template_input_focus_4_listener() { i0.ɵɵrestoreView(_r32); const entityInput_r33 = i0.ɵɵreference(5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openEntityDropdown(entityInput_r33)); });
587
580
  i0.ɵɵelementEnd()()();
588
581
  } if (rf & 2) {
589
582
  const ctx_r2 = i0.ɵɵnextContext(2);
590
583
  i0.ɵɵadvance(4);
591
584
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.entitySearchTerm);
592
585
  } }
593
- function ListsBrowseResource_div_38_div_16_Template(rf, ctx) { if (rf & 1) {
594
- i0.ɵɵelementStart(0, "div", 156)(1, "label");
586
+ function ListsBrowseResource_Conditional_40_Conditional_16_Template(rf, ctx) { if (rf & 1) {
587
+ i0.ɵɵelementStart(0, "div", 137)(1, "label");
595
588
  i0.ɵɵtext(2, "Entity");
596
589
  i0.ɵɵelementEnd();
597
- i0.ɵɵelement(3, "input", 169);
590
+ i0.ɵɵelement(3, "input", 148);
598
591
  i0.ɵɵelementEnd();
599
592
  } if (rf & 2) {
600
593
  const ctx_r2 = i0.ɵɵnextContext(2);
601
594
  i0.ɵɵadvance(3);
602
595
  i0.ɵɵproperty("value", ctx_r2.entitySearchTerm);
603
596
  } }
604
- function ListsBrowseResource_div_38_option_23_Template(rf, ctx) { if (rf & 1) {
605
- i0.ɵɵelementStart(0, "option", 161);
597
+ function ListsBrowseResource_Conditional_40_For_24_Template(rf, ctx) { if (rf & 1) {
598
+ i0.ɵɵelementStart(0, "option", 141);
606
599
  i0.ɵɵtext(1);
607
600
  i0.ɵɵelementEnd();
608
601
  } if (rf & 2) {
@@ -611,49 +604,50 @@ function ListsBrowseResource_div_38_option_23_Template(rf, ctx) { if (rf & 1) {
611
604
  i0.ɵɵadvance();
612
605
  i0.ɵɵtextInterpolate(cat_r34.displayName);
613
606
  } }
614
- function ListsBrowseResource_div_38_i_26_Template(rf, ctx) { if (rf & 1) {
615
- i0.ɵɵelement(0, "i", 170);
607
+ function ListsBrowseResource_Conditional_40_Conditional_27_Template(rf, ctx) { if (rf & 1) {
608
+ i0.ɵɵelement(0, "i", 144);
616
609
  } }
617
- function ListsBrowseResource_div_38_Template(rf, ctx) { if (rf & 1) {
610
+ function ListsBrowseResource_Conditional_40_Template(rf, ctx) { if (rf & 1) {
618
611
  const _r31 = i0.ɵɵgetCurrentView();
619
- i0.ɵɵelementStart(0, "div", 152)(1, "div", 153)(2, "h3");
612
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 134)(2, "h3");
620
613
  i0.ɵɵtext(3);
621
614
  i0.ɵɵelementEnd();
622
- i0.ɵɵelementStart(4, "button", 154);
623
- i0.ɵɵlistener("click", function ListsBrowseResource_div_38_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
615
+ i0.ɵɵelementStart(4, "button", 135);
616
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_40_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
624
617
  i0.ɵɵelement(5, "i", 37);
625
618
  i0.ɵɵelementEnd()();
626
- i0.ɵɵelementStart(6, "div", 155)(7, "div", 156)(8, "label");
619
+ i0.ɵɵelementStart(6, "div", 136)(7, "div", 137)(8, "label");
627
620
  i0.ɵɵtext(9, "Name *");
628
621
  i0.ɵɵelementEnd();
629
- i0.ɵɵelementStart(10, "input", 157);
630
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_div_38_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListName, $event) || (ctx_r2.newListName = $event); return i0.ɵɵresetView($event); });
622
+ i0.ɵɵelementStart(10, "input", 138);
623
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Conditional_40_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListName, $event) || (ctx_r2.newListName = $event); return i0.ɵɵresetView($event); });
631
624
  i0.ɵɵelementEnd()();
632
- i0.ɵɵelementStart(11, "div", 156)(12, "label");
625
+ i0.ɵɵelementStart(11, "div", 137)(12, "label");
633
626
  i0.ɵɵtext(13, "Description");
634
627
  i0.ɵɵelementEnd();
635
- i0.ɵɵelementStart(14, "textarea", 158);
636
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_div_38_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListDescription, $event) || (ctx_r2.newListDescription = $event); return i0.ɵɵresetView($event); });
628
+ i0.ɵɵelementStart(14, "textarea", 139);
629
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Conditional_40_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListDescription, $event) || (ctx_r2.newListDescription = $event); return i0.ɵɵresetView($event); });
637
630
  i0.ɵɵelementEnd()();
638
- i0.ɵɵtemplate(15, ListsBrowseResource_div_38_div_15_Template, 6, 1, "div", 159)(16, ListsBrowseResource_div_38_div_16_Template, 4, 1, "div", 159);
639
- i0.ɵɵelementStart(17, "div", 156)(18, "label");
631
+ i0.ɵɵconditionalCreate(15, ListsBrowseResource_Conditional_40_Conditional_15_Template, 6, 1, "div", 137);
632
+ i0.ɵɵconditionalCreate(16, ListsBrowseResource_Conditional_40_Conditional_16_Template, 4, 1, "div", 137);
633
+ i0.ɵɵelementStart(17, "div", 137)(18, "label");
640
634
  i0.ɵɵtext(19, "Category");
641
635
  i0.ɵɵelementEnd();
642
- i0.ɵɵelementStart(20, "select", 160);
643
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_div_38_Template_select_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedCategoryId, $event) || (ctx_r2.selectedCategoryId = $event); return i0.ɵɵresetView($event); });
644
- i0.ɵɵelementStart(21, "option", 161);
636
+ i0.ɵɵelementStart(20, "select", 140);
637
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Conditional_40_Template_select_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedCategoryId, $event) || (ctx_r2.selectedCategoryId = $event); return i0.ɵɵresetView($event); });
638
+ i0.ɵɵelementStart(21, "option", 141);
645
639
  i0.ɵɵtext(22, "No category");
646
640
  i0.ɵɵelementEnd();
647
- i0.ɵɵtemplate(23, ListsBrowseResource_div_38_option_23_Template, 2, 2, "option", 162);
641
+ i0.ɵɵrepeaterCreate(23, ListsBrowseResource_Conditional_40_For_24_Template, 2, 2, "option", 141, i0.ɵɵrepeaterTrackByIdentity);
648
642
  i0.ɵɵelementEnd()()();
649
- i0.ɵɵelementStart(24, "div", 163)(25, "button", 164);
650
- i0.ɵɵlistener("click", function ListsBrowseResource_div_38_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.saveList()); });
651
- i0.ɵɵtemplate(26, ListsBrowseResource_div_38_i_26_Template, 1, 0, "i", 165);
652
- i0.ɵɵtext(27);
653
- i0.ɵɵelementEnd();
654
- i0.ɵɵelementStart(28, "button", 166);
655
- i0.ɵɵlistener("click", function ListsBrowseResource_div_38_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
656
- i0.ɵɵtext(29, "Cancel");
643
+ i0.ɵɵelementStart(25, "div", 142)(26, "button", 143);
644
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_40_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.saveList()); });
645
+ i0.ɵɵconditionalCreate(27, ListsBrowseResource_Conditional_40_Conditional_27_Template, 1, 0, "i", 144);
646
+ i0.ɵɵtext(28);
647
+ i0.ɵɵelementEnd();
648
+ i0.ɵɵelementStart(29, "button", 145);
649
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_40_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
650
+ i0.ɵɵtext(30, "Cancel");
657
651
  i0.ɵɵelementEnd()()();
658
652
  } if (rf & 2) {
659
653
  const ctx_r2 = i0.ɵɵnextContext();
@@ -664,59 +658,59 @@ function ListsBrowseResource_div_38_Template(rf, ctx) { if (rf & 1) {
664
658
  i0.ɵɵadvance(4);
665
659
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.newListDescription);
666
660
  i0.ɵɵadvance();
667
- i0.ɵɵproperty("ngIf", !ctx_r2.editingList);
661
+ i0.ɵɵconditional(!ctx_r2.editingList ? 15 : -1);
668
662
  i0.ɵɵadvance();
669
- i0.ɵɵproperty("ngIf", ctx_r2.editingList);
663
+ i0.ɵɵconditional(ctx_r2.editingList ? 16 : -1);
670
664
  i0.ɵɵadvance(4);
671
665
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.selectedCategoryId);
672
666
  i0.ɵɵadvance();
673
667
  i0.ɵɵproperty("ngValue", null);
674
668
  i0.ɵɵadvance(2);
675
- i0.ɵɵproperty("ngForOf", ctx_r2.flatCategories);
676
- i0.ɵɵadvance(2);
669
+ i0.ɵɵrepeater(ctx_r2.flatCategories);
670
+ i0.ɵɵadvance(3);
677
671
  i0.ɵɵproperty("disabled", !ctx_r2.newListName || !ctx_r2.editingList && !ctx_r2.selectedEntityId || ctx_r2.isSaving);
678
672
  i0.ɵɵadvance();
679
- i0.ɵɵproperty("ngIf", ctx_r2.isSaving);
673
+ i0.ɵɵconditional(ctx_r2.isSaving ? 27 : -1);
680
674
  i0.ɵɵadvance();
681
675
  i0.ɵɵtextInterpolate1(" ", ctx_r2.isSaving ? "Saving..." : ctx_r2.editingList ? "Save" : "Create", " ");
682
676
  i0.ɵɵadvance();
683
677
  i0.ɵɵproperty("disabled", ctx_r2.isSaving);
684
678
  } }
685
- function ListsBrowseResource_div_39_Template(rf, ctx) { if (rf & 1) {
679
+ function ListsBrowseResource_Conditional_41_Template(rf, ctx) { if (rf & 1) {
686
680
  const _r35 = i0.ɵɵgetCurrentView();
687
- i0.ɵɵelementStart(0, "div", 151);
688
- i0.ɵɵlistener("click", function ListsBrowseResource_div_39_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
681
+ i0.ɵɵelementStart(0, "div", 133);
682
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_41_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
689
683
  i0.ɵɵelementEnd();
690
684
  } }
691
- function ListsBrowseResource_div_40_i_16_Template(rf, ctx) { if (rf & 1) {
692
- i0.ɵɵelement(0, "i", 170);
685
+ function ListsBrowseResource_Conditional_42_Conditional_16_Template(rf, ctx) { if (rf & 1) {
686
+ i0.ɵɵelement(0, "i", 144);
693
687
  } }
694
- function ListsBrowseResource_div_40_Template(rf, ctx) { if (rf & 1) {
688
+ function ListsBrowseResource_Conditional_42_Template(rf, ctx) { if (rf & 1) {
695
689
  const _r36 = i0.ɵɵgetCurrentView();
696
- i0.ɵɵelementStart(0, "div", 171)(1, "div", 153)(2, "h3");
690
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 134)(2, "h3");
697
691
  i0.ɵɵtext(3, "Delete List");
698
692
  i0.ɵɵelementEnd();
699
- i0.ɵɵelementStart(4, "button", 154);
700
- i0.ɵɵlistener("click", function ListsBrowseResource_div_40_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
693
+ i0.ɵɵelementStart(4, "button", 135);
694
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_42_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
701
695
  i0.ɵɵelement(5, "i", 37);
702
696
  i0.ɵɵelementEnd()();
703
- i0.ɵɵelementStart(6, "div", 155)(7, "p");
697
+ i0.ɵɵelementStart(6, "div", 136)(7, "p");
704
698
  i0.ɵɵtext(8, "Are you sure you want to delete \"");
705
699
  i0.ɵɵelementStart(9, "strong");
706
700
  i0.ɵɵtext(10);
707
701
  i0.ɵɵelementEnd();
708
702
  i0.ɵɵtext(11, "\"?");
709
703
  i0.ɵɵelementEnd();
710
- i0.ɵɵelementStart(12, "p", 172);
704
+ i0.ɵɵelementStart(12, "p", 149);
711
705
  i0.ɵɵtext(13, "This will also remove all items in the list.");
712
706
  i0.ɵɵelementEnd()();
713
- i0.ɵɵelementStart(14, "div", 163)(15, "button", 173);
714
- i0.ɵɵlistener("click", function ListsBrowseResource_div_40_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteList()); });
715
- i0.ɵɵtemplate(16, ListsBrowseResource_div_40_i_16_Template, 1, 0, "i", 165);
707
+ i0.ɵɵelementStart(14, "div", 142)(15, "button", 150);
708
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_42_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteList()); });
709
+ i0.ɵɵconditionalCreate(16, ListsBrowseResource_Conditional_42_Conditional_16_Template, 1, 0, "i", 144);
716
710
  i0.ɵɵtext(17);
717
711
  i0.ɵɵelementEnd();
718
- i0.ɵɵelementStart(18, "button", 166);
719
- i0.ɵɵlistener("click", function ListsBrowseResource_div_40_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
712
+ i0.ɵɵelementStart(18, "button", 145);
713
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_42_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
720
714
  i0.ɵɵtext(19, "Cancel");
721
715
  i0.ɵɵelementEnd()()();
722
716
  } if (rf & 2) {
@@ -726,25 +720,25 @@ function ListsBrowseResource_div_40_Template(rf, ctx) { if (rf & 1) {
726
720
  i0.ɵɵadvance(5);
727
721
  i0.ɵɵproperty("disabled", ctx_r2.isDeleting);
728
722
  i0.ɵɵadvance();
729
- i0.ɵɵproperty("ngIf", ctx_r2.isDeleting);
723
+ i0.ɵɵconditional(ctx_r2.isDeleting ? 16 : -1);
730
724
  i0.ɵɵadvance();
731
725
  i0.ɵɵtextInterpolate1(" ", ctx_r2.isDeleting ? "Deleting..." : "Delete", " ");
732
726
  i0.ɵɵadvance();
733
727
  i0.ɵɵproperty("disabled", ctx_r2.isDeleting);
734
728
  } }
735
- function ListsBrowseResource_mj_list_share_dialog_41_Template(rf, ctx) { if (rf & 1) {
729
+ function ListsBrowseResource_Conditional_43_Template(rf, ctx) { if (rf & 1) {
736
730
  const _r37 = i0.ɵɵgetCurrentView();
737
- i0.ɵɵelementStart(0, "mj-list-share-dialog", 174);
738
- i0.ɵɵlistener("complete", function ListsBrowseResource_mj_list_share_dialog_41_Template_mj_list_share_dialog_complete_0_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShareComplete($event)); })("cancel", function ListsBrowseResource_mj_list_share_dialog_41_Template_mj_list_share_dialog_cancel_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShareCancel()); });
731
+ i0.ɵɵelementStart(0, "mj-list-share-dialog", 151);
732
+ i0.ɵɵlistener("complete", function ListsBrowseResource_Conditional_43_Template_mj_list_share_dialog_complete_0_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShareComplete($event)); })("cancel", function ListsBrowseResource_Conditional_43_Template_mj_list_share_dialog_cancel_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShareCancel()); });
739
733
  i0.ɵɵelementEnd();
740
734
  } if (rf & 2) {
741
735
  const ctx_r2 = i0.ɵɵnextContext();
742
736
  i0.ɵɵproperty("config", ctx_r2.shareDialogConfig)("visible", ctx_r2.showShareDialog);
743
737
  } }
744
- function ListsBrowseResource_div_42_div_3_Template(rf, ctx) { if (rf & 1) {
738
+ function ListsBrowseResource_Conditional_44_For_4_Template(rf, ctx) { if (rf & 1) {
745
739
  const _r39 = i0.ɵɵgetCurrentView();
746
- i0.ɵɵelementStart(0, "div", 180);
747
- i0.ɵɵlistener("click", function ListsBrowseResource_div_42_div_3_Template_div_click_0_listener() { const entity_r40 = i0.ɵɵrestoreView(_r39).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectEntity(entity_r40)); });
740
+ i0.ɵɵelementStart(0, "div", 157);
741
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_44_For_4_Template_div_click_0_listener() { const entity_r40 = i0.ɵɵrestoreView(_r39).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectEntity(entity_r40)); });
748
742
  i0.ɵɵtext(1);
749
743
  i0.ɵɵelementEnd();
750
744
  } if (rf & 2) {
@@ -752,18 +746,19 @@ function ListsBrowseResource_div_42_div_3_Template(rf, ctx) { if (rf & 1) {
752
746
  i0.ɵɵadvance();
753
747
  i0.ɵɵtextInterpolate1(" ", entity_r40.Name, " ");
754
748
  } }
755
- function ListsBrowseResource_div_42_div_4_Template(rf, ctx) { if (rf & 1) {
756
- i0.ɵɵelementStart(0, "div", 181);
749
+ function ListsBrowseResource_Conditional_44_Conditional_5_Template(rf, ctx) { if (rf & 1) {
750
+ i0.ɵɵelementStart(0, "div", 156);
757
751
  i0.ɵɵtext(1, " No entities found ");
758
752
  i0.ɵɵelementEnd();
759
753
  } }
760
- function ListsBrowseResource_div_42_Template(rf, ctx) { if (rf & 1) {
754
+ function ListsBrowseResource_Conditional_44_Template(rf, ctx) { if (rf & 1) {
761
755
  const _r38 = i0.ɵɵgetCurrentView();
762
- i0.ɵɵelementStart(0, "div", 175)(1, "div", 176);
763
- i0.ɵɵlistener("click", function ListsBrowseResource_div_42_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r38); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeEntityDropdown()); });
756
+ i0.ɵɵelementStart(0, "div", 152)(1, "div", 153);
757
+ i0.ɵɵlistener("click", function ListsBrowseResource_Conditional_44_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r38); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeEntityDropdown()); });
764
758
  i0.ɵɵelementEnd();
765
- i0.ɵɵelementStart(2, "div", 177);
766
- i0.ɵɵtemplate(3, ListsBrowseResource_div_42_div_3_Template, 2, 1, "div", 178)(4, ListsBrowseResource_div_42_div_4_Template, 2, 0, "div", 179);
759
+ i0.ɵɵelementStart(2, "div", 154);
760
+ i0.ɵɵrepeaterCreate(3, ListsBrowseResource_Conditional_44_For_4_Template, 2, 1, "div", 155, i0.ɵɵrepeaterTrackByIdentity);
761
+ i0.ɵɵconditionalCreate(5, ListsBrowseResource_Conditional_44_Conditional_5_Template, 2, 0, "div", 156);
767
762
  i0.ɵɵelementEnd()();
768
763
  } if (rf & 2) {
769
764
  const ctx_r2 = i0.ɵɵnextContext();
@@ -772,13 +767,10 @@ function ListsBrowseResource_div_42_Template(rf, ctx) { if (rf & 1) {
772
767
  i0.ɵɵadvance(2);
773
768
  i0.ɵɵclassProp("open-above", ctx_r2.entityDropdownPosition.openAbove);
774
769
  i0.ɵɵadvance();
775
- i0.ɵɵproperty("ngForOf", ctx_r2.filteredEntitiesList);
776
- i0.ɵɵadvance();
777
- i0.ɵɵproperty("ngIf", ctx_r2.filteredEntitiesList.length === 0);
770
+ i0.ɵɵrepeater(ctx_r2.filteredEntitiesList);
771
+ i0.ɵɵadvance(2);
772
+ i0.ɵɵconditional(ctx_r2.filteredEntitiesList.length === 0 ? 5 : -1);
778
773
  } }
779
- export function LoadListsBrowseResource() {
780
- // tree shaker
781
- }
782
774
  let ListsBrowseResource = class ListsBrowseResource extends BaseResourceComponent {
783
775
  cdr;
784
776
  tabService;
@@ -1406,8 +1398,8 @@ let ListsBrowseResource = class ListsBrowseResource extends BaseResourceComponen
1406
1398
  }
1407
1399
  static ɵfac = function ListsBrowseResource_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ListsBrowseResource)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.TabService), i0.ɵɵdirectiveInject(i2.MJNotificationService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.ListSharingService)); };
1408
1400
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListsBrowseResource, selectors: [["mj-lists-browse-resource"]], hostBindings: function ListsBrowseResource_HostBindings(rf, ctx) { if (rf & 1) {
1409
- i0.ɵɵlistener("click", function ListsBrowseResource_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); }, false, i0.ɵɵresolveDocument)("keydown.escape", function ListsBrowseResource_keydown_escape_HostBindingHandler() { return ctx.onEscapeKey(); }, false, i0.ɵɵresolveDocument);
1410
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 43, vars: 24, consts: [["categoryNodeTemplate", ""], ["entityInput", ""], [1, "lists-browse-container"], [1, "browse-header"], [1, "header-row"], [1, "header-title"], [1, "fa-solid", "fa-list-check"], [1, "btn-create", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "header-actions"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists...", 3, "ngModelChange", "ngModel"], ["class", "clear-search", 3, "click", 4, "ngIf"], [1, "filter-group"], ["title", "Filter by owner", 1, "filter-select", 3, "ngModelChange", "ngModel"], [3, "value", 4, "ngFor", "ngForOf"], ["title", "Filter by entity", 1, "filter-select", 3, "ngModelChange", "ngModel"], [1, "view-toggle-group"], ["title", "Table view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-table-list"], ["title", "Card view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "Category view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-folder-tree"], ["class", "loading-container", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], ["class", "empty-state search-empty", 4, "ngIf"], ["class", "browse-content", 4, "ngIf"], ["class", "context-menu-overlay", 3, "click", 4, "ngIf"], ["class", "context-menu", 3, "top", "left", 4, "ngIf"], ["class", "modal-overlay", 3, "click", 4, "ngIf"], ["class", "modal-dialog", 4, "ngIf"], ["class", "modal-dialog confirm-dialog", 4, "ngIf"], [3, "config", "visible", "complete", "cancel", 4, "ngIf"], ["class", "entity-dropdown-portal", 3, "top", "left", "width", "dropdown-above", 4, "ngIf"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [3, "value"], [1, "loading-container"], ["text", "Loading lists...", "size", "medium"], [1, "empty-state"], [1, "empty-state-icon-wrapper"], [1, "icon-bg"], [1, "empty-state-features"], [1, "feature-item"], [1, "fa-solid", "fa-check-circle"], [1, "btn-create-large", 3, "click"], [1, "empty-state", "search-empty"], [1, "empty-state-icon-wrapper", "search"], [1, "fa-solid", "fa-filter-circle-xmark"], [1, "empty-hint"], [1, "btn-clear", 3, "click"], [1, "browse-content"], [1, "results-header"], [1, "result-count"], [1, "sort-options"], [1, "filter-select", "sort-select", 3, "ngModelChange", "ngModel"], ["class", "lists-table", 4, "ngIf"], ["class", "lists-grid", "role", "list", "aria-label", "Lists", 4, "ngIf"], ["class", "category-tree", 4, "ngIf"], [1, "lists-table"], ["role", "grid", "aria-label", "Lists table"], ["scope", "col", 1, "col-name"], ["scope", "col", 1, "col-entity"], ["scope", "col", 1, "col-items"], ["scope", "col", 1, "col-sharing"], ["scope", "col", 1, "col-owner"], ["scope", "col", 1, "col-updated"], ["scope", "col", 1, "col-actions"], [1, "sr-only"], ["class", "list-row", "tabindex", "0", "role", "row", 3, "click", "keydown.enter", 4, "ngFor", "ngForOf"], ["tabindex", "0", "role", "row", 1, "list-row", 3, "click", "keydown.enter"], ["role", "gridcell", 1, "col-name"], [1, "name-cell"], ["aria-hidden", "true", 1, "list-icon"], [1, "name-content"], [1, "list-name"], ["class", "list-desc", 4, "ngIf"], ["role", "gridcell", 1, "col-entity"], [1, "entity-badge"], ["role", "gridcell", 1, "col-items"], ["role", "gridcell", 1, "col-sharing"], [4, "ngIf"], ["class", "sharing-private", 4, "ngIf"], ["role", "gridcell", 1, "col-owner"], [1, "owner-name"], ["role", "gridcell", 1, "col-updated"], ["role", "gridcell", 1, "col-actions"], ["class", "action-btn", "title", "More options", 3, "click", 4, "ngIf"], [1, "list-desc"], ["class", "sharing-indicator", 4, "ngIf"], [1, "sharing-indicator"], [1, "fa-solid", "fa-share-nodes"], [1, "share-count"], [1, "sharing-private"], [1, "fa-solid", "fa-lock"], ["title", "More options", 1, "action-btn", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-ellipsis-v"], ["role", "list", "aria-label", "Lists", 1, "lists-grid"], ["class", "list-card", "tabindex", "0", "role", "listitem", 3, "click", "keydown.enter", 4, "ngFor", "ngForOf"], ["tabindex", "0", "role", "listitem", 1, "list-card", 3, "click", "keydown.enter"], [1, "card-header"], ["aria-hidden", "true", 1, "card-icon"], ["class", "card-menu", 4, "ngIf"], [1, "card-body"], [1, "card-title"], ["class", "card-description", 4, "ngIf"], [1, "card-meta"], [1, "meta-item"], [1, "fa-solid", "fa-database"], [1, "fa-solid", "fa-hashtag"], [1, "card-footer"], [1, "owner-tag"], [1, "fa-solid", "fa-user"], [1, "card-footer-right"], [1, "date-info"], [1, "card-menu"], [1, "menu-btn", 3, "click"], [1, "card-description"], ["class", "sharing-badge", 3, "title", 4, "ngIf"], [1, "sharing-badge", 3, "title"], [1, "category-tree"], [4, "ngFor", "ngForOf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "category-section"], ["class", "category-header", 3, "click", 4, "ngIf"], ["class", "category-header uncategorized", 3, "click", 4, "ngIf"], ["class", "category-lists", "role", "list", 4, "ngIf"], [1, "category-header", 3, "click"], [1, "fa-solid", "fa-folder"], [1, "category-name"], [1, "category-count"], [1, "category-header", "uncategorized", 3, "click"], [1, "fa-solid", "fa-inbox"], ["role", "list", 1, "category-lists"], ["class", "list-row hierarchy-row", "tabindex", "0", "role", "listitem", 3, "click", "keydown.enter", 4, "ngFor", "ngForOf"], ["tabindex", "0", "role", "listitem", 1, "list-row", "hierarchy-row", 3, "click", "keydown.enter"], [1, "list-info"], [1, "list-meta"], ["class", "list-actions", 4, "ngIf"], [1, "list-actions"], [1, "action-btn", 3, "click"], [1, "context-menu-overlay", 3, "click"], [1, "context-menu"], [1, "menu-item", 3, "click"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-copy"], [1, "menu-divider"], [1, "menu-item", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [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"], ["class", "form-group", 4, "ngIf"], [1, "form-input", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "modal-footer"], [1, "btn-primary", 3, "click", "disabled"], ["class", "fa-solid fa-spinner fa-spin", 4, "ngIf"], [1, "btn-secondary", 3, "click", "disabled"], [1, "custom-select-wrapper"], ["type", "text", "placeholder", "Search and select an entity", 1, "form-input", 3, "ngModelChange", "focus", "ngModel"], ["type", "text", "disabled", "", 1, "form-input", 3, "value"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "modal-dialog", "confirm-dialog"], [1, "warning-text"], [1, "btn-danger", 3, "click", "disabled"], [3, "complete", "cancel", "config", "visible"], [1, "entity-dropdown-portal"], [1, "entity-dropdown-backdrop", 3, "click"], [1, "entity-dropdown-content"], ["class", "dropdown-item", 3, "click", 4, "ngFor", "ngForOf"], ["class", "dropdown-empty", 4, "ngIf"], [1, "dropdown-item", 3, "click"], [1, "dropdown-empty"]], template: function ListsBrowseResource_Template(rf, ctx) { if (rf & 1) {
1401
+ i0.ɵɵlistener("click", function ListsBrowseResource_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); }, i0.ɵɵresolveDocument)("keydown.escape", function ListsBrowseResource_keydown_escape_HostBindingHandler() { return ctx.onEscapeKey(); }, i0.ɵɵresolveDocument);
1402
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 45, vars: 22, consts: [["categoryNodeTemplate", ""], ["entityInput", ""], [1, "lists-browse-container"], [1, "browse-header"], [1, "header-row"], [1, "header-title"], [1, "fa-solid", "fa-list-check"], [1, "btn-create", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "header-actions"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "filter-group"], ["title", "Filter by owner", 1, "filter-select", 3, "ngModelChange", "ngModel"], [3, "value"], ["title", "Filter by entity", 1, "filter-select", 3, "ngModelChange", "ngModel"], [1, "view-toggle-group"], ["title", "Table view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-table-list"], ["title", "Card view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "Category view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-folder-tree"], [1, "loading-container"], [1, "empty-state"], [1, "empty-state", "search-empty"], [1, "browse-content"], [1, "context-menu-overlay"], [1, "context-menu", 3, "top", "left"], [1, "modal-overlay"], [1, "modal-dialog"], [1, "modal-dialog", "confirm-dialog"], [3, "config", "visible"], [1, "entity-dropdown-portal", 3, "top", "left", "width", "dropdown-above"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], ["text", "Loading lists...", "size", "medium"], [1, "empty-state-icon-wrapper"], [1, "icon-bg"], [1, "empty-state-features"], [1, "feature-item"], [1, "fa-solid", "fa-check-circle"], [1, "btn-create-large", 3, "click"], [1, "empty-state-icon-wrapper", "search"], [1, "fa-solid", "fa-filter-circle-xmark"], [1, "empty-hint"], [1, "btn-clear", 3, "click"], [1, "results-header"], [1, "result-count"], [1, "sort-options"], [1, "filter-select", "sort-select", 3, "ngModelChange", "ngModel"], [1, "lists-table"], ["role", "list", "aria-label", "Lists", 1, "lists-grid"], [1, "category-tree"], ["role", "grid", "aria-label", "Lists table"], ["scope", "col", 1, "col-name"], ["scope", "col", 1, "col-entity"], ["scope", "col", 1, "col-items"], ["scope", "col", 1, "col-sharing"], ["scope", "col", 1, "col-owner"], ["scope", "col", 1, "col-updated"], ["scope", "col", 1, "col-actions"], [1, "sr-only"], ["tabindex", "0", "role", "row", 1, "list-row"], ["tabindex", "0", "role", "row", 1, "list-row", 3, "click", "keydown.enter"], ["role", "gridcell", 1, "col-name"], [1, "name-cell"], ["aria-hidden", "true", 1, "list-icon"], [1, "name-content"], [1, "list-name"], [1, "list-desc"], ["role", "gridcell", 1, "col-entity"], [1, "entity-badge"], ["role", "gridcell", 1, "col-items"], ["role", "gridcell", 1, "col-sharing"], [1, "sharing-private"], ["role", "gridcell", 1, "col-owner"], [1, "owner-name"], ["role", "gridcell", 1, "col-updated"], ["role", "gridcell", 1, "col-actions"], ["title", "More options", 1, "action-btn"], [1, "sharing-indicator"], [1, "fa-solid", "fa-share-nodes"], [1, "share-count"], [1, "fa-solid", "fa-lock"], ["title", "More options", 1, "action-btn", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-ellipsis-v"], ["tabindex", "0", "role", "listitem", 1, "list-card"], ["tabindex", "0", "role", "listitem", 1, "list-card", 3, "click", "keydown.enter"], [1, "card-header"], ["aria-hidden", "true", 1, "card-icon"], [1, "card-menu"], [1, "card-body"], [1, "card-title"], [1, "card-description"], [1, "card-meta"], [1, "meta-item"], [1, "fa-solid", "fa-database"], [1, "fa-solid", "fa-hashtag"], [1, "card-footer"], [1, "owner-tag"], [1, "fa-solid", "fa-user"], [1, "card-footer-right"], [1, "date-info"], [1, "menu-btn", 3, "click"], [1, "sharing-badge", 3, "title"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "category-section"], [1, "category-header"], [1, "category-header", "uncategorized"], ["role", "list", 1, "category-lists"], [1, "category-header", 3, "click"], [1, "fa-solid", "fa-folder"], [1, "category-name"], [1, "category-count"], [1, "category-header", "uncategorized", 3, "click"], [1, "fa-solid", "fa-inbox"], ["tabindex", "0", "role", "listitem", 1, "list-row", "hierarchy-row"], ["tabindex", "0", "role", "listitem", 1, "list-row", "hierarchy-row", 3, "click", "keydown.enter"], [1, "list-info"], [1, "list-meta"], [1, "list-actions"], [1, "action-btn", 3, "click"], [1, "context-menu-overlay", 3, "click"], [1, "context-menu"], [1, "menu-item", 3, "click"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-copy"], [1, "menu-divider"], [1, "menu-item", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [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-input", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [1, "modal-footer"], [1, "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "btn-secondary", 3, "click", "disabled"], [1, "custom-select-wrapper"], ["type", "text", "placeholder", "Search and select an entity", 1, "form-input", 3, "ngModelChange", "focus", "ngModel"], ["type", "text", "disabled", "", 1, "form-input", 3, "value"], [1, "warning-text"], [1, "btn-danger", 3, "click", "disabled"], [3, "complete", "cancel", "config", "visible"], [1, "entity-dropdown-portal"], [1, "entity-dropdown-backdrop", 3, "click"], [1, "entity-dropdown-content"], [1, "dropdown-item"], [1, "dropdown-empty"], [1, "dropdown-item", 3, "click"]], template: function ListsBrowseResource_Template(rf, ctx) { if (rf & 1) {
1411
1403
  const _r1 = i0.ɵɵgetCurrentView();
1412
1404
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5);
1413
1405
  i0.ɵɵelement(4, "i", 6);
@@ -1426,76 +1418,88 @@ let ListsBrowseResource = class ListsBrowseResource extends BaseResourceComponen
1426
1418
  i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.searchTerm, $event) || (ctx.searchTerm = $event); return i0.ɵɵresetView($event); });
1427
1419
  i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSearchChange($event)); });
1428
1420
  i0.ɵɵelementEnd();
1429
- i0.ɵɵtemplate(15, ListsBrowseResource_button_15_Template, 2, 0, "button", 13);
1421
+ i0.ɵɵconditionalCreate(15, ListsBrowseResource_Conditional_15_Template, 2, 0, "button", 13);
1430
1422
  i0.ɵɵelementEnd();
1431
1423
  i0.ɵɵelementStart(16, "div", 14)(17, "select", 15);
1432
1424
  i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_17_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.selectedOwner, $event) || (ctx.selectedOwner = $event); return i0.ɵɵresetView($event); });
1433
1425
  i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_17_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOwnerFilterChange($event)); });
1434
- i0.ɵɵtemplate(18, ListsBrowseResource_option_18_Template, 2, 2, "option", 16);
1426
+ i0.ɵɵrepeaterCreate(18, ListsBrowseResource_For_19_Template, 2, 2, "option", 16, i0.ɵɵrepeaterTrackByIdentity);
1435
1427
  i0.ɵɵelementEnd()();
1436
- i0.ɵɵelementStart(19, "div", 14)(20, "select", 17);
1437
- i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.selectedEntity, $event) || (ctx.selectedEntity = $event); return i0.ɵɵresetView($event); });
1438
- i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEntityFilterChange($event)); });
1439
- i0.ɵɵtemplate(21, ListsBrowseResource_option_21_Template, 2, 2, "option", 16);
1428
+ i0.ɵɵelementStart(20, "div", 14)(21, "select", 17);
1429
+ i0.ɵɵtwoWayListener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_21_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.selectedEntity, $event) || (ctx.selectedEntity = $event); return i0.ɵɵresetView($event); });
1430
+ i0.ɵɵlistener("ngModelChange", function ListsBrowseResource_Template_select_ngModelChange_21_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEntityFilterChange($event)); });
1431
+ i0.ɵɵrepeaterCreate(22, ListsBrowseResource_For_23_Template, 2, 2, "option", 16, i0.ɵɵrepeaterTrackByIdentity);
1440
1432
  i0.ɵɵelementEnd()();
1441
- i0.ɵɵelementStart(22, "div", 18)(23, "button", 19);
1442
- i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("table")); });
1443
- i0.ɵɵelement(24, "i", 20);
1433
+ i0.ɵɵelementStart(24, "div", 18)(25, "button", 19);
1434
+ i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("table")); });
1435
+ i0.ɵɵelement(26, "i", 20);
1444
1436
  i0.ɵɵelementEnd();
1445
- i0.ɵɵelementStart(25, "button", 21);
1446
- i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("card")); });
1447
- i0.ɵɵelement(26, "i", 22);
1437
+ i0.ɵɵelementStart(27, "button", 21);
1438
+ i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_27_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("card")); });
1439
+ i0.ɵɵelement(28, "i", 22);
1448
1440
  i0.ɵɵelementEnd();
1449
- i0.ɵɵelementStart(27, "button", 23);
1450
- i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_27_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("hierarchy")); });
1451
- i0.ɵɵelement(28, "i", 24);
1441
+ i0.ɵɵelementStart(29, "button", 23);
1442
+ i0.ɵɵlistener("click", function ListsBrowseResource_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setViewMode("hierarchy")); });
1443
+ i0.ɵɵelement(30, "i", 24);
1452
1444
  i0.ɵɵelementEnd()()()();
1453
- i0.ɵɵtemplate(29, ListsBrowseResource_div_29_Template, 2, 0, "div", 25)(30, ListsBrowseResource_div_30_Template, 24, 0, "div", 26)(31, ListsBrowseResource_div_31_Template, 11, 0, "div", 27)(32, ListsBrowseResource_div_32_Template, 12, 7, "div", 28)(33, ListsBrowseResource_ng_template_33_Template, 5, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(35, ListsBrowseResource_div_35_Template, 1, 0, "div", 29)(36, ListsBrowseResource_div_36_Template, 14, 4, "div", 30)(37, ListsBrowseResource_div_37_Template, 1, 0, "div", 31)(38, ListsBrowseResource_div_38_Template, 30, 12, "div", 32)(39, ListsBrowseResource_div_39_Template, 1, 0, "div", 31)(40, ListsBrowseResource_div_40_Template, 20, 5, "div", 33)(41, ListsBrowseResource_mj_list_share_dialog_41_Template, 1, 2, "mj-list-share-dialog", 34)(42, ListsBrowseResource_div_42_Template, 5, 12, "div", 35);
1445
+ i0.ɵɵconditionalCreate(31, ListsBrowseResource_Conditional_31_Template, 2, 0, "div", 25);
1446
+ i0.ɵɵconditionalCreate(32, ListsBrowseResource_Conditional_32_Template, 24, 0, "div", 26);
1447
+ i0.ɵɵconditionalCreate(33, ListsBrowseResource_Conditional_33_Template, 11, 0, "div", 27);
1448
+ i0.ɵɵconditionalCreate(34, ListsBrowseResource_Conditional_34_Template, 13, 6, "div", 28);
1449
+ i0.ɵɵtemplate(35, ListsBrowseResource_ng_template_35_Template, 5, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1450
+ i0.ɵɵconditionalCreate(37, ListsBrowseResource_Conditional_37_Template, 1, 0, "div", 29);
1451
+ i0.ɵɵconditionalCreate(38, ListsBrowseResource_Conditional_38_Template, 14, 4, "div", 30);
1452
+ i0.ɵɵconditionalCreate(39, ListsBrowseResource_Conditional_39_Template, 1, 0, "div", 31);
1453
+ i0.ɵɵconditionalCreate(40, ListsBrowseResource_Conditional_40_Template, 31, 11, "div", 32);
1454
+ i0.ɵɵconditionalCreate(41, ListsBrowseResource_Conditional_41_Template, 1, 0, "div", 31);
1455
+ i0.ɵɵconditionalCreate(42, ListsBrowseResource_Conditional_42_Template, 20, 5, "div", 33);
1456
+ i0.ɵɵconditionalCreate(43, ListsBrowseResource_Conditional_43_Template, 1, 2, "mj-list-share-dialog", 34);
1457
+ i0.ɵɵconditionalCreate(44, ListsBrowseResource_Conditional_44_Template, 6, 11, "div", 35);
1454
1458
  i0.ɵɵelementEnd();
1455
1459
  } if (rf & 2) {
1456
1460
  i0.ɵɵadvance(14);
1457
1461
  i0.ɵɵtwoWayProperty("ngModel", ctx.searchTerm);
1458
1462
  i0.ɵɵadvance();
1459
- i0.ɵɵproperty("ngIf", ctx.searchTerm);
1463
+ i0.ɵɵconditional(ctx.searchTerm ? 15 : -1);
1460
1464
  i0.ɵɵadvance(2);
1461
1465
  i0.ɵɵtwoWayProperty("ngModel", ctx.selectedOwner);
1462
1466
  i0.ɵɵadvance();
1463
- i0.ɵɵproperty("ngForOf", ctx.ownerOptions);
1464
- i0.ɵɵadvance(2);
1467
+ i0.ɵɵrepeater(ctx.ownerOptions);
1468
+ i0.ɵɵadvance(3);
1465
1469
  i0.ɵɵtwoWayProperty("ngModel", ctx.selectedEntity);
1466
1470
  i0.ɵɵadvance();
1467
- i0.ɵɵproperty("ngForOf", ctx.entityOptions);
1468
- i0.ɵɵadvance(2);
1471
+ i0.ɵɵrepeater(ctx.entityOptions);
1472
+ i0.ɵɵadvance(3);
1469
1473
  i0.ɵɵclassProp("active", ctx.viewMode === "table");
1470
1474
  i0.ɵɵadvance(2);
1471
1475
  i0.ɵɵclassProp("active", ctx.viewMode === "card");
1472
1476
  i0.ɵɵadvance(2);
1473
1477
  i0.ɵɵclassProp("active", ctx.viewMode === "hierarchy");
1474
1478
  i0.ɵɵadvance(2);
1475
- i0.ɵɵproperty("ngIf", ctx.isLoading);
1479
+ i0.ɵɵconditional(ctx.isLoading ? 31 : -1);
1476
1480
  i0.ɵɵadvance();
1477
- i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.allLists.length === 0);
1481
+ i0.ɵɵconditional(!ctx.isLoading && ctx.allLists.length === 0 ? 32 : -1);
1478
1482
  i0.ɵɵadvance();
1479
- i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.allLists.length > 0 && ctx.filteredLists.length === 0);
1483
+ i0.ɵɵconditional(!ctx.isLoading && ctx.allLists.length > 0 && ctx.filteredLists.length === 0 ? 33 : -1);
1480
1484
  i0.ɵɵadvance();
1481
- i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.filteredLists.length > 0);
1485
+ i0.ɵɵconditional(!ctx.isLoading && ctx.filteredLists.length > 0 ? 34 : -1);
1482
1486
  i0.ɵɵadvance(3);
1483
- i0.ɵɵproperty("ngIf", ctx.showContextMenu);
1487
+ i0.ɵɵconditional(ctx.showContextMenu ? 37 : -1);
1484
1488
  i0.ɵɵadvance();
1485
- i0.ɵɵproperty("ngIf", ctx.showContextMenu);
1489
+ i0.ɵɵconditional(ctx.showContextMenu ? 38 : -1);
1486
1490
  i0.ɵɵadvance();
1487
- i0.ɵɵproperty("ngIf", ctx.showCreateDialog);
1491
+ i0.ɵɵconditional(ctx.showCreateDialog ? 39 : -1);
1488
1492
  i0.ɵɵadvance();
1489
- i0.ɵɵproperty("ngIf", ctx.showCreateDialog);
1493
+ i0.ɵɵconditional(ctx.showCreateDialog ? 40 : -1);
1490
1494
  i0.ɵɵadvance();
1491
- i0.ɵɵproperty("ngIf", ctx.showDeleteConfirm);
1495
+ i0.ɵɵconditional(ctx.showDeleteConfirm ? 41 : -1);
1492
1496
  i0.ɵɵadvance();
1493
- i0.ɵɵproperty("ngIf", ctx.showDeleteConfirm);
1497
+ i0.ɵɵconditional(ctx.showDeleteConfirm ? 42 : -1);
1494
1498
  i0.ɵɵadvance();
1495
- i0.ɵɵproperty("ngIf", ctx.shareDialogConfig);
1499
+ i0.ɵɵconditional(ctx.shareDialogConfig ? 43 : -1);
1496
1500
  i0.ɵɵadvance();
1497
- i0.ɵɵproperty("ngIf", ctx.showEntityDropdown && !ctx.editingList);
1498
- } }, dependencies: [i4.NgForOf, i4.NgIf, i4.NgTemplateOutlet, i5.NgSelectOption, i5.ɵNgSelectMultipleOption, i5.DefaultValueAccessor, i5.SelectControlValueAccessor, i5.NgControlStatus, i5.NgModel, i6.LoadingComponent, i3.ListShareDialogComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-browse-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .browse-header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 200px;\n max-width: 300px;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 100%;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n }\n\n .filter-group {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .filter-group label {\n font-size: 13px;\n color: #666;\n }\n\n .filter-select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n background: white;\n cursor: pointer;\n min-width: 120px;\n }\n\n .filter-select:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .sort-select {\n min-width: 140px;\n }\n\n .view-toggle-group {\n display: flex;\n border: 1px solid #ddd;\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-toggle {\n padding: 8px 12px;\n background: white;\n border: none;\n border-right: 1px solid #ddd;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:last-child {\n border-right: none;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n color: white;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .browse-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .results-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n\n .result-count {\n font-size: 14px;\n color: #666;\n }\n\n .sort-options {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .sort-options label {\n font-size: 13px;\n color: #666;\n }\n\n /* Table View */\n .lists-table {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .lists-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .lists-table th {\n text-align: left;\n padding: 12px 16px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .lists-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n font-size: 14px;\n color: #333;\n }\n\n .list-row {\n cursor: pointer;\n transition: background 0.15s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e8f4fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-row:last-child td {\n border-bottom: none;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n .col-name { width: 30%; }\n .col-entity { width: 15%; }\n .col-items { width: 8%; text-align: center; }\n .col-sharing { width: 8%; text-align: center; }\n .col-owner { width: 14%; }\n .col-updated { width: 15%; }\n .col-actions { width: 10%; text-align: right; }\n\n /* Sharing indicators */\n .sharing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #2196F3;\n font-size: 13px;\n }\n\n .sharing-indicator i {\n font-size: 14px;\n }\n\n .share-count {\n font-weight: 500;\n }\n\n .sharing-private {\n color: #999;\n font-size: 13px;\n }\n\n .sharing-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #e3f2fd;\n border-radius: 50%;\n color: #2196F3;\n font-size: 11px;\n }\n\n .card-footer-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .name-cell {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .list-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .name-content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .list-name {\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-desc {\n font-size: 12px;\n color: #999;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .entity-badge {\n display: inline-block;\n padding: 2px 8px;\n background: #e8f4fd;\n border-radius: 4px;\n font-size: 12px;\n color: #1976D2;\n }\n\n .owner-name {\n color: #666;\n }\n\n .owner-name.is-me {\n color: #2196F3;\n font-weight: 500;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 6px 10px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Card View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .owner-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n }\n\n .owner-tag.is-me {\n color: #2196F3;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Hierarchy View */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .hierarchy-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .hierarchy-row:hover {\n background: #f5f5f5;\n }\n\n .hierarchy-row:focus {\n background: #e3f2fd;\n }\n\n .hierarchy-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .hierarchy-row:hover .list-actions {\n opacity: 1;\n }\n\n /* Context Menu */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\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 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\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: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\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: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\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 transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\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 transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002;\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .header-row {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .header-actions {\n flex-direction: column;\n align-items: stretch;\n }\n\n .search-box {\n max-width: none;\n }\n\n .filter-group {\n width: 100%;\n }\n\n .filter-select {\n flex: 1;\n width: 100%;\n }\n\n .view-toggle-group {\n justify-content: center;\n }\n\n .lists-table {\n overflow-x: auto;\n }\n\n .col-entity, .col-items, .col-updated {\n display: none;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "], encapsulation: 2 });
1501
+ i0.ɵɵconditional(ctx.showEntityDropdown && !ctx.editingList ? 44 : -1);
1502
+ } }, dependencies: [i4.NgTemplateOutlet, i5.NgSelectOption, i5.ɵNgSelectMultipleOption, i5.DefaultValueAccessor, i5.SelectControlValueAccessor, i5.NgControlStatus, i5.NgModel, i6.LoadingComponent, i3.ListShareDialogComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-browse-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .browse-header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 200px;\n max-width: 300px;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 100%;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n }\n\n .filter-group {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .filter-group label {\n font-size: 13px;\n color: #666;\n }\n\n .filter-select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n background: white;\n cursor: pointer;\n min-width: 120px;\n }\n\n .filter-select:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .sort-select {\n min-width: 140px;\n }\n\n .view-toggle-group {\n display: flex;\n border: 1px solid #ddd;\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-toggle {\n padding: 8px 12px;\n background: white;\n border: none;\n border-right: 1px solid #ddd;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:last-child {\n border-right: none;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n color: white;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .browse-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .results-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n\n .result-count {\n font-size: 14px;\n color: #666;\n }\n\n .sort-options {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .sort-options label {\n font-size: 13px;\n color: #666;\n }\n\n /* Table View */\n .lists-table {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .lists-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .lists-table th {\n text-align: left;\n padding: 12px 16px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .lists-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n font-size: 14px;\n color: #333;\n }\n\n .list-row {\n cursor: pointer;\n transition: background 0.15s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e8f4fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-row:last-child td {\n border-bottom: none;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n .col-name { width: 30%; }\n .col-entity { width: 15%; }\n .col-items { width: 8%; text-align: center; }\n .col-sharing { width: 8%; text-align: center; }\n .col-owner { width: 14%; }\n .col-updated { width: 15%; }\n .col-actions { width: 10%; text-align: right; }\n\n /* Sharing indicators */\n .sharing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #2196F3;\n font-size: 13px;\n }\n\n .sharing-indicator i {\n font-size: 14px;\n }\n\n .share-count {\n font-weight: 500;\n }\n\n .sharing-private {\n color: #999;\n font-size: 13px;\n }\n\n .sharing-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #e3f2fd;\n border-radius: 50%;\n color: #2196F3;\n font-size: 11px;\n }\n\n .card-footer-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .name-cell {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .list-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .name-content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .list-name {\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-desc {\n font-size: 12px;\n color: #999;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .entity-badge {\n display: inline-block;\n padding: 2px 8px;\n background: #e8f4fd;\n border-radius: 4px;\n font-size: 12px;\n color: #1976D2;\n }\n\n .owner-name {\n color: #666;\n }\n\n .owner-name.is-me {\n color: #2196F3;\n font-weight: 500;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 6px 10px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Card View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .owner-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n }\n\n .owner-tag.is-me {\n color: #2196F3;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Hierarchy View */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .hierarchy-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .hierarchy-row:hover {\n background: #f5f5f5;\n }\n\n .hierarchy-row:focus {\n background: #e3f2fd;\n }\n\n .hierarchy-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .hierarchy-row:hover .list-actions {\n opacity: 1;\n }\n\n /* Context Menu */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\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 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\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: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\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: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\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 transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\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 transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002;\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .header-row {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .header-actions {\n flex-direction: column;\n align-items: stretch;\n }\n\n .search-box {\n max-width: none;\n }\n\n .filter-group {\n width: 100%;\n }\n\n .filter-select {\n flex: 1;\n width: 100%;\n }\n\n .view-toggle-group {\n justify-content: center;\n }\n\n .lists-table {\n overflow-x: auto;\n }\n\n .col-entity, .col-items, .col-updated {\n display: none;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "], encapsulation: 2 });
1499
1503
  };
1500
1504
  ListsBrowseResource = __decorate([
1501
1505
  RegisterClass(BaseResourceComponent, 'ListsBrowseResource')
@@ -1503,7 +1507,7 @@ ListsBrowseResource = __decorate([
1503
1507
  export { ListsBrowseResource };
1504
1508
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListsBrowseResource, [{
1505
1509
  type: Component,
1506
- args: [{ selector: 'mj-lists-browse-resource', template: `
1510
+ args: [{ standalone: false, selector: 'mj-lists-browse-resource', template: `
1507
1511
  <div class="lists-browse-container">
1508
1512
  <!-- Header -->
1509
1513
  <div class="browse-header">
@@ -1517,7 +1521,7 @@ export { ListsBrowseResource };
1517
1521
  <span>New List</span>
1518
1522
  </button>
1519
1523
  </div>
1520
-
1524
+
1521
1525
  <div class="header-actions">
1522
1526
  <div class="search-box">
1523
1527
  <i class="fa-solid fa-search"></i>
@@ -1526,31 +1530,37 @@ export { ListsBrowseResource };
1526
1530
  placeholder="Search lists..."
1527
1531
  [(ngModel)]="searchTerm"
1528
1532
  (ngModelChange)="onSearchChange($event)" />
1529
- <button *ngIf="searchTerm" class="clear-search" (click)="clearSearch()">
1530
- <i class="fa-solid fa-times"></i>
1531
- </button>
1533
+ @if (searchTerm) {
1534
+ <button class="clear-search" (click)="clearSearch()">
1535
+ <i class="fa-solid fa-times"></i>
1536
+ </button>
1537
+ }
1532
1538
  </div>
1533
-
1539
+
1534
1540
  <div class="filter-group">
1535
1541
  <select
1536
1542
  [(ngModel)]="selectedOwner"
1537
1543
  (ngModelChange)="onOwnerFilterChange($event)"
1538
1544
  class="filter-select"
1539
1545
  title="Filter by owner">
1540
- <option *ngFor="let opt of ownerOptions" [value]="opt.value">{{opt.name}}</option>
1546
+ @for (opt of ownerOptions; track opt) {
1547
+ <option [value]="opt.value">{{opt.name}}</option>
1548
+ }
1541
1549
  </select>
1542
1550
  </div>
1543
-
1551
+
1544
1552
  <div class="filter-group">
1545
1553
  <select
1546
1554
  [(ngModel)]="selectedEntity"
1547
1555
  (ngModelChange)="onEntityFilterChange($event)"
1548
1556
  class="filter-select"
1549
1557
  title="Filter by entity">
1550
- <option *ngFor="let opt of entityOptions" [value]="opt.value">{{opt.name}}</option>
1558
+ @for (opt of entityOptions; track opt) {
1559
+ <option [value]="opt.value">{{opt.name}}</option>
1560
+ }
1551
1561
  </select>
1552
1562
  </div>
1553
-
1563
+
1554
1564
  <div class="view-toggle-group">
1555
1565
  <button
1556
1566
  class="view-toggle"
@@ -1576,395 +1586,461 @@ export { ListsBrowseResource };
1576
1586
  </div>
1577
1587
  </div>
1578
1588
  </div>
1579
-
1589
+
1580
1590
  <!-- Loading State -->
1581
- <div class="loading-container" *ngIf="isLoading">
1582
- <mj-loading text="Loading lists..." size="medium"></mj-loading>
1583
- </div>
1584
-
1585
- <!-- Empty State - No Lists -->
1586
- <div class="empty-state" *ngIf="!isLoading && allLists.length === 0">
1587
- <div class="empty-state-icon-wrapper">
1588
- <div class="icon-bg"></div>
1589
- <i class="fa-solid fa-list-check"></i>
1591
+ @if (isLoading) {
1592
+ <div class="loading-container">
1593
+ <mj-loading text="Loading lists..." size="medium"></mj-loading>
1590
1594
  </div>
1591
- <h3>No Lists Yet</h3>
1592
- <p>Lists help you organize and track groups of records across your data.</p>
1593
- <div class="empty-state-features">
1594
- <div class="feature-item">
1595
- <i class="fa-solid fa-check-circle"></i>
1596
- <span>Group records from any entity</span>
1597
- </div>
1598
- <div class="feature-item">
1599
- <i class="fa-solid fa-check-circle"></i>
1600
- <span>Organize with categories</span>
1595
+ }
1596
+
1597
+ <!-- Empty State - No Lists -->
1598
+ @if (!isLoading && allLists.length === 0) {
1599
+ <div class="empty-state">
1600
+ <div class="empty-state-icon-wrapper">
1601
+ <div class="icon-bg"></div>
1602
+ <i class="fa-solid fa-list-check"></i>
1601
1603
  </div>
1602
- <div class="feature-item">
1603
- <i class="fa-solid fa-check-circle"></i>
1604
- <span>Quick access from any view</span>
1604
+ <h3>No Lists Yet</h3>
1605
+ <p>Lists help you organize and track groups of records across your data.</p>
1606
+ <div class="empty-state-features">
1607
+ <div class="feature-item">
1608
+ <i class="fa-solid fa-check-circle"></i>
1609
+ <span>Group records from any entity</span>
1610
+ </div>
1611
+ <div class="feature-item">
1612
+ <i class="fa-solid fa-check-circle"></i>
1613
+ <span>Organize with categories</span>
1614
+ </div>
1615
+ <div class="feature-item">
1616
+ <i class="fa-solid fa-check-circle"></i>
1617
+ <span>Quick access from any view</span>
1618
+ </div>
1605
1619
  </div>
1620
+ <button class="btn-create-large" (click)="createNewList()">
1621
+ <i class="fa-solid fa-plus"></i>
1622
+ Create Your First List
1623
+ </button>
1606
1624
  </div>
1607
- <button class="btn-create-large" (click)="createNewList()">
1608
- <i class="fa-solid fa-plus"></i>
1609
- Create Your First List
1610
- </button>
1611
- </div>
1612
-
1625
+ }
1626
+
1613
1627
  <!-- Empty State - No Results -->
1614
- <div class="empty-state search-empty" *ngIf="!isLoading && allLists.length > 0 && filteredLists.length === 0">
1615
- <div class="empty-state-icon-wrapper search">
1616
- <i class="fa-solid fa-filter-circle-xmark"></i>
1628
+ @if (!isLoading && allLists.length > 0 && filteredLists.length === 0) {
1629
+ <div class="empty-state search-empty">
1630
+ <div class="empty-state-icon-wrapper search">
1631
+ <i class="fa-solid fa-filter-circle-xmark"></i>
1632
+ </div>
1633
+ <h3>No Results Found</h3>
1634
+ <p>No lists match your current filters.</p>
1635
+ <p class="empty-hint">Try adjusting your search or filters.</p>
1636
+ <button class="btn-clear" (click)="clearFilters()">Clear All Filters</button>
1617
1637
  </div>
1618
- <h3>No Results Found</h3>
1619
- <p>No lists match your current filters.</p>
1620
- <p class="empty-hint">Try adjusting your search or filters.</p>
1621
- <button class="btn-clear" (click)="clearFilters()">Clear All Filters</button>
1622
- </div>
1623
-
1638
+ }
1639
+
1624
1640
  <!-- Results Content -->
1625
- <div class="browse-content" *ngIf="!isLoading && filteredLists.length > 0">
1626
- <div class="results-header">
1627
- <span class="result-count">{{filteredLists.length}} list{{filteredLists.length !== 1 ? 's' : ''}}</span>
1628
- <div class="sort-options">
1629
- <label>Sort:</label>
1630
- <select
1631
- [(ngModel)]="selectedSort"
1632
- (ngModelChange)="onSortChange($event)"
1633
- class="filter-select sort-select">
1634
- <option *ngFor="let opt of sortOptions" [value]="opt.value">{{opt.name}}</option>
1635
- </select>
1641
+ @if (!isLoading && filteredLists.length > 0) {
1642
+ <div class="browse-content">
1643
+ <div class="results-header">
1644
+ <span class="result-count">{{filteredLists.length}} list{{filteredLists.length !== 1 ? 's' : ''}}</span>
1645
+ <div class="sort-options">
1646
+ <label>Sort:</label>
1647
+ <select
1648
+ [(ngModel)]="selectedSort"
1649
+ (ngModelChange)="onSortChange($event)"
1650
+ class="filter-select sort-select">
1651
+ @for (opt of sortOptions; track opt) {
1652
+ <option [value]="opt.value">{{opt.name}}</option>
1653
+ }
1654
+ </select>
1655
+ </div>
1636
1656
  </div>
1637
- </div>
1638
-
1639
- <!-- Table View -->
1640
- <div class="lists-table" *ngIf="viewMode === 'table'">
1641
- <table role="grid" aria-label="Lists table">
1642
- <thead>
1643
- <tr>
1644
- <th class="col-name" scope="col">Name</th>
1645
- <th class="col-entity" scope="col">Entity</th>
1646
- <th class="col-items" scope="col">Items</th>
1647
- <th class="col-sharing" scope="col">Shared</th>
1648
- <th class="col-owner" scope="col">Owner</th>
1649
- <th class="col-updated" scope="col">Updated</th>
1650
- <th class="col-actions" scope="col"><span class="sr-only">Actions</span></th>
1651
- </tr>
1652
- </thead>
1653
- <tbody>
1654
- <tr
1655
- *ngFor="let item of filteredLists"
1656
- (click)="openList(item)"
1657
- (keydown.enter)="openList(item)"
1658
- class="list-row"
1659
- tabindex="0"
1660
- role="row">
1661
- <td class="col-name" role="gridcell">
1662
- <div class="name-cell">
1663
- <div class="list-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1657
+ <!-- Table View -->
1658
+ @if (viewMode === 'table') {
1659
+ <div class="lists-table">
1660
+ <table role="grid" aria-label="Lists table">
1661
+ <thead>
1662
+ <tr>
1663
+ <th class="col-name" scope="col">Name</th>
1664
+ <th class="col-entity" scope="col">Entity</th>
1665
+ <th class="col-items" scope="col">Items</th>
1666
+ <th class="col-sharing" scope="col">Shared</th>
1667
+ <th class="col-owner" scope="col">Owner</th>
1668
+ <th class="col-updated" scope="col">Updated</th>
1669
+ <th class="col-actions" scope="col"><span class="sr-only">Actions</span></th>
1670
+ </tr>
1671
+ </thead>
1672
+ <tbody>
1673
+ @for (item of filteredLists; track item) {
1674
+ <tr
1675
+ (click)="openList(item)"
1676
+ (keydown.enter)="openList(item)"
1677
+ class="list-row"
1678
+ tabindex="0"
1679
+ role="row">
1680
+ <td class="col-name" role="gridcell">
1681
+ <div class="name-cell">
1682
+ <div class="list-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1683
+ <i [class]="getEntityIcon(item.entityName)"></i>
1684
+ </div>
1685
+ <div class="name-content">
1686
+ <span class="list-name">{{item.list.Name}}</span>
1687
+ @if (item.list.Description) {
1688
+ <span class="list-desc">{{item.list.Description}}</span>
1689
+ }
1690
+ </div>
1691
+ </div>
1692
+ </td>
1693
+ <td class="col-entity" role="gridcell">
1694
+ <span class="entity-badge">{{item.entityName}}</span>
1695
+ </td>
1696
+ <td class="col-items" role="gridcell">{{item.itemCount}}</td>
1697
+ <td class="col-sharing" role="gridcell">
1698
+ @if (item.sharingInfo; as sharing) {
1699
+ @if (sharing.totalShares > 0) {
1700
+ <span class="sharing-indicator">
1701
+ <i class="fa-solid fa-share-nodes"></i>
1702
+ <span class="share-count">{{sharing.totalShares}}</span>
1703
+ </span>
1704
+ }
1705
+ @if (sharing.totalShares === 0) {
1706
+ <span class="sharing-private">
1707
+ <i class="fa-solid fa-lock"></i>
1708
+ </span>
1709
+ }
1710
+ }
1711
+ @if (!item.sharingInfo) {
1712
+ <span class="sharing-private">
1713
+ <i class="fa-solid fa-lock"></i>
1714
+ </span>
1715
+ }
1716
+ </td>
1717
+ <td class="col-owner" role="gridcell">
1718
+ <span class="owner-name" [class.is-me]="item.isOwner">
1719
+ {{item.isOwner ? 'You' : item.ownerName}}
1720
+ </span>
1721
+ </td>
1722
+ <td class="col-updated" role="gridcell">{{formatDate(item.list.__mj_UpdatedAt)}}</td>
1723
+ <td class="col-actions" role="gridcell">
1724
+ @if (item.isOwner) {
1725
+ <button
1726
+ class="action-btn"
1727
+ (click)="openListMenu($event, item)"
1728
+ title="More options">
1729
+ <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1730
+ </button>
1731
+ }
1732
+ </td>
1733
+ </tr>
1734
+ }
1735
+ </tbody>
1736
+ </table>
1737
+ </div>
1738
+ }
1739
+ <!-- Card View -->
1740
+ @if (viewMode === 'card') {
1741
+ <div class="lists-grid" role="list" aria-label="Lists">
1742
+ @for (item of filteredLists; track item) {
1743
+ <div
1744
+ class="list-card"
1745
+ (click)="openList(item)"
1746
+ (keydown.enter)="openList(item)"
1747
+ tabindex="0"
1748
+ role="listitem">
1749
+ <div class="card-header">
1750
+ <div class="card-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1664
1751
  <i [class]="getEntityIcon(item.entityName)"></i>
1665
1752
  </div>
1666
- <div class="name-content">
1667
- <span class="list-name">{{item.list.Name}}</span>
1668
- <span class="list-desc" *ngIf="item.list.Description">{{item.list.Description}}</span>
1753
+ @if (item.isOwner) {
1754
+ <div class="card-menu">
1755
+ <button class="menu-btn" (click)="openListMenu($event, item)">
1756
+ <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1757
+ </button>
1758
+ </div>
1759
+ }
1760
+ </div>
1761
+ <div class="card-body">
1762
+ <h3 class="card-title">{{item.list.Name}}</h3>
1763
+ @if (item.list.Description) {
1764
+ <p class="card-description">{{item.list.Description}}</p>
1765
+ }
1766
+ <div class="card-meta">
1767
+ <span class="meta-item">
1768
+ <i class="fa-solid fa-database"></i>
1769
+ {{item.entityName}}
1770
+ </span>
1771
+ <span class="meta-item">
1772
+ <i class="fa-solid fa-hashtag"></i>
1773
+ {{item.itemCount}} item{{item.itemCount !== 1 ? 's' : ''}}
1774
+ </span>
1669
1775
  </div>
1670
1776
  </div>
1671
- </td>
1672
- <td class="col-entity" role="gridcell">
1673
- <span class="entity-badge">{{item.entityName}}</span>
1674
- </td>
1675
- <td class="col-items" role="gridcell">{{item.itemCount}}</td>
1676
- <td class="col-sharing" role="gridcell">
1677
- <ng-container *ngIf="item.sharingInfo as sharing">
1678
- <span class="sharing-indicator" *ngIf="sharing.totalShares > 0">
1679
- <i class="fa-solid fa-share-nodes"></i>
1680
- <span class="share-count">{{sharing.totalShares}}</span>
1681
- </span>
1682
- <span class="sharing-private" *ngIf="sharing.totalShares === 0">
1683
- <i class="fa-solid fa-lock"></i>
1777
+ <div class="card-footer">
1778
+ <span class="owner-tag" [class.is-me]="item.isOwner">
1779
+ <i class="fa-solid fa-user"></i>
1780
+ {{item.isOwner ? 'You' : item.ownerName}}
1684
1781
  </span>
1685
- </ng-container>
1686
- <span class="sharing-private" *ngIf="!item.sharingInfo">
1687
- <i class="fa-solid fa-lock"></i>
1688
- </span>
1689
- </td>
1690
- <td class="col-owner" role="gridcell">
1691
- <span class="owner-name" [class.is-me]="item.isOwner">
1692
- {{item.isOwner ? 'You' : item.ownerName}}
1693
- </span>
1694
- </td>
1695
- <td class="col-updated" role="gridcell">{{formatDate(item.list.__mj_UpdatedAt)}}</td>
1696
- <td class="col-actions" role="gridcell">
1697
- <button
1698
- class="action-btn"
1699
- *ngIf="item.isOwner"
1700
- (click)="openListMenu($event, item)"
1701
- title="More options">
1702
- <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1703
- </button>
1704
- </td>
1705
- </tr>
1706
- </tbody>
1707
- </table>
1708
- </div>
1709
-
1710
- <!-- Card View -->
1711
- <div class="lists-grid" *ngIf="viewMode === 'card'" role="list" aria-label="Lists">
1712
- <div
1713
- class="list-card"
1714
- *ngFor="let item of filteredLists"
1715
- (click)="openList(item)"
1716
- (keydown.enter)="openList(item)"
1717
- tabindex="0"
1718
- role="listitem">
1719
- <div class="card-header">
1720
- <div class="card-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1721
- <i [class]="getEntityIcon(item.entityName)"></i>
1722
- </div>
1723
- <div class="card-menu" *ngIf="item.isOwner">
1724
- <button class="menu-btn" (click)="openListMenu($event, item)">
1725
- <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1726
- </button>
1727
- </div>
1728
- </div>
1729
- <div class="card-body">
1730
- <h3 class="card-title">{{item.list.Name}}</h3>
1731
- <p class="card-description" *ngIf="item.list.Description">{{item.list.Description}}</p>
1732
- <div class="card-meta">
1733
- <span class="meta-item">
1734
- <i class="fa-solid fa-database"></i>
1735
- {{item.entityName}}
1736
- </span>
1737
- <span class="meta-item">
1738
- <i class="fa-solid fa-hashtag"></i>
1739
- {{item.itemCount}} item{{item.itemCount !== 1 ? 's' : ''}}
1740
- </span>
1741
- </div>
1782
+ <div class="card-footer-right">
1783
+ @if (item.sharingInfo; as sharing) {
1784
+ @if (sharing.totalShares > 0) {
1785
+ <span class="sharing-badge" [title]="'Shared with ' + sharing.totalShares + ' user(s)/role(s)'">
1786
+ <i class="fa-solid fa-share-nodes"></i>
1787
+ </span>
1788
+ }
1789
+ }
1790
+ <span class="date-info">{{formatDate(item.list.__mj_UpdatedAt)}}</span>
1791
+ </div>
1792
+ </div>
1793
+ </div>
1794
+ }
1742
1795
  </div>
1743
- <div class="card-footer">
1744
- <span class="owner-tag" [class.is-me]="item.isOwner">
1745
- <i class="fa-solid fa-user"></i>
1746
- {{item.isOwner ? 'You' : item.ownerName}}
1747
- </span>
1748
- <div class="card-footer-right">
1749
- <ng-container *ngIf="item.sharingInfo as sharing">
1750
- <span class="sharing-badge" *ngIf="sharing.totalShares > 0" [title]="'Shared with ' + sharing.totalShares + ' user(s)/role(s)'">
1751
- <i class="fa-solid fa-share-nodes"></i>
1752
- </span>
1753
- </ng-container>
1754
- <span class="date-info">{{formatDate(item.list.__mj_UpdatedAt)}}</span>
1755
- </div>
1796
+ }
1797
+ <!-- Hierarchy View -->
1798
+ @if (viewMode === 'hierarchy') {
1799
+ <div class="category-tree">
1800
+ @for (node of categoryTree; track node) {
1801
+ <ng-container *ngTemplateOutlet="categoryNodeTemplate; context: { node: node, depth: 0 }"></ng-container>
1802
+ }
1756
1803
  </div>
1757
- </div>
1804
+ }
1758
1805
  </div>
1759
-
1760
- <!-- Hierarchy View -->
1761
- <div class="category-tree" *ngIf="viewMode === 'hierarchy'">
1762
- <ng-container *ngFor="let node of categoryTree">
1763
- <ng-container *ngTemplateOutlet="categoryNodeTemplate; context: { node: node, depth: 0 }"></ng-container>
1764
- </ng-container>
1765
- </div>
1766
- </div>
1767
-
1806
+ }
1807
+
1768
1808
  <!-- Category Node Template -->
1769
1809
  <ng-template #categoryNodeTemplate let-node="node" let-depth="depth">
1770
1810
  <div class="category-section" [style.margin-left.px]="depth * 20">
1771
1811
  <!-- Category Header -->
1772
- <div
1773
- class="category-header"
1774
- *ngIf="node.category"
1775
- (click)="toggleCategory(node)">
1776
- <i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
1777
- <i class="fa-solid fa-folder" [class.fa-folder-open]="node.isExpanded"></i>
1778
- <span class="category-name">{{node.category.Name}}</span>
1779
- <span class="category-count">{{getListCountInCategory(node)}}</span>
1780
- </div>
1781
-
1812
+ @if (node.category) {
1813
+ <div
1814
+ class="category-header"
1815
+ (click)="toggleCategory(node)">
1816
+ <i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
1817
+ <i class="fa-solid fa-folder" [class.fa-folder-open]="node.isExpanded"></i>
1818
+ <span class="category-name">{{node.category.Name}}</span>
1819
+ <span class="category-count">{{getListCountInCategory(node)}}</span>
1820
+ </div>
1821
+ }
1822
+
1782
1823
  <!-- Uncategorized Header -->
1783
- <div
1784
- class="category-header uncategorized"
1785
- *ngIf="!node.category && node.lists.length > 0"
1786
- (click)="toggleCategory(node)">
1787
- <i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
1788
- <i class="fa-solid fa-inbox"></i>
1789
- <span class="category-name">Uncategorized</span>
1790
- <span class="category-count">{{node.lists.length}}</span>
1791
- </div>
1792
-
1793
- <!-- Lists in this category -->
1794
- <div class="category-lists" *ngIf="node.isExpanded" role="list">
1824
+ @if (!node.category && node.lists.length > 0) {
1795
1825
  <div
1796
- class="list-row hierarchy-row"
1797
- *ngFor="let item of node.lists"
1798
- (click)="openList(item)"
1799
- (keydown.enter)="openList(item)"
1800
- tabindex="0"
1801
- role="listitem">
1802
- <div class="list-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1803
- <i [class]="getEntityIcon(item.entityName)"></i>
1804
- </div>
1805
- <div class="list-info">
1806
- <span class="list-name">{{item.list.Name}}</span>
1807
- <span class="list-meta">
1808
- {{item.entityName}} &middot; {{item.itemCount}} items
1809
- <span *ngIf="!item.isOwner"> &middot; {{item.ownerName}}</span>
1810
- </span>
1811
- </div>
1812
- <div class="list-actions" *ngIf="item.isOwner">
1813
- <button class="action-btn" (click)="openListMenu($event, item)">
1814
- <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1815
- </button>
1816
- </div>
1826
+ class="category-header uncategorized"
1827
+ (click)="toggleCategory(node)">
1828
+ <i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
1829
+ <i class="fa-solid fa-inbox"></i>
1830
+ <span class="category-name">Uncategorized</span>
1831
+ <span class="category-count">{{node.lists.length}}</span>
1817
1832
  </div>
1818
- </div>
1819
-
1833
+ }
1834
+
1835
+ <!-- Lists in this category -->
1836
+ @if (node.isExpanded) {
1837
+ <div class="category-lists" role="list">
1838
+ @for (item of node.lists; track item) {
1839
+ <div
1840
+ class="list-row hierarchy-row"
1841
+ (click)="openList(item)"
1842
+ (keydown.enter)="openList(item)"
1843
+ tabindex="0"
1844
+ role="listitem">
1845
+ <div class="list-icon" [style.background-color]="getEntityColor(item.entityName)" aria-hidden="true">
1846
+ <i [class]="getEntityIcon(item.entityName)"></i>
1847
+ </div>
1848
+ <div class="list-info">
1849
+ <span class="list-name">{{item.list.Name}}</span>
1850
+ <span class="list-meta">
1851
+ {{item.entityName}} &middot; {{item.itemCount}} items
1852
+ @if (!item.isOwner) {
1853
+ <span> &middot; {{item.ownerName}}</span>
1854
+ }
1855
+ </span>
1856
+ </div>
1857
+ @if (item.isOwner) {
1858
+ <div class="list-actions">
1859
+ <button class="action-btn" (click)="openListMenu($event, item)">
1860
+ <i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
1861
+ </button>
1862
+ </div>
1863
+ }
1864
+ </div>
1865
+ }
1866
+ </div>
1867
+ }
1868
+
1820
1869
  <!-- Child categories -->
1821
- <ng-container *ngIf="node.isExpanded">
1822
- <ng-container *ngFor="let child of node.children">
1870
+ @if (node.isExpanded) {
1871
+ @for (child of node.children; track child) {
1823
1872
  <ng-container *ngTemplateOutlet="categoryNodeTemplate; context: { node: child, depth: depth + 1 }"></ng-container>
1824
- </ng-container>
1825
- </ng-container>
1873
+ }
1874
+ }
1826
1875
  </div>
1827
1876
  </ng-template>
1828
-
1877
+
1829
1878
  <!-- Context Menu -->
1830
- <div class="context-menu-overlay" *ngIf="showContextMenu" (click)="closeContextMenu()"></div>
1831
- <div class="context-menu" *ngIf="showContextMenu" [style.top.px]="contextMenuY" [style.left.px]="contextMenuX">
1832
- <button class="menu-item" (click)="editList()">
1833
- <i class="fa-solid fa-pen"></i>
1834
- Edit
1835
- </button>
1836
- <button class="menu-item" (click)="openShareDialog()">
1837
- <i class="fa-solid fa-share-nodes"></i>
1838
- Share
1839
- </button>
1840
- <button class="menu-item" (click)="duplicateList()">
1841
- <i class="fa-solid fa-copy"></i>
1842
- Duplicate
1843
- </button>
1844
- <div class="menu-divider"></div>
1845
- <button class="menu-item danger" (click)="confirmDeleteList()">
1846
- <i class="fa-solid fa-trash"></i>
1847
- Delete
1848
- </button>
1849
- </div>
1850
-
1851
- <!-- Create/Edit Dialog -->
1852
- <div class="modal-overlay" *ngIf="showCreateDialog" (click)="closeCreateDialog()"></div>
1853
- <div class="modal-dialog" *ngIf="showCreateDialog">
1854
- <div class="modal-header">
1855
- <h3>{{editingList ? 'Edit List' : 'Create New List'}}</h3>
1856
- <button class="modal-close" (click)="closeCreateDialog()">
1857
- <i class="fa-solid fa-times"></i>
1879
+ @if (showContextMenu) {
1880
+ <div class="context-menu-overlay" (click)="closeContextMenu()"></div>
1881
+ }
1882
+ @if (showContextMenu) {
1883
+ <div class="context-menu" [style.top.px]="contextMenuY" [style.left.px]="contextMenuX">
1884
+ <button class="menu-item" (click)="editList()">
1885
+ <i class="fa-solid fa-pen"></i>
1886
+ Edit
1887
+ </button>
1888
+ <button class="menu-item" (click)="openShareDialog()">
1889
+ <i class="fa-solid fa-share-nodes"></i>
1890
+ Share
1891
+ </button>
1892
+ <button class="menu-item" (click)="duplicateList()">
1893
+ <i class="fa-solid fa-copy"></i>
1894
+ Duplicate
1895
+ </button>
1896
+ <div class="menu-divider"></div>
1897
+ <button class="menu-item danger" (click)="confirmDeleteList()">
1898
+ <i class="fa-solid fa-trash"></i>
1899
+ Delete
1858
1900
  </button>
1859
1901
  </div>
1860
- <div class="modal-body">
1861
- <div class="form-group">
1862
- <label>Name *</label>
1863
- <input
1864
- type="text"
1865
- [(ngModel)]="newListName"
1866
- placeholder="Enter list name"
1867
- class="form-input" />
1868
- </div>
1869
- <div class="form-group">
1870
- <label>Description</label>
1871
- <textarea
1872
- [(ngModel)]="newListDescription"
1873
- placeholder="Optional description"
1874
- class="form-input"
1875
- rows="3"></textarea>
1902
+ }
1903
+
1904
+ <!-- Create/Edit Dialog -->
1905
+ @if (showCreateDialog) {
1906
+ <div class="modal-overlay" (click)="closeCreateDialog()"></div>
1907
+ }
1908
+ @if (showCreateDialog) {
1909
+ <div class="modal-dialog">
1910
+ <div class="modal-header">
1911
+ <h3>{{editingList ? 'Edit List' : 'Create New List'}}</h3>
1912
+ <button class="modal-close" (click)="closeCreateDialog()">
1913
+ <i class="fa-solid fa-times"></i>
1914
+ </button>
1876
1915
  </div>
1877
- <div class="form-group" *ngIf="!editingList">
1878
- <label>Entity *</label>
1879
- <div class="custom-select-wrapper">
1916
+ <div class="modal-body">
1917
+ <div class="form-group">
1918
+ <label>Name *</label>
1880
1919
  <input
1881
- #entityInput
1882
1920
  type="text"
1883
- [(ngModel)]="entitySearchTerm"
1884
- (ngModelChange)="filterEntities($event)"
1885
- (focus)="openEntityDropdown(entityInput)"
1886
- placeholder="Search and select an entity"
1921
+ [(ngModel)]="newListName"
1922
+ placeholder="Enter list name"
1887
1923
  class="form-input" />
1888
1924
  </div>
1925
+ <div class="form-group">
1926
+ <label>Description</label>
1927
+ <textarea
1928
+ [(ngModel)]="newListDescription"
1929
+ placeholder="Optional description"
1930
+ class="form-input"
1931
+ rows="3"></textarea>
1932
+ </div>
1933
+ @if (!editingList) {
1934
+ <div class="form-group">
1935
+ <label>Entity *</label>
1936
+ <div class="custom-select-wrapper">
1937
+ <input
1938
+ #entityInput
1939
+ type="text"
1940
+ [(ngModel)]="entitySearchTerm"
1941
+ (ngModelChange)="filterEntities($event)"
1942
+ (focus)="openEntityDropdown(entityInput)"
1943
+ placeholder="Search and select an entity"
1944
+ class="form-input" />
1945
+ </div>
1946
+ </div>
1947
+ }
1948
+ @if (editingList) {
1949
+ <div class="form-group">
1950
+ <label>Entity</label>
1951
+ <input type="text" [value]="entitySearchTerm" class="form-input" disabled />
1952
+ </div>
1953
+ }
1954
+ <div class="form-group">
1955
+ <label>Category</label>
1956
+ <select [(ngModel)]="selectedCategoryId" class="form-input">
1957
+ <option [ngValue]="null">No category</option>
1958
+ @for (cat of flatCategories; track cat) {
1959
+ <option [ngValue]="cat.ID">{{cat.displayName}}</option>
1960
+ }
1961
+ </select>
1962
+ </div>
1889
1963
  </div>
1890
- <div class="form-group" *ngIf="editingList">
1891
- <label>Entity</label>
1892
- <input type="text" [value]="entitySearchTerm" class="form-input" disabled />
1893
- </div>
1894
- <div class="form-group">
1895
- <label>Category</label>
1896
- <select [(ngModel)]="selectedCategoryId" class="form-input">
1897
- <option [ngValue]="null">No category</option>
1898
- <option *ngFor="let cat of flatCategories" [ngValue]="cat.ID">{{cat.displayName}}</option>
1899
- </select>
1964
+ <div class="modal-footer">
1965
+ <button
1966
+ class="btn-primary"
1967
+ (click)="saveList()"
1968
+ [disabled]="!newListName || (!editingList && !selectedEntityId) || isSaving">
1969
+ @if (isSaving) {
1970
+ <i class="fa-solid fa-spinner fa-spin"></i>
1971
+ }
1972
+ {{isSaving ? 'Saving...' : (editingList ? 'Save' : 'Create')}}
1973
+ </button>
1974
+ <button class="btn-secondary" (click)="closeCreateDialog()" [disabled]="isSaving">Cancel</button>
1900
1975
  </div>
1901
1976
  </div>
1902
- <div class="modal-footer">
1903
- <button
1904
- class="btn-primary"
1905
- (click)="saveList()"
1906
- [disabled]="!newListName || (!editingList && !selectedEntityId) || isSaving">
1907
- <i *ngIf="isSaving" class="fa-solid fa-spinner fa-spin"></i>
1908
- {{isSaving ? 'Saving...' : (editingList ? 'Save' : 'Create')}}
1909
- </button>
1910
- <button class="btn-secondary" (click)="closeCreateDialog()" [disabled]="isSaving">Cancel</button>
1911
- </div>
1912
- </div>
1913
-
1977
+ }
1978
+
1914
1979
  <!-- Delete Confirmation Dialog -->
1915
- <div class="modal-overlay" *ngIf="showDeleteConfirm" (click)="cancelDelete()"></div>
1916
- <div class="modal-dialog confirm-dialog" *ngIf="showDeleteConfirm">
1917
- <div class="modal-header">
1918
- <h3>Delete List</h3>
1919
- <button class="modal-close" (click)="cancelDelete()">
1920
- <i class="fa-solid fa-times"></i>
1921
- </button>
1922
- </div>
1923
- <div class="modal-body">
1924
- <p>Are you sure you want to delete "<strong>{{deleteListName}}</strong>"?</p>
1925
- <p class="warning-text">This will also remove all items in the list.</p>
1926
- </div>
1927
- <div class="modal-footer">
1928
- <button class="btn-danger" (click)="deleteList()" [disabled]="isDeleting">
1929
- <i *ngIf="isDeleting" class="fa-solid fa-spinner fa-spin"></i>
1930
- {{isDeleting ? 'Deleting...' : 'Delete'}}
1931
- </button>
1932
- <button class="btn-secondary" (click)="cancelDelete()" [disabled]="isDeleting">Cancel</button>
1980
+ @if (showDeleteConfirm) {
1981
+ <div class="modal-overlay" (click)="cancelDelete()"></div>
1982
+ }
1983
+ @if (showDeleteConfirm) {
1984
+ <div class="modal-dialog confirm-dialog">
1985
+ <div class="modal-header">
1986
+ <h3>Delete List</h3>
1987
+ <button class="modal-close" (click)="cancelDelete()">
1988
+ <i class="fa-solid fa-times"></i>
1989
+ </button>
1990
+ </div>
1991
+ <div class="modal-body">
1992
+ <p>Are you sure you want to delete "<strong>{{deleteListName}}</strong>"?</p>
1993
+ <p class="warning-text">This will also remove all items in the list.</p>
1994
+ </div>
1995
+ <div class="modal-footer">
1996
+ <button class="btn-danger" (click)="deleteList()" [disabled]="isDeleting">
1997
+ @if (isDeleting) {
1998
+ <i class="fa-solid fa-spinner fa-spin"></i>
1999
+ }
2000
+ {{isDeleting ? 'Deleting...' : 'Delete'}}
2001
+ </button>
2002
+ <button class="btn-secondary" (click)="cancelDelete()" [disabled]="isDeleting">Cancel</button>
2003
+ </div>
1933
2004
  </div>
1934
- </div>
1935
-
2005
+ }
2006
+
1936
2007
  <!-- Share Dialog -->
1937
- <mj-list-share-dialog
1938
- *ngIf="shareDialogConfig"
1939
- [config]="shareDialogConfig"
1940
- [visible]="showShareDialog"
1941
- (complete)="onShareComplete($event)"
1942
- (cancel)="onShareCancel()">
1943
- </mj-list-share-dialog>
1944
-
2008
+ @if (shareDialogConfig) {
2009
+ <mj-list-share-dialog
2010
+ [config]="shareDialogConfig"
2011
+ [visible]="showShareDialog"
2012
+ (complete)="onShareComplete($event)"
2013
+ (cancel)="onShareCancel()">
2014
+ </mj-list-share-dialog>
2015
+ }
2016
+
1945
2017
  <!-- Entity Dropdown Portal -->
1946
- <div
1947
- class="entity-dropdown-portal"
1948
- *ngIf="showEntityDropdown && !editingList"
1949
- [style.top.px]="entityDropdownPosition.top"
1950
- [style.left.px]="entityDropdownPosition.left"
1951
- [style.width.px]="entityDropdownPosition.width"
1952
- [class.dropdown-above]="entityDropdownPosition.openAbove">
1953
- <div class="entity-dropdown-backdrop" (click)="closeEntityDropdown()"></div>
1954
- <div class="entity-dropdown-content" [class.open-above]="entityDropdownPosition.openAbove">
1955
- <div
1956
- class="dropdown-item"
1957
- *ngFor="let entity of filteredEntitiesList"
1958
- (click)="selectEntity(entity)">
1959
- {{entity.Name}}
1960
- </div>
1961
- <div class="dropdown-empty" *ngIf="filteredEntitiesList.length === 0">
1962
- No entities found
2018
+ @if (showEntityDropdown && !editingList) {
2019
+ <div
2020
+ class="entity-dropdown-portal"
2021
+ [style.top.px]="entityDropdownPosition.top"
2022
+ [style.left.px]="entityDropdownPosition.left"
2023
+ [style.width.px]="entityDropdownPosition.width"
2024
+ [class.dropdown-above]="entityDropdownPosition.openAbove">
2025
+ <div class="entity-dropdown-backdrop" (click)="closeEntityDropdown()"></div>
2026
+ <div class="entity-dropdown-content" [class.open-above]="entityDropdownPosition.openAbove">
2027
+ @for (entity of filteredEntitiesList; track entity) {
2028
+ <div
2029
+ class="dropdown-item"
2030
+ (click)="selectEntity(entity)">
2031
+ {{entity.Name}}
2032
+ </div>
2033
+ }
2034
+ @if (filteredEntitiesList.length === 0) {
2035
+ <div class="dropdown-empty">
2036
+ No entities found
2037
+ </div>
2038
+ }
1963
2039
  </div>
1964
2040
  </div>
1965
- </div>
2041
+ }
1966
2042
  </div>
1967
- `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-browse-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .browse-header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 200px;\n max-width: 300px;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 100%;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n }\n\n .filter-group {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .filter-group label {\n font-size: 13px;\n color: #666;\n }\n\n .filter-select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n background: white;\n cursor: pointer;\n min-width: 120px;\n }\n\n .filter-select:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .sort-select {\n min-width: 140px;\n }\n\n .view-toggle-group {\n display: flex;\n border: 1px solid #ddd;\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-toggle {\n padding: 8px 12px;\n background: white;\n border: none;\n border-right: 1px solid #ddd;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:last-child {\n border-right: none;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n color: white;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .browse-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .results-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n\n .result-count {\n font-size: 14px;\n color: #666;\n }\n\n .sort-options {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .sort-options label {\n font-size: 13px;\n color: #666;\n }\n\n /* Table View */\n .lists-table {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .lists-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .lists-table th {\n text-align: left;\n padding: 12px 16px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .lists-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n font-size: 14px;\n color: #333;\n }\n\n .list-row {\n cursor: pointer;\n transition: background 0.15s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e8f4fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-row:last-child td {\n border-bottom: none;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n .col-name { width: 30%; }\n .col-entity { width: 15%; }\n .col-items { width: 8%; text-align: center; }\n .col-sharing { width: 8%; text-align: center; }\n .col-owner { width: 14%; }\n .col-updated { width: 15%; }\n .col-actions { width: 10%; text-align: right; }\n\n /* Sharing indicators */\n .sharing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #2196F3;\n font-size: 13px;\n }\n\n .sharing-indicator i {\n font-size: 14px;\n }\n\n .share-count {\n font-weight: 500;\n }\n\n .sharing-private {\n color: #999;\n font-size: 13px;\n }\n\n .sharing-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #e3f2fd;\n border-radius: 50%;\n color: #2196F3;\n font-size: 11px;\n }\n\n .card-footer-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .name-cell {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .list-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .name-content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .list-name {\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-desc {\n font-size: 12px;\n color: #999;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .entity-badge {\n display: inline-block;\n padding: 2px 8px;\n background: #e8f4fd;\n border-radius: 4px;\n font-size: 12px;\n color: #1976D2;\n }\n\n .owner-name {\n color: #666;\n }\n\n .owner-name.is-me {\n color: #2196F3;\n font-weight: 500;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 6px 10px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Card View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .owner-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n }\n\n .owner-tag.is-me {\n color: #2196F3;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Hierarchy View */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .hierarchy-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .hierarchy-row:hover {\n background: #f5f5f5;\n }\n\n .hierarchy-row:focus {\n background: #e3f2fd;\n }\n\n .hierarchy-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .hierarchy-row:hover .list-actions {\n opacity: 1;\n }\n\n /* Context Menu */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\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 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\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: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\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: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\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 transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\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 transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002;\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .header-row {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .header-actions {\n flex-direction: column;\n align-items: stretch;\n }\n\n .search-box {\n max-width: none;\n }\n\n .filter-group {\n width: 100%;\n }\n\n .filter-select {\n flex: 1;\n width: 100%;\n }\n\n .view-toggle-group {\n justify-content: center;\n }\n\n .lists-table {\n overflow-x: auto;\n }\n\n .col-entity, .col-items, .col-updated {\n display: none;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "] }]
2043
+ `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-browse-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .browse-header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 200px;\n max-width: 300px;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 100%;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n }\n\n .filter-group {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .filter-group label {\n font-size: 13px;\n color: #666;\n }\n\n .filter-select {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n background: white;\n cursor: pointer;\n min-width: 120px;\n }\n\n .filter-select:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .sort-select {\n min-width: 140px;\n }\n\n .view-toggle-group {\n display: flex;\n border: 1px solid #ddd;\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-toggle {\n padding: 8px 12px;\n background: white;\n border: none;\n border-right: 1px solid #ddd;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:last-child {\n border-right: none;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n color: white;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .browse-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .results-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n\n .result-count {\n font-size: 14px;\n color: #666;\n }\n\n .sort-options {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .sort-options label {\n font-size: 13px;\n color: #666;\n }\n\n /* Table View */\n .lists-table {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n }\n\n .lists-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .lists-table th {\n text-align: left;\n padding: 12px 16px;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .lists-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n font-size: 14px;\n color: #333;\n }\n\n .list-row {\n cursor: pointer;\n transition: background 0.15s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e8f4fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-row:last-child td {\n border-bottom: none;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n .col-name { width: 30%; }\n .col-entity { width: 15%; }\n .col-items { width: 8%; text-align: center; }\n .col-sharing { width: 8%; text-align: center; }\n .col-owner { width: 14%; }\n .col-updated { width: 15%; }\n .col-actions { width: 10%; text-align: right; }\n\n /* Sharing indicators */\n .sharing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #2196F3;\n font-size: 13px;\n }\n\n .sharing-indicator i {\n font-size: 14px;\n }\n\n .share-count {\n font-weight: 500;\n }\n\n .sharing-private {\n color: #999;\n font-size: 13px;\n }\n\n .sharing-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #e3f2fd;\n border-radius: 50%;\n color: #2196F3;\n font-size: 11px;\n }\n\n .card-footer-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .name-cell {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .list-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .name-content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .list-name {\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-desc {\n font-size: 12px;\n color: #999;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .entity-badge {\n display: inline-block;\n padding: 2px 8px;\n background: #e8f4fd;\n border-radius: 4px;\n font-size: 12px;\n color: #1976D2;\n }\n\n .owner-name {\n color: #666;\n }\n\n .owner-name.is-me {\n color: #2196F3;\n font-weight: 500;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 6px 10px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Card View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .owner-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n }\n\n .owner-tag.is-me {\n color: #2196F3;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Hierarchy View */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .hierarchy-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .hierarchy-row:hover {\n background: #f5f5f5;\n }\n\n .hierarchy-row:focus {\n background: #e3f2fd;\n }\n\n .hierarchy-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .hierarchy-row:hover .list-actions {\n opacity: 1;\n }\n\n /* Context Menu */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\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 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\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: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\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: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\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 transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\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 transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002;\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .header-row {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .header-actions {\n flex-direction: column;\n align-items: stretch;\n }\n\n .search-box {\n max-width: none;\n }\n\n .filter-group {\n width: 100%;\n }\n\n .filter-select {\n flex: 1;\n width: 100%;\n }\n\n .view-toggle-group {\n justify-content: center;\n }\n\n .lists-table {\n overflow-x: auto;\n }\n\n .col-entity, .col-items, .col-updated {\n display: none;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "] }]
1968
2044
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.TabService }, { type: i2.MJNotificationService }, { type: i0.ElementRef }, { type: i3.ListSharingService }], { onDocumentClick: [{
1969
2045
  type: HostListener,
1970
2046
  args: ['document:click', ['$event']]
@@ -1972,5 +2048,5 @@ export { ListsBrowseResource };
1972
2048
  type: HostListener,
1973
2049
  args: ['document:keydown.escape']
1974
2050
  }] }); })();
1975
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsBrowseResource, { className: "ListsBrowseResource", filePath: "src/Lists/components/lists-browse-resource.component.ts", lineNumber: 1607 }); })();
2051
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsBrowseResource, { className: "ListsBrowseResource", filePath: "src/lists/components/lists-browse-resource.component.ts", lineNumber: 1675 }); })();
1976
2052
  //# sourceMappingURL=lists-browse-resource.component.js.map