@memberjunction/ng-dashboards 5.30.0 → 5.31.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 (424) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  2. package/dist/AI/components/agents/agent-configuration.component.js +4 -4
  3. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  4. package/dist/AI/components/agents/agent-editor.component.d.ts +2 -1
  5. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  6. package/dist/AI/components/agents/agent-editor.component.js +8 -6
  7. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +2 -1
  9. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  10. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +6 -5
  11. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  12. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +2 -1
  13. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  14. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +6 -5
  15. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  16. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +2 -1
  17. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  18. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +6 -5
  19. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  20. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts +2 -1
  21. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  22. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +7 -4
  23. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  24. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +3 -2
  25. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/model-performance/model-performance.component.js +10 -6
  27. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  28. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +2 -1
  29. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +6 -5
  31. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  32. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +2 -1
  33. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  34. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +6 -5
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  36. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  37. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +55 -52
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  39. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +15 -15
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  41. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  42. package/dist/AI/components/execution-monitoring.component.js +4 -3
  43. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.js +2 -2
  45. package/dist/AI/components/models/model-management.component.js.map +1 -1
  46. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -1
  47. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  48. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +10 -8
  49. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  51. package/dist/AI/components/prompts/prompt-management.component.js +2 -2
  52. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  53. package/dist/AI/components/prompts/prompt-version-control.component.d.ts +2 -1
  54. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  55. package/dist/AI/components/prompts/prompt-version-control.component.js +13 -10
  56. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  57. package/dist/AI/components/requests/agent-requests-resource.component.js +1 -1
  58. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  59. package/dist/AI/components/tags/tags-resource.component.d.ts +1181 -0
  60. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -0
  61. package/dist/AI/components/tags/tags-resource.component.js +7487 -0
  62. package/dist/AI/components/tags/tags-resource.component.js.map +1 -0
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +25 -21
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/AI/index.d.ts +1 -0
  67. package/dist/AI/index.d.ts.map +1 -1
  68. package/dist/AI/index.js +5 -0
  69. package/dist/AI/index.js.map +1 -1
  70. package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
  71. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  72. package/dist/AI/services/ai-instrumentation.service.js +12 -4
  73. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  74. package/dist/APIKeys/api-applications-panel.component.d.ts +3 -2
  75. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  76. package/dist/APIKeys/api-applications-panel.component.js +5 -4
  77. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  78. package/dist/APIKeys/api-key-create-dialog.component.d.ts +2 -1
  79. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  80. package/dist/APIKeys/api-key-create-dialog.component.js +5 -5
  81. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  82. package/dist/APIKeys/api-key-edit-panel.component.d.ts +3 -2
  83. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  84. package/dist/APIKeys/api-key-edit-panel.component.js +11 -10
  85. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  86. package/dist/APIKeys/api-key-list.component.d.ts +2 -1
  87. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  88. package/dist/APIKeys/api-key-list.component.js +6 -5
  89. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  90. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  91. package/dist/APIKeys/api-keys-resource.component.js +4 -4
  92. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  93. package/dist/APIKeys/api-scopes-panel.component.d.ts +3 -2
  94. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  95. package/dist/APIKeys/api-scopes-panel.component.js +8 -6
  96. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  97. package/dist/APIKeys/api-usage-panel.component.d.ts +3 -2
  98. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  99. package/dist/APIKeys/api-usage-panel.component.js +10 -8
  100. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  101. package/dist/Actions/components/actions-list-view.component.d.ts +2 -1
  102. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  103. package/dist/Actions/components/actions-list-view.component.js +6 -5
  104. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  105. package/dist/Actions/components/actions-overview.component.js +2 -2
  106. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  107. package/dist/Actions/components/categories-list-view.component.d.ts +2 -1
  108. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  109. package/dist/Actions/components/categories-list-view.component.js +6 -5
  110. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  111. package/dist/Actions/components/execution-monitoring.component.js +1 -1
  112. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  113. package/dist/Actions/components/explorer/action-card.component.d.ts +2 -1
  114. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  115. package/dist/Actions/components/explorer/action-card.component.js +6 -4
  116. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  117. package/dist/Actions/components/explorer/action-explorer.component.js +1 -1
  118. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  119. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +2 -1
  120. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  121. package/dist/Actions/components/explorer/new-action-panel.component.js +7 -5
  122. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  123. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +2 -1
  124. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  125. package/dist/Actions/components/explorer/new-category-panel.component.js +7 -5
  126. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  127. package/dist/ApplicationRoles/application-roles-resource.component.js +4 -4
  128. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  129. package/dist/Communication/communication-logs-resource.component.js +1 -1
  130. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  131. package/dist/Communication/communication-monitor-resource.component.js +1 -1
  132. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  133. package/dist/Communication/communication-providers-resource.component.js +3 -3
  134. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  135. package/dist/Communication/communication-runs-resource.component.js +1 -1
  136. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  137. package/dist/Communication/communication-templates-resource.component.js +3 -3
  138. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  139. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +1 -1
  140. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  141. package/dist/ComponentStudio/component-studio-dashboard.component.js +5 -4
  142. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  143. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +2 -1
  144. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  145. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +6 -4
  146. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  147. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +11 -2
  148. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  149. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +61 -27
  150. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  151. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +4 -2
  152. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  153. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +19 -11
  154. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  155. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +4 -2
  156. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
  157. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +11 -3
  158. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  159. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +10 -1
  160. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  161. package/dist/ComponentStudio/components/workspace/component-preview.component.js +18 -9
  162. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  163. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +11 -1
  164. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
  165. package/dist/ComponentStudio/services/component-studio-state.service.js +23 -3
  166. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
  167. package/dist/ComponentStudio/services/component-version.service.d.ts +6 -1
  168. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  169. package/dist/ComponentStudio/services/component-version.service.js +16 -6
  170. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  171. package/dist/Credentials/components/credentials-audit-resource.component.js +1 -1
  172. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  173. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  174. package/dist/Credentials/components/credentials-categories-resource.component.js +3 -3
  175. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  176. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  177. package/dist/Credentials/components/credentials-list-resource.component.js +3 -3
  178. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  179. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  180. package/dist/Credentials/components/credentials-overview-resource.component.js +3 -3
  181. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  182. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  183. package/dist/Credentials/components/credentials-types-resource.component.js +3 -3
  184. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  185. package/dist/Credentials/credentials-dashboard.component.js +1 -1
  186. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  187. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +13 -13
  188. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  189. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts +4 -0
  190. package/dist/DashboardBrowser/dashboard-share-adapter.d.ts.map +1 -1
  191. package/dist/DashboardBrowser/dashboard-share-adapter.js +5 -2
  192. package/dist/DashboardBrowser/dashboard-share-adapter.js.map +1 -1
  193. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +3 -1
  194. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  195. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -4
  196. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  197. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +3 -2
  198. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  199. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +7 -6
  200. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  201. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +3 -2
  202. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  203. package/dist/DataExplorer/components/view-selector/view-selector.component.js +6 -5
  204. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  205. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  206. package/dist/DataExplorer/data-explorer-dashboard.component.js +10 -9
  207. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  208. package/dist/DataExplorer/services/explorer-state.service.d.ts +6 -1
  209. package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
  210. package/dist/DataExplorer/services/explorer-state.service.js +15 -5
  211. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  212. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts +64 -0
  213. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts.map +1 -0
  214. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js +400 -0
  215. package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js.map +1 -0
  216. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts +42 -0
  217. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts.map +1 -0
  218. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js +232 -0
  219. package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js.map +1 -0
  220. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts +14 -0
  221. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts.map +1 -0
  222. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js +38 -0
  223. package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js.map +1 -0
  224. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts +24 -0
  225. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts.map +1 -0
  226. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js +77 -0
  227. package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js.map +1 -0
  228. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts +88 -0
  229. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts.map +1 -0
  230. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js +404 -0
  231. package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js.map +1 -0
  232. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts +12 -0
  233. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts.map +1 -0
  234. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js +116 -0
  235. package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js.map +1 -0
  236. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +55 -0
  237. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -0
  238. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +204 -0
  239. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -0
  240. package/dist/DatabaseDesigner/components/entity-list.component.d.ts +61 -0
  241. package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -0
  242. package/dist/DatabaseDesigner/components/entity-list.component.js +485 -0
  243. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -0
  244. package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts +52 -0
  245. package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts.map +1 -0
  246. package/dist/DatabaseDesigner/components/modify/database-modify.component.js +320 -0
  247. package/dist/DatabaseDesigner/components/modify/database-modify.component.js.map +1 -0
  248. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts +79 -0
  249. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts.map +1 -0
  250. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js +378 -0
  251. package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js.map +1 -0
  252. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts +85 -0
  253. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts.map +1 -0
  254. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js +429 -0
  255. package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js.map +1 -0
  256. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts +58 -0
  257. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts.map +1 -0
  258. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js +333 -0
  259. package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js.map +1 -0
  260. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts +36 -0
  261. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts.map +1 -0
  262. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js +345 -0
  263. package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js.map +1 -0
  264. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts +13 -0
  265. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts.map +1 -0
  266. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js +81 -0
  267. package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js.map +1 -0
  268. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +30 -0
  269. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -0
  270. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +131 -0
  271. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -0
  272. package/dist/DatabaseDesigner/database-designer-erd.d.ts +19 -0
  273. package/dist/DatabaseDesigner/database-designer-erd.d.ts.map +1 -0
  274. package/dist/DatabaseDesigner/database-designer-erd.js +84 -0
  275. package/dist/DatabaseDesigner/database-designer-erd.js.map +1 -0
  276. package/dist/DatabaseDesigner/database-designer.types.d.ts +167 -0
  277. package/dist/DatabaseDesigner/database-designer.types.d.ts.map +1 -0
  278. package/dist/DatabaseDesigner/database-designer.types.js +26 -0
  279. package/dist/DatabaseDesigner/database-designer.types.js.map +1 -0
  280. package/dist/DatabaseDesigner/services/database-designer.engine.d.ts +94 -0
  281. package/dist/DatabaseDesigner/services/database-designer.engine.d.ts.map +1 -0
  282. package/dist/DatabaseDesigner/services/database-designer.engine.js +392 -0
  283. package/dist/DatabaseDesigner/services/database-designer.engine.js.map +1 -0
  284. package/dist/DatabaseDesigner/services/database-designer.service.d.ts +78 -0
  285. package/dist/DatabaseDesigner/services/database-designer.service.d.ts.map +1 -0
  286. package/dist/DatabaseDesigner/services/database-designer.service.js +273 -0
  287. package/dist/DatabaseDesigner/services/database-designer.service.js.map +1 -0
  288. package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts +79 -0
  289. package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts.map +1 -0
  290. package/dist/DatabaseDesigner/services/entity-wizard-state.service.js +204 -0
  291. package/dist/DatabaseDesigner/services/entity-wizard-state.service.js.map +1 -0
  292. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  293. package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
  294. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  295. package/dist/Home/action-pin-config-dialog.component.d.ts +2 -1
  296. package/dist/Home/action-pin-config-dialog.component.d.ts.map +1 -1
  297. package/dist/Home/action-pin-config-dialog.component.js +6 -4
  298. package/dist/Home/action-pin-config-dialog.component.js.map +1 -1
  299. package/dist/Home/action-pin-runner-dialog.component.d.ts +2 -1
  300. package/dist/Home/action-pin-runner-dialog.component.d.ts.map +1 -1
  301. package/dist/Home/action-pin-runner-dialog.component.js +5 -4
  302. package/dist/Home/action-pin-runner-dialog.component.js.map +1 -1
  303. package/dist/Home/home-application.d.ts.map +1 -1
  304. package/dist/Home/home-application.js +10 -12
  305. package/dist/Home/home-application.js.map +1 -1
  306. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  307. package/dist/Home/home-dashboard.component.js +3 -3
  308. package/dist/Home/home-dashboard.component.js.map +1 -1
  309. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  310. package/dist/Integration/components/activity/activity.component.js +1 -0
  311. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  312. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  313. package/dist/Integration/components/connections/connections.component.js +11 -10
  314. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  315. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  316. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -2
  317. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  318. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  319. package/dist/Integration/components/overview/overview.component.js +1 -0
  320. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  321. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  322. package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
  323. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  324. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  325. package/dist/Integration/components/schedules/schedules.component.js +5 -4
  326. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  327. package/dist/Integration/services/integration-data.service.d.ts +5 -1
  328. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  329. package/dist/Integration/services/integration-data.service.js +27 -19
  330. package/dist/Integration/services/integration-data.service.js.map +1 -1
  331. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +6 -6
  332. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  333. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  334. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +8 -6
  335. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  336. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +6 -6
  337. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  338. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +3 -3
  339. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  340. package/dist/Lists/components/lists-browse-resource.component.js +6 -6
  341. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  342. package/dist/Lists/components/lists-categories-resource.component.js +4 -4
  343. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  344. package/dist/Lists/components/lists-my-lists-resource.component.js +6 -6
  345. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  346. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  347. package/dist/Lists/components/lists-operations-resource.component.js +11 -10
  348. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  349. package/dist/Lists/services/list-set-operations.service.d.ts +5 -0
  350. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  351. package/dist/Lists/services/list-set-operations.service.js +11 -3
  352. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  353. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +2 -1
  354. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  355. package/dist/MCP/components/mcp-connection-dialog.component.js +8 -6
  356. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  357. package/dist/MCP/components/mcp-server-dialog.component.d.ts +2 -1
  358. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
  359. package/dist/MCP/components/mcp-server-dialog.component.js +7 -5
  360. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  361. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  362. package/dist/MCP/mcp-dashboard.component.js +12 -12
  363. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  364. package/dist/Permissions/permissions-shared.d.ts +3 -3
  365. package/dist/Permissions/permissions-shared.d.ts.map +1 -1
  366. package/dist/Permissions/permissions-shared.js +5 -5
  367. package/dist/Permissions/permissions-shared.js.map +1 -1
  368. package/dist/Permissions/resource-access-resource.component.js +1 -1
  369. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  370. package/dist/Permissions/user-access-resource.component.js +1 -2
  371. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  372. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  373. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  374. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  375. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  376. package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
  377. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  378. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +5 -0
  379. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  380. package/dist/Scheduling/services/scheduling-instrumentation.service.js +21 -13
  381. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  382. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  383. package/dist/SystemDiagnostics/system-diagnostics.component.js +2 -2
  384. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  385. package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
  386. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  387. package/dist/Testing/components/testing-explorer.component.js +9 -7
  388. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  389. package/dist/Testing/services/testing-instrumentation.service.d.ts +6 -1
  390. package/dist/Testing/services/testing-instrumentation.service.d.ts.map +1 -1
  391. package/dist/Testing/services/testing-instrumentation.service.js +21 -11
  392. package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
  393. package/dist/Testing/testing-dashboard.component.d.ts +3 -1
  394. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  395. package/dist/Testing/testing-dashboard.component.js +15 -11
  396. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  397. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  398. package/dist/VersionHistory/components/diff-resource.component.js +5 -5
  399. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  400. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
  401. package/dist/VersionHistory/components/graph-resource.component.js +1 -2
  402. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  403. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  404. package/dist/VersionHistory/components/labels-resource.component.js +3 -3
  405. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  406. package/dist/VersionHistory/components/restore-resource.component.js +1 -1
  407. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  408. package/dist/ai-dashboards.module.d.ts +35 -34
  409. package/dist/ai-dashboards.module.d.ts.map +1 -1
  410. package/dist/ai-dashboards.module.js +6 -0
  411. package/dist/ai-dashboards.module.js.map +1 -1
  412. package/dist/module.d.ts +13 -12
  413. package/dist/module.d.ts.map +1 -1
  414. package/dist/module.js +7 -0
  415. package/dist/module.js.map +1 -1
  416. package/dist/public-api.d.ts +3 -1
  417. package/dist/public-api.d.ts.map +1 -1
  418. package/dist/public-api.js +3 -1
  419. package/dist/public-api.js.map +1 -1
  420. package/dist/shared/entity-field-display.d.ts +4 -3
  421. package/dist/shared/entity-field-display.d.ts.map +1 -1
  422. package/dist/shared/entity-field-display.js +9 -9
  423. package/dist/shared/entity-field-display.js.map +1 -1
  424. package/package.json +52 -51
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-review.component.js","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-review.component.ts","../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-review.component.html"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;;;;;ICLzE,8BAAgD;IAC9C,uBAA2C;IAC3C,yCACF;IAAA,iBAAM;;;IAEN,8BAA6C;IAC3C,uBAAwC;IACxC,iFAA2D;IAAA,8BAAQ;IAAA,6BAAa;IAAA,iBAAS;IAAC,8BAC5F;IAAA,iBAAM;;;IAMF,8BAA6B;IAC3B,wBAAgD;IAChD,YACF;IAAA,iBAAM;;;IADJ,eACF;IADE,uCACF;;;IALJ,8BAA2C;IACzC,mHAKC;IACH,iBAAM;;;IANJ,cAKC;IALD,sCAKC;;;IAKH,4BAA8B;IAAA,YAAiC;IAAA,iBAAI;;;IAArC,cAAiC;IAAjC,wDAAiC;;;IAS/D,8BAA2B;IACzB,kCAAoD;IACtD,iBAAM;;;IADS,cAAwB;IAAxB,6CAAwB;;ADe3C,MAAM,OAAO,mBAAmB;IACZ,eAAe,GAA6B,EAAE,CAAC;IAC/C,gBAAgB,GAAa,EAAE,CAAC;IAChC,YAAY,GAAG,KAAK,CAAC;IAErC,IAAW,iBAAiB;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACnE,OAAO,EAAqB,CAAC;IACjC,CAAC;IAED,IAAW,eAAe;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,kBAAkB,GAAG,UAAU,CAAC;IAC3C,CAAC;6GAjBQ,mBAAmB;6DAAnB,mBAAmB;YCnDhC,8BAAyB;YAOrB,AALF,qFAAoB,+DAK6C;YAOjE,qFAAmC;YAWnC,mFAAmC;YAInC,8CAG2B;YAE3B,qFAAuB;YAMzB,iBAAM;;YAtCJ,cAUC;YAVD,4GAUC;YAED,eASC;YATD,0DASC;YAED,cAEC;YAFD,0DAEC;YAGC,cAAqC;YAArC,uDAAqC;YAIvC,cAIC;YAJD,8CAIC;;;iFDaU,mBAAmB;cAzC/B,SAAS;6BACM,KAAK,YACP,uBAAuB,mBAqChB,uBAAuB,CAAC,MAAM;;kBAG9C,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kFAHG,mBAAmB","sourcesContent":["/**\n * @module step-review.component\n * @description Step 4 wrapper — hosts EntityReviewPanelComponent.\n * Also renders server-side validation errors returned from ValidateSchema().\n */\n\nimport { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport type { EntityTableSpec } from '../../../database-designer.types.js';\nimport { generateERDFromTableSpec } from '../../../database-designer-erd.js';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-step-review',\n templateUrl: './step-review.component.html',\n styles: [`\n .step-banner {\n display: flex; flex-direction: column; gap: 6px;\n padding: 12px 16px;\n font-size: 0.875rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n }\n .step-banner-validating {\n flex-direction: row; align-items: center; gap: 10px;\n color: var(--mj-text-secondary);\n }\n .step-banner-success {\n flex-direction: row; align-items: center; gap: 10px;\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n border-color: var(--mj-status-success-border);\n }\n .step-banner-error {\n background: var(--mj-status-error-bg);\n border-color: var(--mj-status-error-border);\n }\n .banner-err-item {\n display: flex; align-items: flex-start; gap: 8px;\n color: var(--mj-status-error-text);\n }\n .entity-description {\n margin: 12px 16px 0;\n font-size: 0.875rem;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n }\n .erd-container {\n padding: 0 16px 12px;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepReviewComponent {\n @Input() public TableDefinition: Partial<EntityTableSpec> = {};\n @Input() public ValidationErrors: string[] = [];\n @Input() public IsValidating = false;\n\n public get AsEntityTableSpec(): EntityTableSpec | null {\n const td = this.TableDefinition;\n if (!td.EntityName || !td.TableName || !td.SchemaName) return null;\n return td as EntityTableSpec;\n }\n\n public get ERDMermaidBlock(): string | null {\n const spec = this.AsEntityTableSpec;\n if (!spec) return null;\n const erd = generateERDFromTableSpec([spec]);\n if (!erd) return null;\n return `\\`\\`\\`mermaid\\n${erd}\\n\\`\\`\\``;\n }\n}\n","<div class=\"step-review\">\n\n @if (IsValidating) {\n <div class=\"step-banner step-banner-validating\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Validating schema…\n </div>\n } @else if (ValidationErrors.length === 0 && AsEntityTableSpec) {\n <div class=\"step-banner step-banner-success\">\n <i class=\"fa-solid fa-circle-check\"></i>\n Schema validated — review the definition below, then click <strong>Create Entity</strong> to build it.\n </div>\n }\n\n @if (ValidationErrors.length > 0) {\n <div class=\"step-banner step-banner-error\">\n @for (err of ValidationErrors; track $index) {\n <div class=\"banner-err-item\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n {{ err }}\n </div>\n }\n </div>\n }\n\n @if (TableDefinition.Description) {\n <p class=\"entity-description\">{{ TableDefinition.Description }}</p>\n }\n\n <mj-database-review-panel\n [TableDefinition]=\"AsEntityTableSpec\"\n ModificationType=\"create\">\n </mj-database-review-panel>\n\n @if (ERDMermaidBlock) {\n <div class=\"erd-container\">\n <mj-markdown [data]=\"ERDMermaidBlock\"></mj-markdown>\n </div>\n }\n\n</div>\n"]}
@@ -0,0 +1,55 @@
1
+ import { BaseDashboard } from '@memberjunction/ng-shared';
2
+ import { ResourceData } from '@memberjunction/core-entities';
3
+ import { DatabaseDesignerService } from '../services/database-designer.service.js';
4
+ import type { AccessibleEntity } from '../database-designer.types.js';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DatabaseDesignerDashboardComponent extends BaseDashboard {
7
+ /** Angular DI: write operations (create, modify, validate). */
8
+ protected readonly designerService: DatabaseDesignerService;
9
+ /** Change detection ref for OnPush updates. */
10
+ private readonly cdr;
11
+ /** Reference to the active modify component — used for close-guard state. */
12
+ private modifyRef?;
13
+ /**
14
+ * Passed as `[CanClose]` to the modify slide panel.
15
+ * Prevents the panel from closing while a pipeline is running and prompts the user
16
+ * for confirmation. Defined as an arrow function so `this` is captured correctly
17
+ * when called by `MjSlidePanelComponent` (no angular binding issues).
18
+ */
19
+ readonly ModifyPanelCanClose: () => boolean;
20
+ /** Entities displayed in EntityListComponent — set by loadData(). */
21
+ Entities: AccessibleEntity[];
22
+ IsLoadingEntities: boolean;
23
+ LoadError: string | null;
24
+ /** Whether the Create Wizard drawer is open. */
25
+ ShowCreateWizard: boolean;
26
+ /** ID of the entity currently being modified; null if panel is closed. */
27
+ ModifyEntityId: string | null;
28
+ /** ID to deep-link into on first load (from ?entity= query param). */
29
+ private _deepLinkEntityId;
30
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
31
+ /** Sync ?entity=<id> URL param; set initial slide-panel state. */
32
+ protected initDashboard(): void;
33
+ /** Load accessible entities from the engine's cached store. */
34
+ protected loadData(): Promise<void>;
35
+ /** Opens the Create Wizard drawer. */
36
+ OnNewEntity(): void;
37
+ /** Opens the Modify panel for an existing entity. */
38
+ OnEditEntity(entity: AccessibleEntity): void;
39
+ /** Opens the Modify panel (read-only view) for an existing entity. */
40
+ OnViewEntity(entity: AccessibleEntity): void;
41
+ /** Called when the Create Wizard drawer closes (cancel or success). */
42
+ OnWizardClosed(): void;
43
+ /** Called when the wizard successfully creates an entity. */
44
+ OnEntityCreated(): void;
45
+ /** Called when the Modify panel drawer closes. */
46
+ OnModifyPanelClosed(): void;
47
+ /** Called when the modify wizard successfully alters an entity. */
48
+ OnEntityModified(): void;
49
+ private openModifyPanel;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseDesignerDashboardComponent, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatabaseDesignerDashboardComponent, "mj-database-designer-dashboard", never, {}, {}, never, never, false, never>;
52
+ }
53
+ /** Tree-shaking prevention — called from module's public-api.ts. */
54
+ export declare function LoadDatabaseDesignerDashboard(): void;
55
+ //# sourceMappingURL=database-designer-dashboard.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-designer-dashboard.component.d.ts","sourceRoot":"","sources":["../../../src/DatabaseDesigner/components/database-designer-dashboard.component.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAyB,MAAM,2BAA2B,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;;AAEtE,qBAQa,kCAAmC,SAAQ,aAAa;IAIjE,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAmC;IAErE,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAIjD,6EAA6E;IACzC,OAAO,CAAC,SAAS,CAAC,CAA0B;IAIhF;;;;;OAKG;IACH,SAAgB,mBAAmB,QAAO,OAAO,CAM/C;IAIF,qEAAqE;IAC9D,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAElC,iBAAiB,UAAS;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIvC,gDAAgD;IACzC,gBAAgB,UAAS;IAEhC,0EAA0E;IACnE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5C,sEAAsE;IACtE,OAAO,CAAC,iBAAiB,CAAuB;IAI1C,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlE,kEAAkE;IAClE,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B,+DAA+D;cAC/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BzC,sCAAsC;IAC/B,WAAW,IAAI,IAAI;IAK1B,qDAAqD;IAC9C,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInD,sEAAsE;IAC/D,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAMnD,uEAAuE;IAChE,cAAc,IAAI,IAAI;IAK7B,6DAA6D;IACtD,eAAe,IAAI,IAAI;IAM9B,kDAAkD;IAC3C,mBAAmB,IAAI,IAAI;IAMlC,mEAAmE;IAC5D,gBAAgB,IAAI,IAAI;IAQ/B,OAAO,CAAC,eAAe;yCA1Id,kCAAkC;2CAAlC,kCAAkC;CA+I9C;AAED,oEAAoE;AACpE,wBAAgB,6BAA6B,IAAI,IAAI,CAA+B"}
@@ -0,0 +1,204 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @module database-designer-dashboard.component
9
+ * @description Root dashboard for the Database Designer feature area.
10
+ *
11
+ * Registered as 'DatabaseDesignerDashboard' via `@RegisterClass(BaseDashboard, ...)`.
12
+ * Registered as a navigation item via metadata (metadata/applications/).
13
+ *
14
+ * Lifecycle:
15
+ * - `initDashboard()` — sync ?entity= URL param (deep-link support), initialize slide-panel state
16
+ * - `loadData()` — delegate to DatabaseDesignerEngine singleton; pass result to EntityListComponent
17
+ *
18
+ * The wizard and modify panels open as MjSlidePanel drawers so the entity
19
+ * list remains visible behind them. The dashboard orchestrates all state
20
+ * transitions; child components communicate only via @Output events.
21
+ */
22
+ import { Component, ChangeDetectionStrategy, ChangeDetectorRef, inject, ViewChild, } from '@angular/core';
23
+ import { BaseDashboard, BaseResourceComponent } from '@memberjunction/ng-shared';
24
+ import { RegisterClass } from '@memberjunction/global';
25
+ import { DatabaseDesignerEngine } from '../services/database-designer.engine.js';
26
+ import { DatabaseDesignerService } from '../services/database-designer.service.js';
27
+ import { DatabaseModifyComponent } from './modify/database-modify.component.js';
28
+ import * as i0 from "@angular/core";
29
+ import * as i1 from "@memberjunction/ng-versions";
30
+ import * as i2 from "./entity-list.component";
31
+ import * as i3 from "./create-wizard/database-create-wizard.component";
32
+ import * as i4 from "./modify/database-modify.component";
33
+ function DatabaseDesignerDashboardComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
34
+ const _r1 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "mj-slide-panel", 5);
36
+ i0.ɵɵlistener("Closed", function DatabaseDesignerDashboardComponent_Conditional_3_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnWizardClosed()); });
37
+ i0.ɵɵelementStart(1, "mj-database-create-wizard", 6);
38
+ i0.ɵɵlistener("EntityCreated", function DatabaseDesignerDashboardComponent_Conditional_3_Template_mj_database_create_wizard_EntityCreated_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnEntityCreated()); })("Cancelled", function DatabaseDesignerDashboardComponent_Conditional_3_Template_mj_database_create_wizard_Cancelled_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnWizardClosed()); });
39
+ i0.ɵɵelementEnd()();
40
+ } if (rf & 2) {
41
+ const ctx_r1 = i0.ɵɵnextContext();
42
+ i0.ɵɵproperty("Visible", ctx_r1.ShowCreateWizard)("Resizable", true)("WidthPx", 9999)("MaxWidthRatio", 1)("MinWidthPx", 960);
43
+ } }
44
+ function DatabaseDesignerDashboardComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
45
+ const _r3 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "mj-slide-panel", 7);
47
+ i0.ɵɵlistener("Closed", function DatabaseDesignerDashboardComponent_Conditional_4_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnModifyPanelClosed()); });
48
+ i0.ɵɵelementStart(1, "mj-database-modify", 8);
49
+ i0.ɵɵlistener("EntityModified", function DatabaseDesignerDashboardComponent_Conditional_4_Template_mj_database_modify_EntityModified_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnEntityModified()); })("Cancelled", function DatabaseDesignerDashboardComponent_Conditional_4_Template_mj_database_modify_Cancelled_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnModifyPanelClosed()); });
50
+ i0.ɵɵelementEnd()();
51
+ } if (rf & 2) {
52
+ const ctx_r1 = i0.ɵɵnextContext();
53
+ i0.ɵɵproperty("Visible", !!ctx_r1.ModifyEntityId)("Resizable", true)("WidthPx", 9999)("MaxWidthRatio", 1)("MinWidthPx", 960)("CanClose", ctx_r1.ModifyPanelCanClose);
54
+ i0.ɵɵadvance();
55
+ i0.ɵɵproperty("EntityId", ctx_r1.ModifyEntityId);
56
+ } }
57
+ let DatabaseDesignerDashboardComponent = class DatabaseDesignerDashboardComponent extends BaseDashboard {
58
+ // ─── Injected services ─────────────────────────────────────────────────
59
+ /** Angular DI: write operations (create, modify, validate). */
60
+ designerService = inject(DatabaseDesignerService);
61
+ /** Change detection ref for OnPush updates. */
62
+ cdr = inject(ChangeDetectorRef);
63
+ // ─── ViewChild ─────────────────────────────────────────────────────────
64
+ /** Reference to the active modify component — used for close-guard state. */
65
+ modifyRef;
66
+ // ─── Slide-panel close guard ───────────────────────────────────────────
67
+ /**
68
+ * Passed as `[CanClose]` to the modify slide panel.
69
+ * Prevents the panel from closing while a pipeline is running and prompts the user
70
+ * for confirmation. Defined as an arrow function so `this` is captured correctly
71
+ * when called by `MjSlidePanelComponent` (no angular binding issues).
72
+ */
73
+ ModifyPanelCanClose = () => {
74
+ if (!this.modifyRef?.IsPipelineRunning)
75
+ return true;
76
+ return window.confirm('A pipeline operation is in progress. Closing will hide the progress panel ' +
77
+ 'but the operation will continue running on the server.\n\nAre you sure?');
78
+ };
79
+ // ─── Entity list ───────────────────────────────────────────────────────
80
+ /** Entities displayed in EntityListComponent — set by loadData(). */
81
+ Entities = [];
82
+ IsLoadingEntities = false;
83
+ LoadError = null;
84
+ // ─── Slide panel state ─────────────────────────────────────────────────
85
+ /** Whether the Create Wizard drawer is open. */
86
+ ShowCreateWizard = false;
87
+ /** ID of the entity currently being modified; null if panel is closed. */
88
+ ModifyEntityId = null;
89
+ /** ID to deep-link into on first load (from ?entity= query param). */
90
+ _deepLinkEntityId = null;
91
+ // ─── BaseDashboard implementation ──────────────────────────────────────
92
+ async GetResourceDisplayName(_data) {
93
+ return 'Database Designer';
94
+ }
95
+ /** Sync ?entity=<id> URL param; set initial slide-panel state. */
96
+ initDashboard() {
97
+ const params = this.GetQueryParams();
98
+ if (params['entity']) {
99
+ this._deepLinkEntityId = params['entity'];
100
+ }
101
+ }
102
+ /** Load accessible entities from the engine's cached store. */
103
+ async loadData() {
104
+ this.IsLoadingEntities = true;
105
+ this.LoadError = null;
106
+ this.cdr.markForCheck();
107
+ try {
108
+ this.Entities = await DatabaseDesignerEngine.Instance.loadAccessibleEntities();
109
+ // Honor deep-link: open modify panel if the entity exists in the list.
110
+ if (this._deepLinkEntityId) {
111
+ const target = this.Entities.find(e => e.entityId === this._deepLinkEntityId);
112
+ if (target) {
113
+ this.openModifyPanel(target);
114
+ }
115
+ this._deepLinkEntityId = null;
116
+ }
117
+ }
118
+ catch (err) {
119
+ this.LoadError = err instanceof Error ? err.message : String(err);
120
+ }
121
+ finally {
122
+ this.IsLoadingEntities = false;
123
+ this.cdr.markForCheck();
124
+ }
125
+ }
126
+ // ─── Entity list event handlers ────────────────────────────────────────
127
+ /** Opens the Create Wizard drawer. */
128
+ OnNewEntity() {
129
+ this.ShowCreateWizard = true;
130
+ this.cdr.markForCheck();
131
+ }
132
+ /** Opens the Modify panel for an existing entity. */
133
+ OnEditEntity(entity) {
134
+ this.openModifyPanel(entity);
135
+ }
136
+ /** Opens the Modify panel (read-only view) for an existing entity. */
137
+ OnViewEntity(entity) {
138
+ this.openModifyPanel(entity);
139
+ }
140
+ // ─── Slide-panel event handlers ────────────────────────────────────────
141
+ /** Called when the Create Wizard drawer closes (cancel or success). */
142
+ OnWizardClosed() {
143
+ this.ShowCreateWizard = false;
144
+ this.cdr.markForCheck();
145
+ }
146
+ /** Called when the wizard successfully creates an entity. */
147
+ OnEntityCreated() {
148
+ this.ShowCreateWizard = false;
149
+ DatabaseDesignerEngine.Instance.invalidateCache();
150
+ this.loadData();
151
+ }
152
+ /** Called when the Modify panel drawer closes. */
153
+ OnModifyPanelClosed() {
154
+ this.ModifyEntityId = null;
155
+ this.UpdateQueryParams({ entity: null });
156
+ this.cdr.markForCheck();
157
+ }
158
+ /** Called when the modify wizard successfully alters an entity. */
159
+ OnEntityModified() {
160
+ this.ModifyEntityId = null;
161
+ DatabaseDesignerEngine.Instance.invalidateCache();
162
+ this.loadData();
163
+ }
164
+ // ─── Helpers ───────────────────────────────────────────────────────────
165
+ openModifyPanel(entity) {
166
+ this.ModifyEntityId = entity.entityId;
167
+ this.UpdateQueryParams({ entity: entity.entityId });
168
+ this.cdr.markForCheck();
169
+ }
170
+ static ɵfac = /*@__PURE__*/ (() => { let ɵDatabaseDesignerDashboardComponent_BaseFactory; return function DatabaseDesignerDashboardComponent_Factory(__ngFactoryType__) { return (ɵDatabaseDesignerDashboardComponent_BaseFactory || (ɵDatabaseDesignerDashboardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DatabaseDesignerDashboardComponent)))(__ngFactoryType__ || DatabaseDesignerDashboardComponent); }; })();
171
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DatabaseDesignerDashboardComponent, selectors: [["mj-database-designer-dashboard"]], viewQuery: function DatabaseDesignerDashboardComponent_Query(rf, ctx) { if (rf & 1) {
172
+ i0.ɵɵviewQuery(DatabaseModifyComponent, 5);
173
+ } if (rf & 2) {
174
+ let _t;
175
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modifyRef = _t.first);
176
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [[1, "database-designer-dashboard"], [1, "database-designer-content"], [3, "NewEntity", "EditEntity", "ViewEntity"], ["Mode", "slide", "Title", "New Entity", 3, "Visible", "Resizable", "WidthPx", "MaxWidthRatio", "MinWidthPx"], ["Mode", "slide", "Title", "Edit Entity", 3, "Visible", "Resizable", "WidthPx", "MaxWidthRatio", "MinWidthPx", "CanClose"], ["Mode", "slide", "Title", "New Entity", 3, "Closed", "Visible", "Resizable", "WidthPx", "MaxWidthRatio", "MinWidthPx"], [3, "EntityCreated", "Cancelled"], ["Mode", "slide", "Title", "Edit Entity", 3, "Closed", "Visible", "Resizable", "WidthPx", "MaxWidthRatio", "MinWidthPx", "CanClose"], [3, "EntityModified", "Cancelled", "EntityId"]], template: function DatabaseDesignerDashboardComponent_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "mj-database-entity-list", 2);
178
+ i0.ɵɵlistener("NewEntity", function DatabaseDesignerDashboardComponent_Template_mj_database_entity_list_NewEntity_2_listener() { return ctx.OnNewEntity(); })("EditEntity", function DatabaseDesignerDashboardComponent_Template_mj_database_entity_list_EditEntity_2_listener($event) { return ctx.OnEditEntity($event); })("ViewEntity", function DatabaseDesignerDashboardComponent_Template_mj_database_entity_list_ViewEntity_2_listener($event) { return ctx.OnViewEntity($event); });
179
+ i0.ɵɵelementEnd()();
180
+ i0.ɵɵconditionalCreate(3, DatabaseDesignerDashboardComponent_Conditional_3_Template, 2, 5, "mj-slide-panel", 3);
181
+ i0.ɵɵconditionalCreate(4, DatabaseDesignerDashboardComponent_Conditional_4_Template, 2, 7, "mj-slide-panel", 4);
182
+ i0.ɵɵelementEnd();
183
+ } if (rf & 2) {
184
+ i0.ɵɵadvance(3);
185
+ i0.ɵɵconditional(ctx.ShowCreateWizard ? 3 : -1);
186
+ i0.ɵɵadvance();
187
+ i0.ɵɵconditional(ctx.ModifyEntityId ? 4 : -1);
188
+ } }, dependencies: [i1.MjSlidePanelComponent, i2.EntityListComponent, i3.DatabaseCreateWizardComponent, i4.DatabaseModifyComponent], styles: ["\n\n\n.database-designer-dashboard[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n\n\n\n.database-designer-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n margin: 16px;\n box-shadow: 0 1px 4px color-mix(in srgb, var(--mj-border-strong) 20%, transparent);\n}\n\n\n\n\n.panel-placeholder[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 60px 32px;\n text-align: center;\n color: var(--mj-text-muted);\n}\n\n.panel-placeholder[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n}\n\n.panel-placeholder[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.95rem;\n}"], changeDetection: 0 });
189
+ };
190
+ DatabaseDesignerDashboardComponent = __decorate([
191
+ RegisterClass(BaseResourceComponent, 'DatabaseDesignerDashboard')
192
+ ], DatabaseDesignerDashboardComponent);
193
+ export { DatabaseDesignerDashboardComponent };
194
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DatabaseDesignerDashboardComponent, [{
195
+ type: Component,
196
+ args: [{ standalone: false, selector: 'mj-database-designer-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"database-designer-dashboard\">\n\n <!-- \u2500\u2500 Main entity list \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"database-designer-content\">\n <mj-database-entity-list\n (NewEntity)=\"OnNewEntity()\"\n (EditEntity)=\"OnEditEntity($event)\"\n (ViewEntity)=\"OnViewEntity($event)\">\n </mj-database-entity-list>\n </div>\n\n <!-- \u2500\u2500 Create Wizard slide-over panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (ShowCreateWizard) {\n <mj-slide-panel\n Mode=\"slide\"\n Title=\"New Entity\"\n [Visible]=\"ShowCreateWizard\"\n [Resizable]=\"true\"\n [WidthPx]=\"9999\"\n [MaxWidthRatio]=\"1\"\n [MinWidthPx]=\"960\"\n (Closed)=\"OnWizardClosed()\">\n <mj-database-create-wizard\n (EntityCreated)=\"OnEntityCreated()\"\n (Cancelled)=\"OnWizardClosed()\">\n </mj-database-create-wizard>\n </mj-slide-panel>\n }\n\n <!-- \u2500\u2500 Modify slide-over panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (ModifyEntityId) {\n <mj-slide-panel\n Mode=\"slide\"\n Title=\"Edit Entity\"\n [Visible]=\"!!ModifyEntityId\"\n [Resizable]=\"true\"\n [WidthPx]=\"9999\"\n [MaxWidthRatio]=\"1\"\n [MinWidthPx]=\"960\"\n [CanClose]=\"ModifyPanelCanClose\"\n (Closed)=\"OnModifyPanelClosed()\">\n <mj-database-modify\n [EntityId]=\"ModifyEntityId!\"\n (EntityModified)=\"OnEntityModified()\"\n (Cancelled)=\"OnModifyPanelClosed()\">\n </mj-database-modify>\n </mj-slide-panel>\n }\n\n</div>\n", styles: ["/* \u2500\u2500 Dashboard root \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.database-designer-dashboard {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n/* \u2500\u2500 Content area \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.database-designer-content {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n margin: 16px;\n box-shadow: 0 1px 4px color-mix(in srgb, var(--mj-border-strong) 20%, transparent);\n}\n\n/* \u2500\u2500 Placeholder (pre-Phase 5d/5e wiring) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.panel-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 60px 32px;\n text-align: center;\n color: var(--mj-text-muted);\n}\n\n.panel-placeholder i {\n font-size: 2rem;\n}\n\n.panel-placeholder p {\n margin: 0;\n font-size: 0.95rem;\n}\n"] }]
197
+ }], null, { modifyRef: [{
198
+ type: ViewChild,
199
+ args: [DatabaseModifyComponent]
200
+ }] }); })();
201
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DatabaseDesignerDashboardComponent, { className: "DatabaseDesignerDashboardComponent", filePath: "src/DatabaseDesigner/components/database-designer-dashboard.component.ts", lineNumber: 38 }); })();
202
+ /** Tree-shaking prevention — called from module's public-api.ts. */
203
+ export function LoadDatabaseDesignerDashboard() { }
204
+ //# sourceMappingURL=database-designer-dashboard.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-designer-dashboard.component.js","sourceRoot":"","sources":["../../../src/DatabaseDesigner/components/database-designer-dashboard.component.ts","../../../src/DatabaseDesigner/components/database-designer-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module database-designer-dashboard.component\n * @description Root dashboard for the Database Designer feature area.\n *\n * Registered as 'DatabaseDesignerDashboard' via `@RegisterClass(BaseDashboard, ...)`.\n * Registered as a navigation item via metadata (metadata/applications/).\n *\n * Lifecycle:\n * - `initDashboard()` — sync ?entity= URL param (deep-link support), initialize slide-panel state\n * - `loadData()` — delegate to DatabaseDesignerEngine singleton; pass result to EntityListComponent\n *\n * The wizard and modify panels open as MjSlidePanel drawers so the entity\n * list remains visible behind them. The dashboard orchestrates all state\n * transitions; child components communicate only via @Output events.\n */\n\nimport {\n Component, ChangeDetectionStrategy, ChangeDetectorRef,\n inject, ViewChild,\n} from '@angular/core';\nimport { BaseDashboard, BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RegisterClass } from '@memberjunction/global';\nimport { ResourceData } from '@memberjunction/core-entities';\n\nimport { DatabaseDesignerEngine } from '../services/database-designer.engine.js';\nimport { DatabaseDesignerService } from '../services/database-designer.service.js';\nimport { DatabaseModifyComponent } from './modify/database-modify.component.js';\nimport type { AccessibleEntity } from '../database-designer.types.js';\n\n@Component({\n standalone: false,\n selector: 'mj-database-designer-dashboard',\n templateUrl: './database-designer-dashboard.component.html',\n styleUrls: ['./database-designer-dashboard.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@RegisterClass(BaseResourceComponent, 'DatabaseDesignerDashboard')\nexport class DatabaseDesignerDashboardComponent extends BaseDashboard {\n\n // ─── Injected services ─────────────────────────────────────────────────\n\n /** Angular DI: write operations (create, modify, validate). */\n protected readonly designerService = inject(DatabaseDesignerService);\n\n /** Change detection ref for OnPush updates. */\n private readonly cdr = inject(ChangeDetectorRef);\n\n // ─── ViewChild ─────────────────────────────────────────────────────────\n\n /** Reference to the active modify component — used for close-guard state. */\n @ViewChild(DatabaseModifyComponent) private modifyRef?: DatabaseModifyComponent;\n\n // ─── Slide-panel close guard ───────────────────────────────────────────\n\n /**\n * Passed as `[CanClose]` to the modify slide panel.\n * Prevents the panel from closing while a pipeline is running and prompts the user\n * for confirmation. Defined as an arrow function so `this` is captured correctly\n * when called by `MjSlidePanelComponent` (no angular binding issues).\n */\n public readonly ModifyPanelCanClose = (): boolean => {\n if (!this.modifyRef?.IsPipelineRunning) return true;\n return window.confirm(\n 'A pipeline operation is in progress. Closing will hide the progress panel ' +\n 'but the operation will continue running on the server.\\n\\nAre you sure?'\n );\n };\n\n // ─── Entity list ───────────────────────────────────────────────────────\n\n /** Entities displayed in EntityListComponent — set by loadData(). */\n public Entities: AccessibleEntity[] = [];\n\n public IsLoadingEntities = false;\n public LoadError: string | null = null;\n\n // ─── Slide panel state ─────────────────────────────────────────────────\n\n /** Whether the Create Wizard drawer is open. */\n public ShowCreateWizard = false;\n\n /** ID of the entity currently being modified; null if panel is closed. */\n public ModifyEntityId: string | null = null;\n\n /** ID to deep-link into on first load (from ?entity= query param). */\n private _deepLinkEntityId: string | null = null;\n\n // ─── BaseDashboard implementation ──────────────────────────────────────\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Database Designer';\n }\n\n /** Sync ?entity=<id> URL param; set initial slide-panel state. */\n protected initDashboard(): void {\n const params = this.GetQueryParams();\n if (params['entity']) {\n this._deepLinkEntityId = params['entity'];\n }\n }\n\n /** Load accessible entities from the engine's cached store. */\n protected async loadData(): Promise<void> {\n this.IsLoadingEntities = true;\n this.LoadError = null;\n this.cdr.markForCheck();\n\n try {\n this.Entities = await DatabaseDesignerEngine.Instance.loadAccessibleEntities();\n\n // Honor deep-link: open modify panel if the entity exists in the list.\n if (this._deepLinkEntityId) {\n const target = this.Entities.find(e => e.entityId === this._deepLinkEntityId);\n if (target) {\n this.openModifyPanel(target);\n }\n this._deepLinkEntityId = null;\n }\n } catch (err) {\n this.LoadError = err instanceof Error ? err.message : String(err);\n } finally {\n this.IsLoadingEntities = false;\n this.cdr.markForCheck();\n }\n }\n\n // ─── Entity list event handlers ────────────────────────────────────────\n\n /** Opens the Create Wizard drawer. */\n public OnNewEntity(): void {\n this.ShowCreateWizard = true;\n this.cdr.markForCheck();\n }\n\n /** Opens the Modify panel for an existing entity. */\n public OnEditEntity(entity: AccessibleEntity): void {\n this.openModifyPanel(entity);\n }\n\n /** Opens the Modify panel (read-only view) for an existing entity. */\n public OnViewEntity(entity: AccessibleEntity): void {\n this.openModifyPanel(entity);\n }\n\n // ─── Slide-panel event handlers ────────────────────────────────────────\n\n /** Called when the Create Wizard drawer closes (cancel or success). */\n public OnWizardClosed(): void {\n this.ShowCreateWizard = false;\n this.cdr.markForCheck();\n }\n\n /** Called when the wizard successfully creates an entity. */\n public OnEntityCreated(): void {\n this.ShowCreateWizard = false;\n DatabaseDesignerEngine.Instance.invalidateCache();\n this.loadData();\n }\n\n /** Called when the Modify panel drawer closes. */\n public OnModifyPanelClosed(): void {\n this.ModifyEntityId = null;\n this.UpdateQueryParams({ entity: null });\n this.cdr.markForCheck();\n }\n\n /** Called when the modify wizard successfully alters an entity. */\n public OnEntityModified(): void {\n this.ModifyEntityId = null;\n DatabaseDesignerEngine.Instance.invalidateCache();\n this.loadData();\n }\n\n // ─── Helpers ───────────────────────────────────────────────────────────\n\n private openModifyPanel(entity: AccessibleEntity): void {\n this.ModifyEntityId = entity.entityId;\n this.UpdateQueryParams({ entity: entity.entityId });\n this.cdr.markForCheck();\n }\n}\n\n/** Tree-shaking prevention — called from module's public-api.ts. */\nexport function LoadDatabaseDesignerDashboard(): void { /* noop — forces import */ }\n","<div class=\"database-designer-dashboard\">\n\n <!-- ── Main entity list ───────────────────────────────────────────────── -->\n <div class=\"database-designer-content\">\n <mj-database-entity-list\n (NewEntity)=\"OnNewEntity()\"\n (EditEntity)=\"OnEditEntity($event)\"\n (ViewEntity)=\"OnViewEntity($event)\">\n </mj-database-entity-list>\n </div>\n\n <!-- ── Create Wizard slide-over panel ────────────────────────────────── -->\n @if (ShowCreateWizard) {\n <mj-slide-panel\n Mode=\"slide\"\n Title=\"New Entity\"\n [Visible]=\"ShowCreateWizard\"\n [Resizable]=\"true\"\n [WidthPx]=\"9999\"\n [MaxWidthRatio]=\"1\"\n [MinWidthPx]=\"960\"\n (Closed)=\"OnWizardClosed()\">\n <mj-database-create-wizard\n (EntityCreated)=\"OnEntityCreated()\"\n (Cancelled)=\"OnWizardClosed()\">\n </mj-database-create-wizard>\n </mj-slide-panel>\n }\n\n <!-- ── Modify slide-over panel ───────────────────────────────────────── -->\n @if (ModifyEntityId) {\n <mj-slide-panel\n Mode=\"slide\"\n Title=\"Edit Entity\"\n [Visible]=\"!!ModifyEntityId\"\n [Resizable]=\"true\"\n [WidthPx]=\"9999\"\n [MaxWidthRatio]=\"1\"\n [MinWidthPx]=\"960\"\n [CanClose]=\"ModifyPanelCanClose\"\n (Closed)=\"OnModifyPanelClosed()\">\n <mj-database-modify\n [EntityId]=\"ModifyEntityId!\"\n (EntityModified)=\"OnEntityModified()\"\n (Cancelled)=\"OnModifyPanelClosed()\">\n </mj-database-modify>\n </mj-slide-panel>\n }\n\n</div>\n"]}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @module entity-list.component
3
+ * @description Displays the list of entities accessible to the current user.
4
+ *
5
+ * Loaded from `DatabaseDesignerEngine.Instance.loadAccessibleEntities()` —
6
+ * data access goes through the engine singleton, not this component directly,
7
+ * so the cache is shared across wizard openings.
8
+ */
9
+ import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
10
+ import type { AccessibleEntity } from '../database-designer.types.js';
11
+ import * as i0 from "@angular/core";
12
+ type SortField = 'entityName' | 'tableName' | 'schemaName' | 'createdAt' | 'owner';
13
+ type SortDirection = 'asc' | 'desc';
14
+ export declare class EntityListComponent implements OnInit, OnDestroy {
15
+ /** Emitted when the user clicks "Edit" on an entity row. */
16
+ readonly EditEntity: EventEmitter<AccessibleEntity>;
17
+ /** Emitted when the user clicks "View Details" on an entity row. */
18
+ readonly ViewEntity: EventEmitter<AccessibleEntity>;
19
+ /** Emitted when the user clicks "New Entity". */
20
+ readonly NewEntity: EventEmitter<void>;
21
+ IsLoading: boolean;
22
+ ErrorMessage: string | null;
23
+ /** Full unfiltered list from the engine. */
24
+ private _allEntities;
25
+ /** Cached sorted unique schema names — recomputed only when _allEntities changes. */
26
+ private _availableFilterSchemas;
27
+ /** Currently displayed (filtered + sorted) rows. */
28
+ FilteredEntities: AccessibleEntity[];
29
+ private readonly _search$;
30
+ private readonly _schema$;
31
+ private readonly _sortField$;
32
+ private readonly _sortDir$;
33
+ private readonly _destroy$;
34
+ private readonly cdr;
35
+ ngOnInit(): void;
36
+ ngOnDestroy(): void;
37
+ get SearchTerm(): string;
38
+ set SearchTerm(v: string);
39
+ get SelectedSchema(): string;
40
+ set SelectedSchema(v: string);
41
+ /** Unique schema names present in the loaded entity list, sorted alphabetically. */
42
+ get AvailableFilterSchemas(): string[];
43
+ get SortField(): SortField;
44
+ get SortDirection(): SortDirection;
45
+ /** Toggle sort: same field flips direction; new field defaults to asc. */
46
+ OnSortChange(field: SortField): void;
47
+ OnEditEntity(entity: AccessibleEntity): void;
48
+ OnViewEntity(entity: AccessibleEntity): void;
49
+ OnNewEntity(): void;
50
+ OnRefresh(): void;
51
+ TrackByEntityId(_: number, entity: AccessibleEntity): string;
52
+ FormatDate(date: Date): string;
53
+ private setupFilter;
54
+ private loadEntities;
55
+ private applyFilterAndSort;
56
+ private sortValue;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntityListComponent, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntityListComponent, "mj-database-entity-list", never, {}, { "EditEntity": "EditEntity"; "ViewEntity": "ViewEntity"; "NewEntity": "NewEntity"; }, never, never, false, never>;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=entity-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-list.component.d.ts","sourceRoot":"","sources":["../../../src/DatabaseDesigner/components/entity-list.component.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACQ,MAAM,EAAE,SAAS,EAAU,YAAY,EAErD,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;;AAItE,KAAK,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AACnF,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpC,qBAOa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAEzD,4DAA4D;IAC5D,SAA0B,UAAU,iCAAwC;IAC5E,oEAAoE;IACpE,SAA0B,UAAU,iCAAwC;IAC5E,iDAAiD;IACjD,SAA0B,SAAS,qBAA4B;IAExD,SAAS,UAAS;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C,4CAA4C;IAC5C,OAAO,CAAC,YAAY,CAA0B;IAE9C,qFAAqF;IACrF,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,oDAAoD;IAC7C,gBAAgB,EAAE,gBAAgB,EAAE,CAAM;IAEjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgD;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAIjD,QAAQ,IAAI,IAAI;IAKhB,WAAW,IAAI,IAAI;IAOnB,IAAI,UAAU,IAAI,MAAM,CAAgC;IACxD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAA4B;IAEpD,IAAI,cAAc,IAAI,MAAM,CAAgC;IAC5D,IAAI,cAAc,CAAC,CAAC,EAAE,MAAM,EAA4B;IAExD,oFAAoF;IACpF,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAAyC;IAE/E,IAAI,SAAS,IAAI,SAAS,CAAmC;IAC7D,IAAI,aAAa,IAAI,aAAa,CAAiC;IAEnE,0EAA0E;IACnE,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IASpC,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI5C,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI5C,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,IAAI;IAKjB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAI5D,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAMrC,OAAO,CAAC,WAAW;YAaL,YAAY;IAwB1B,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,SAAS;yCA3JR,mBAAmB;2CAAnB,mBAAmB;CAqK/B"}