@memberjunction/ng-dashboards 5.22.0 → 5.23.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 (204) hide show
  1. package/README.md +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +275 -64
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2645 -436
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +240 -6
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2166 -256
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +1 -2
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +12 -27
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  27. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  28. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  29. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  30. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  31. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  32. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  33. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  34. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  35. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  36. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  37. package/dist/Actions/components/actions-list-view.component.js +82 -96
  38. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  39. package/dist/Actions/components/actions-overview.component.js +130 -134
  40. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  41. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  42. package/dist/Actions/components/categories-list-view.component.js +40 -46
  43. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  44. package/dist/Actions/components/code-management.component.js +2 -2
  45. package/dist/Actions/components/code-management.component.js.map +1 -1
  46. package/dist/Actions/components/entity-integration.component.js +2 -2
  47. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  49. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  50. package/dist/Actions/components/executions-list-view.component.js +2 -2
  51. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  53. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  54. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  55. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  56. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  57. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  58. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  59. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  61. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  63. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  65. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  66. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  67. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  68. package/dist/Actions/components/security-permissions.component.js +2 -2
  69. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  70. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  71. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  72. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  73. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  74. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  75. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  76. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  77. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  78. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  79. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  81. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  83. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  84. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  88. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  96. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  98. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  100. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  102. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  104. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  105. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  106. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  107. package/dist/Home/home-dashboard.component.js +4 -4
  108. package/dist/Home/home-dashboard.component.js.map +1 -1
  109. package/dist/Integration/components/connections/connections.component.js +4 -4
  110. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  111. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +246 -259
  112. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  113. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  114. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  115. package/dist/Integration/integration.module.d.ts +6 -10
  116. package/dist/Integration/integration.module.d.ts.map +1 -1
  117. package/dist/Integration/integration.module.js +12 -20
  118. package/dist/Integration/integration.module.js.map +1 -1
  119. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +106 -0
  120. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  121. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +607 -0
  122. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  123. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +7 -2
  124. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  125. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +59 -31
  126. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  127. package/dist/KnowledgeHub/index.d.ts +1 -0
  128. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  129. package/dist/KnowledgeHub/index.js +1 -0
  130. package/dist/KnowledgeHub/index.js.map +1 -1
  131. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  132. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  133. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  134. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  135. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  136. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  137. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  138. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  139. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  140. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  141. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  142. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  143. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  144. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  145. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  146. package/dist/MCP/mcp-dashboard.component.js +2 -2
  147. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  148. package/dist/MCP/mcp.module.d.ts +6 -9
  149. package/dist/MCP/mcp.module.d.ts.map +1 -1
  150. package/dist/MCP/mcp.module.js +20 -22
  151. package/dist/MCP/mcp.module.js.map +1 -1
  152. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  153. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  154. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  155. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  156. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  157. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  158. package/dist/Testing/testing-dashboard.component.js +9 -10
  159. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  160. package/dist/actions-dashboards.module.d.ts +8 -13
  161. package/dist/actions-dashboards.module.d.ts.map +1 -1
  162. package/dist/actions-dashboards.module.js +6 -27
  163. package/dist/actions-dashboards.module.js.map +1 -1
  164. package/dist/ai-dashboards.module.d.ts +16 -20
  165. package/dist/ai-dashboards.module.d.ts.map +1 -1
  166. package/dist/ai-dashboards.module.js +23 -44
  167. package/dist/ai-dashboards.module.js.map +1 -1
  168. package/dist/communication-dashboards.module.d.ts +4 -8
  169. package/dist/communication-dashboards.module.d.ts.map +1 -1
  170. package/dist/communication-dashboards.module.js +0 -19
  171. package/dist/communication-dashboards.module.js.map +1 -1
  172. package/dist/component-studio-dashboards.module.d.ts +7 -11
  173. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  174. package/dist/component-studio-dashboards.module.js +22 -34
  175. package/dist/component-studio-dashboards.module.js.map +1 -1
  176. package/dist/core-dashboards.module.d.ts +12 -18
  177. package/dist/core-dashboards.module.d.ts.map +1 -1
  178. package/dist/core-dashboards.module.js +15 -31
  179. package/dist/core-dashboards.module.js.map +1 -1
  180. package/dist/credentials-dashboards.module.d.ts +5 -8
  181. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  182. package/dist/credentials-dashboards.module.js +3 -19
  183. package/dist/credentials-dashboards.module.js.map +1 -1
  184. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  185. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  186. package/dist/data-explorer-dashboards.module.js +0 -27
  187. package/dist/data-explorer-dashboards.module.js.map +1 -1
  188. package/dist/lists-dashboards.module.d.ts +5 -8
  189. package/dist/lists-dashboards.module.d.ts.map +1 -1
  190. package/dist/lists-dashboards.module.js +3 -19
  191. package/dist/lists-dashboards.module.js.map +1 -1
  192. package/dist/public-api.d.ts +1 -0
  193. package/dist/public-api.d.ts.map +1 -1
  194. package/dist/public-api.js +1 -0
  195. package/dist/public-api.js.map +1 -1
  196. package/dist/scheduling-dashboards.module.d.ts +6 -10
  197. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  198. package/dist/scheduling-dashboards.module.js +3 -23
  199. package/dist/scheduling-dashboards.module.js.map +1 -1
  200. package/dist/testing-dashboards.module.d.ts +7 -13
  201. package/dist/testing-dashboards.module.d.ts.map +1 -1
  202. package/dist/testing-dashboards.module.js +0 -27
  203. package/dist/testing-dashboards.module.js.map +1 -1
  204. package/package.json +47 -55
@@ -1 +1 @@
1
- {"version":3,"file":"new-category-panel.component.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/new-category-panel.component.ts","../../../../src/Actions/components/explorer/new-category-panel.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Metadata, LogError } from '@memberjunction/core';\nimport { MJActionCategoryEntity } from '@memberjunction/core-entities';\nimport { ActionExplorerStateService } from '../../services/action-explorer-state.service';\nimport { UUIDsEqual } from '@memberjunction/global';\n\n@Component({\n standalone: false,\n selector: 'mj-new-category-panel',\n templateUrl: './new-category-panel.component.html',\n styleUrls: ['./new-category-panel.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('slideIn', [\n transition(':enter', [\n style({ transform: 'translateX(100%)', opacity: 0 }),\n animate('250ms ease-out', style({ transform: 'translateX(0)', opacity: 1 }))\n ]),\n transition(':leave', [\n animate('200ms ease-in', style({ transform: 'translateX(100%)', opacity: 0 }))\n ])\n ])\n ]\n})\nexport class NewCategoryPanelComponent implements OnInit, OnDestroy {\n @Input() Categories: MJActionCategoryEntity[] = [];\n @Input() PreselectedParentId: string | null = null;\n @Output() CategoryCreated = new EventEmitter<MJActionCategoryEntity>();\n @Output() Close = new EventEmitter<void>();\n\n public IsOpen = false;\n public IsSaving = false;\n\n // Form fields\n public Name = '';\n public Description = '';\n public ParentID: string | null = null;\n\n // Validation\n public Errors: { [key: string]: string } = {};\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public StateService: ActionExplorerStateService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.StateService.NewCategoryPanelOpen$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(isOpen => {\n this.IsOpen = isOpen;\n if (isOpen) {\n this.resetForm();\n if (this.PreselectedParentId) {\n this.ParentID = this.PreselectedParentId;\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private resetForm(): void {\n this.Name = '';\n this.Description = '';\n this.ParentID = this.PreselectedParentId;\n this.Errors = {};\n this.IsSaving = false;\n }\n\n public onClose(): void {\n this.StateService.closeNewCategoryPanel();\n this.Close.emit();\n }\n\n public onBackdropClick(event: MouseEvent): void {\n if ((event.target as HTMLElement).classList.contains('panel-backdrop')) {\n this.onClose();\n }\n }\n\n public validate(): boolean {\n this.Errors = {};\n\n if (!this.Name || this.Name.trim().length === 0) {\n this.Errors['name'] = 'Category name is required';\n } else if (this.Name.trim().length < 2) {\n this.Errors['name'] = 'Category name must be at least 2 characters';\n } else if (this.Name.trim().length > 200) {\n this.Errors['name'] = 'Category name must be less than 200 characters';\n }\n\n // Check for duplicate names within same parent\n const existingCategory = this.Categories.find(c =>\n c.Name.toLowerCase() === this.Name.trim().toLowerCase() &&\n (c.ParentID || null) === (this.ParentID || null)\n );\n if (existingCategory) {\n this.Errors['name'] = 'A category with this name already exists at this level';\n }\n\n return Object.keys(this.Errors).length === 0;\n }\n\n public async onSave(): Promise<void> {\n if (!this.validate()) {\n this.cdr.markForCheck();\n return;\n }\n\n this.IsSaving = true;\n this.cdr.markForCheck();\n\n try {\n const md = new Metadata();\n const category = await md.GetEntityObject<MJActionCategoryEntity>('MJ: Action Categories');\n\n category.Name = this.Name.trim();\n category.Description = this.Description.trim() || null;\n category.ParentID = this.ParentID || null;\n\n const saved = await category.Save();\n\n if (saved) {\n this.CategoryCreated.emit(category);\n this.StateService.closeNewCategoryPanel();\n } else {\n this.Errors['general'] = 'Failed to save category. Please try again.';\n }\n } catch (error) {\n LogError('Failed to create category', undefined, error);\n this.Errors['general'] = 'An error occurred while creating the category.';\n } finally {\n this.IsSaving = false;\n this.cdr.markForCheck();\n }\n }\n\n public getParentOptions(): Array<{ text: string; value: string | null }> {\n const options: Array<{ text: string; value: string | null }> = [\n { text: '(No Parent - Root Category)', value: null }\n ];\n\n // Sort categories by name for easier selection\n const sortedCategories = [...this.Categories].sort((a, b) =>\n a.Name.localeCompare(b.Name)\n );\n\n sortedCategories.forEach(category => {\n options.push({\n text: this.getCategoryPath(category),\n value: category.ID\n });\n });\n\n return options;\n }\n\n private getCategoryPath(category: MJActionCategoryEntity): string {\n const path: string[] = [category.Name];\n let currentParentId = category.ParentID;\n\n while (currentParentId) {\n const parent = this.Categories.find(c => UUIDsEqual(c.ID, currentParentId));\n if (parent) {\n path.unshift(parent.Name);\n currentParentId = parent.ParentID || null;\n } else {\n break;\n }\n }\n\n return path.join(' / ');\n }\n}\n","@if (IsOpen) {\n <div class=\"panel-backdrop\" (click)=\"onBackdropClick($event)\">\n <div class=\"slide-panel\" @slideIn>\n <div class=\"panel-header\">\n <h2>\n <i class=\"fa-solid fa-folder-plus\"></i>\n New Category\n </h2>\n <button kendoButton\n [fillMode]=\"'flat'\"\n (click)=\"onClose()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"panel-content\">\n @if (Errors['general']) {\n <div class=\"error-banner\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ Errors['general'] }}\n </div>\n }\n\n <div class=\"form-group\">\n <label for=\"categoryName\" class=\"form-label required\">\n Category Name\n </label>\n <kendo-textbox\n id=\"categoryName\"\n [(ngModel)]=\"Name\"\n [placeholder]=\"'Enter category name'\"\n [maxlength]=\"200\"\n [class.invalid]=\"Errors['name']\">\n </kendo-textbox>\n @if (Errors['name']) {\n <span class=\"error-text\">{{ Errors['name'] }}</span>\n }\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryDescription\" class=\"form-label\">\n Description\n </label>\n <kendo-textarea\n id=\"categoryDescription\"\n [(ngModel)]=\"Description\"\n [placeholder]=\"'Optional description for this category'\"\n [rows]=\"3\"\n [maxlength]=\"1000\">\n </kendo-textarea>\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryParent\" class=\"form-label\">\n Parent Category\n </label>\n <kendo-dropdownlist\n id=\"categoryParent\"\n [(ngModel)]=\"ParentID\"\n [data]=\"getParentOptions()\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\">\n </kendo-dropdownlist>\n <span class=\"help-text\">\n Leave empty to create a root-level category\n </span>\n </div>\n </div>\n\n <div class=\"panel-footer\">\n <button kendoButton\n [fillMode]=\"'solid'\"\n [themeColor]=\"'primary'\"\n [disabled]=\"IsSaving\"\n (click)=\"onSave()\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Creating...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Create Category\n }\n </button>\n <button kendoButton\n [fillMode]=\"'outline'\"\n [disabled]=\"IsSaving\"\n (click)=\"onClose()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n}\n"]}
1
+ {"version":3,"file":"new-category-panel.component.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/new-category-panel.component.ts","../../../../src/Actions/components/explorer/new-category-panel.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Metadata, LogError } from '@memberjunction/core';\nimport { MJActionCategoryEntity } from '@memberjunction/core-entities';\nimport { ActionExplorerStateService } from '../../services/action-explorer-state.service';\nimport { UUIDsEqual } from '@memberjunction/global';\n\n@Component({\n standalone: false,\n selector: 'mj-new-category-panel',\n templateUrl: './new-category-panel.component.html',\n styleUrls: ['./new-category-panel.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('slideIn', [\n transition(':enter', [\n style({ transform: 'translateX(100%)', opacity: 0 }),\n animate('250ms ease-out', style({ transform: 'translateX(0)', opacity: 1 }))\n ]),\n transition(':leave', [\n animate('200ms ease-in', style({ transform: 'translateX(100%)', opacity: 0 }))\n ])\n ])\n ]\n})\nexport class NewCategoryPanelComponent implements OnInit, OnDestroy {\n @Input() Categories: MJActionCategoryEntity[] = [];\n @Input() PreselectedParentId: string | null = null;\n @Output() CategoryCreated = new EventEmitter<MJActionCategoryEntity>();\n @Output() Close = new EventEmitter<void>();\n\n public IsOpen = false;\n public IsSaving = false;\n\n // Form fields\n public Name = '';\n public Description = '';\n public ParentID: string | null = null;\n\n // Validation\n public Errors: { [key: string]: string } = {};\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public StateService: ActionExplorerStateService,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.StateService.NewCategoryPanelOpen$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(isOpen => {\n this.IsOpen = isOpen;\n if (isOpen) {\n this.resetForm();\n if (this.PreselectedParentId) {\n this.ParentID = this.PreselectedParentId;\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private resetForm(): void {\n this.Name = '';\n this.Description = '';\n this.ParentID = this.PreselectedParentId;\n this.Errors = {};\n this.IsSaving = false;\n }\n\n public onClose(): void {\n this.StateService.closeNewCategoryPanel();\n this.Close.emit();\n }\n\n public onBackdropClick(event: MouseEvent): void {\n if ((event.target as HTMLElement).classList.contains('panel-backdrop')) {\n this.onClose();\n }\n }\n\n public validate(): boolean {\n this.Errors = {};\n\n if (!this.Name || this.Name.trim().length === 0) {\n this.Errors['name'] = 'Category name is required';\n } else if (this.Name.trim().length < 2) {\n this.Errors['name'] = 'Category name must be at least 2 characters';\n } else if (this.Name.trim().length > 200) {\n this.Errors['name'] = 'Category name must be less than 200 characters';\n }\n\n // Check for duplicate names within same parent\n const existingCategory = this.Categories.find(c =>\n c.Name.toLowerCase() === this.Name.trim().toLowerCase() &&\n (c.ParentID || null) === (this.ParentID || null)\n );\n if (existingCategory) {\n this.Errors['name'] = 'A category with this name already exists at this level';\n }\n\n return Object.keys(this.Errors).length === 0;\n }\n\n public async onSave(): Promise<void> {\n if (!this.validate()) {\n this.cdr.markForCheck();\n return;\n }\n\n this.IsSaving = true;\n this.cdr.markForCheck();\n\n try {\n const md = new Metadata();\n const category = await md.GetEntityObject<MJActionCategoryEntity>('MJ: Action Categories');\n\n category.Name = this.Name.trim();\n category.Description = this.Description.trim() || null;\n category.ParentID = this.ParentID || null;\n\n const saved = await category.Save();\n\n if (saved) {\n this.CategoryCreated.emit(category);\n this.StateService.closeNewCategoryPanel();\n } else {\n this.Errors['general'] = 'Failed to save category. Please try again.';\n }\n } catch (error) {\n LogError('Failed to create category', undefined, error);\n this.Errors['general'] = 'An error occurred while creating the category.';\n } finally {\n this.IsSaving = false;\n this.cdr.markForCheck();\n }\n }\n\n public getParentOptions(): Array<{ text: string; value: string | null }> {\n const options: Array<{ text: string; value: string | null }> = [\n { text: '(No Parent - Root Category)', value: null }\n ];\n\n // Sort categories by name for easier selection\n const sortedCategories = [...this.Categories].sort((a, b) =>\n a.Name.localeCompare(b.Name)\n );\n\n sortedCategories.forEach(category => {\n options.push({\n text: this.getCategoryPath(category),\n value: category.ID\n });\n });\n\n return options;\n }\n\n private getCategoryPath(category: MJActionCategoryEntity): string {\n const path: string[] = [category.Name];\n let currentParentId = category.ParentID;\n\n while (currentParentId) {\n const parent = this.Categories.find(c => UUIDsEqual(c.ID, currentParentId));\n if (parent) {\n path.unshift(parent.Name);\n currentParentId = parent.ParentID || null;\n } else {\n break;\n }\n }\n\n return path.join(' / ');\n }\n}\n","@if (IsOpen) {\n <div class=\"panel-backdrop\" (click)=\"onBackdropClick($event)\">\n <div class=\"slide-panel\" @slideIn>\n <div class=\"panel-header\">\n <h2>\n <i class=\"fa-solid fa-folder-plus\"></i>\n New Category\n </h2>\n <button mjButton\n variant=\"flat\"\n (click)=\"onClose()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"panel-content\">\n @if (Errors['general']) {\n <div class=\"error-banner\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ Errors['general'] }}\n </div>\n }\n\n <div class=\"form-group\">\n <label for=\"categoryName\" class=\"form-label required\">\n Category Name\n </label>\n <input type=\"text\" class=\"mj-input\"\n id=\"categoryName\"\n [(ngModel)]=\"Name\"\n placeholder=\"Enter category name\"\n [maxlength]=\"200\"\n [class.invalid]=\"Errors['name']\" />\n @if (Errors['name']) {\n <span class=\"error-text\">{{ Errors['name'] }}</span>\n }\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryDescription\" class=\"form-label\">\n Description\n </label>\n <textarea class=\"mj-textarea\"\n id=\"categoryDescription\"\n [(ngModel)]=\"Description\"\n placeholder=\"Optional description for this category\"\n [rows]=\"3\"\n [maxlength]=\"1000\"></textarea>\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryParent\" class=\"form-label\">\n Parent Category\n </label>\n <mj-dropdown\n [(ngModel)]=\"ParentID\"\n [Data]=\"getParentOptions()\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\">\n </mj-dropdown>\n <span class=\"help-text\">\n Leave empty to create a root-level category\n </span>\n </div>\n </div>\n\n <div class=\"panel-footer\">\n <button mjButton\n variant=\"primary\"\n [disabled]=\"IsSaving\"\n (click)=\"onSave()\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Creating...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Create Category\n }\n </button>\n <button mjButton\n variant=\"outline\"\n [disabled]=\"IsSaving\"\n (click)=\"onClose()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n}\n"]}
@@ -37,7 +37,7 @@ let ScheduledActionsComponent = class ScheduledActionsComponent extends BaseReso
37
37
  i0.ɵɵelementStart(5, "p");
38
38
  i0.ɵɵtext(6, "Calendar view and schedule management coming soon...");
39
39
  i0.ɵɵelementEnd()()();
40
- } }, styles: [".scheduled-actions-placeholder[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }"] });
40
+ } }, styles: [".scheduled-actions-placeholder[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }"] });
41
41
  };
42
42
  ScheduledActionsComponent = __decorate([
43
43
  RegisterClass(BaseResourceComponent, 'ActionsScheduleResource')
@@ -53,7 +53,7 @@ export { ScheduledActionsComponent };
53
53
  <p>Calendar view and schedule management coming soon...</p>
54
54
  </div>
55
55
  </div>
56
- `, styles: ["\n .scheduled-actions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n "] }]
56
+ `, styles: ["\n .scheduled-actions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n "] }]
57
57
  }], () => [{ type: i1.NavigationService }], null); })();
58
58
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ScheduledActionsComponent, { className: "ScheduledActionsComponent", filePath: "src/Actions/components/scheduled-actions.component.ts", lineNumber: 52 }); })();
59
59
  //# sourceMappingURL=scheduled-actions.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-actions.component.js","sourceRoot":"","sources":["../../../src/Actions/components/scheduled-actions.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;;;AACrF;;GAEG;AA6CI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,qBAAqB;IAC9C;IAApB,YAAoB,iBAAoC;QACtD,KAAK,EAAE,CAAC;QADU,sBAAiB,GAAjB,iBAAiB,CAAmB;IAExD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC7C,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QAC3C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;mHAfU,yBAAyB;6DAAzB,yBAAyB;YAtChC,AADF,8BAA4C,aACT;YAC/B,uBAAiC;YACjC,0BAAI;YAAA,iCAAiB;YAAA,iBAAK;YAC1B,yBAAG;YAAA,oEAAoD;YAE3D,AADE,AADyD,iBAAI,EACvD,EACF;;;AAiCG,yBAAyB;IA5CrC,aAAa,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GA4CnD,yBAAyB,CAgBrC;;iFAhBY,yBAAyB;cA3CrC,SAAS;6BACI,KAAK,YACP,sBAAsB,YACtB;;;;;;;;GAQT;;kFAgCU,yBAAyB","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\n/**\n * Scheduled Actions Resource - displays calendar view and schedule management\n */\n@RegisterClass(BaseResourceComponent, 'ActionsScheduleResource')\n@Component({\n standalone: false,\n selector: 'mj-scheduled-actions',\n template: `\n <div class=\"scheduled-actions-placeholder\" >\n <div class=\"placeholder-content\">\n <i class=\"fa-solid fa-clock\"></i>\n <h3>Scheduled Actions</h3>\n <p>Calendar view and schedule management coming soon...</p>\n </div>\n </div>\n `,\n styles: [`\n .scheduled-actions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n `]\n})\nexport class ScheduledActionsComponent extends BaseResourceComponent implements OnInit {\n constructor(private navigationService: NavigationService) {\n super();\n }\n\n ngOnInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'MJ: Scheduled Actions';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock';\n }\n}"]}
1
+ {"version":3,"file":"scheduled-actions.component.js","sourceRoot":"","sources":["../../../src/Actions/components/scheduled-actions.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;;;AACrF;;GAEG;AA6CI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,qBAAqB;IAC9C;IAApB,YAAoB,iBAAoC;QACtD,KAAK,EAAE,CAAC;QADU,sBAAiB,GAAjB,iBAAiB,CAAmB;IAExD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC7C,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QAC3C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;mHAfU,yBAAyB;6DAAzB,yBAAyB;YAtChC,AADF,8BAA4C,aACT;YAC/B,uBAAiC;YACjC,0BAAI;YAAA,iCAAiB;YAAA,iBAAK;YAC1B,yBAAG;YAAA,oEAAoD;YAE3D,AADE,AADyD,iBAAI,EACvD,EACF;;;AAiCG,yBAAyB;IA5CrC,aAAa,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GA4CnD,yBAAyB,CAgBrC;;iFAhBY,yBAAyB;cA3CrC,SAAS;6BACI,KAAK,YACP,sBAAsB,YACtB;;;;;;;;GAQT;;kFAgCU,yBAAyB","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\n/**\n * Scheduled Actions Resource - displays calendar view and schedule management\n */\n@RegisterClass(BaseResourceComponent, 'ActionsScheduleResource')\n@Component({\n standalone: false,\n selector: 'mj-scheduled-actions',\n template: `\n <div class=\"scheduled-actions-placeholder\" >\n <div class=\"placeholder-content\">\n <i class=\"fa-solid fa-clock\"></i>\n <h3>Scheduled Actions</h3>\n <p>Calendar view and schedule management coming soon...</p>\n </div>\n </div>\n `,\n styles: [`\n .scheduled-actions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n `]\n})\nexport class ScheduledActionsComponent extends BaseResourceComponent implements OnInit {\n constructor(private navigationService: NavigationService) {\n super();\n }\n\n ngOnInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'MJ: Scheduled Actions';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock';\n }\n}"]}
@@ -37,7 +37,7 @@ let SecurityPermissionsComponent = class SecurityPermissionsComponent extends Ba
37
37
  i0.ɵɵelementStart(5, "p");
38
38
  i0.ɵɵtext(6, "Action authorization and security management coming soon...");
39
39
  i0.ɵɵelementEnd()()();
40
- } }, styles: [".security-permissions-placeholder[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }"] });
40
+ } }, styles: [".security-permissions-placeholder[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }"] });
41
41
  };
42
42
  SecurityPermissionsComponent = __decorate([
43
43
  RegisterClass(BaseResourceComponent, 'ActionsSecurityResource')
@@ -53,7 +53,7 @@ export { SecurityPermissionsComponent };
53
53
  <p>Action authorization and security management coming soon...</p>
54
54
  </div>
55
55
  </div>
56
- `, styles: ["\n .security-permissions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n "] }]
56
+ `, styles: ["\n .security-permissions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n "] }]
57
57
  }], () => [{ type: i1.NavigationService }], null); })();
58
58
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SecurityPermissionsComponent, { className: "SecurityPermissionsComponent", filePath: "src/Actions/components/security-permissions.component.ts", lineNumber: 52 }); })();
59
59
  //# sourceMappingURL=security-permissions.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-permissions.component.js","sourceRoot":"","sources":["../../../src/Actions/components/security-permissions.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;;;AACrF;;GAEG;AA6CI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAqB;IACjD;IAApB,YAAoB,iBAAoC;QACtD,KAAK,EAAE,CAAC;QADU,sBAAiB,GAAjB,iBAAiB,CAAmB;IAExD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC7C,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QAC3C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;sHAfU,4BAA4B;6DAA5B,4BAA4B;YAtCnC,AADF,8BAA+C,aACZ;YAC/B,uBAAgC;YAChC,0BAAI;YAAA,sCAAsB;YAAA,iBAAK;YAC/B,yBAAG;YAAA,2EAA2D;YAElE,AADE,AADgE,iBAAI,EAC9D,EACF;;;AAiCG,4BAA4B;IA5CxC,aAAa,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GA4CnD,4BAA4B,CAgBxC;;iFAhBY,4BAA4B;cA3CxC,SAAS;6BACI,KAAK,YACP,yBAAyB,YACzB;;;;;;;;GAQT;;kFAgCU,4BAA4B","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\n/**\n * Security Permissions Resource - displays action security management\n */\n@RegisterClass(BaseResourceComponent, 'ActionsSecurityResource')\n@Component({\n standalone: false,\n selector: 'mj-security-permissions',\n template: `\n <div class=\"security-permissions-placeholder\" >\n <div class=\"placeholder-content\">\n <i class=\"fa-solid fa-lock\"></i>\n <h3>Security & Permissions</h3>\n <p>Action authorization and security management coming soon...</p>\n </div>\n </div>\n `,\n styles: [`\n .security-permissions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--kendo-color-subtle);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n `]\n})\nexport class SecurityPermissionsComponent extends BaseResourceComponent implements OnInit {\n constructor(private navigationService: NavigationService) {\n super();\n }\n\n ngOnInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Security & Permissions';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-lock';\n }\n}"]}
1
+ {"version":3,"file":"security-permissions.component.js","sourceRoot":"","sources":["../../../src/Actions/components/security-permissions.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;;;AACrF;;GAEG;AA6CI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAqB;IACjD;IAApB,YAAoB,iBAAoC;QACtD,KAAK,EAAE,CAAC;QADU,sBAAiB,GAAjB,iBAAiB,CAAmB;IAExD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC7C,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QAC3C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;sHAfU,4BAA4B;6DAA5B,4BAA4B;YAtCnC,AADF,8BAA+C,aACZ;YAC/B,uBAAgC;YAChC,0BAAI;YAAA,sCAAsB;YAAA,iBAAK;YAC/B,yBAAG;YAAA,2EAA2D;YAElE,AADE,AADgE,iBAAI,EAC9D,EACF;;;AAiCG,4BAA4B;IA5CxC,aAAa,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GA4CnD,4BAA4B,CAgBxC;;iFAhBY,4BAA4B;cA3CxC,SAAS;6BACI,KAAK,YACP,yBAAyB,YACzB;;;;;;;;GAQT;;kFAgCU,4BAA4B","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\n/**\n * Security Permissions Resource - displays action security management\n */\n@RegisterClass(BaseResourceComponent, 'ActionsSecurityResource')\n@Component({\n standalone: false,\n selector: 'mj-security-permissions',\n template: `\n <div class=\"security-permissions-placeholder\" >\n <div class=\"placeholder-content\">\n <i class=\"fa-solid fa-lock\"></i>\n <h3>Security & Permissions</h3>\n <p>Action authorization and security management coming soon...</p>\n </div>\n </div>\n `,\n styles: [`\n .security-permissions-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n .placeholder-content {\n text-align: center;\n color: var(--mj-text-muted);\n\n i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n }\n\n h3 {\n margin: 0 0 0.5rem 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n }\n `]\n})\nexport class SecurityPermissionsComponent extends BaseResourceComponent implements OnInit {\n constructor(private navigationService: NavigationService) {\n super();\n }\n\n ngOnInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Security & Permissions';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-lock';\n }\n}"]}
@@ -1,7 +1,9 @@
1
1
  import { AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';
2
2
  import { BaseDashboard } from '@memberjunction/ng-shared';
3
3
  import { ResourceData } from '@memberjunction/core-entities';
4
- import { DialogService } from '@progress/kendo-angular-dialog';
4
+ import { ComponentSpec } from '@memberjunction/interactive-component-types';
5
+ import { ArtifactSelectionResult } from './components/artifact-selection-dialog.component';
6
+ import { ArtifactLoadResult } from './components/artifact-load-dialog.component';
5
7
  import { MJNotificationService } from '@memberjunction/ng-notifications';
6
8
  import { ComponentStudioStateService, ComponentError } from './services/component-studio-state.service';
7
9
  import { ComponentVersionService } from './services/component-version.service';
@@ -20,7 +22,6 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
20
22
  state: ComponentStudioStateService;
21
23
  versionService: ComponentVersionService;
22
24
  private cdr;
23
- private dialogService;
24
25
  private notificationService;
25
26
  private static readonly USER_PREFS_KEY;
26
27
  leftPanelWidth: number;
@@ -38,12 +39,15 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
38
39
  ShowNewComponentDialog: boolean;
39
40
  ShowKeyboardShortcuts: boolean;
40
41
  ShowSaveVersionDialog: boolean;
42
+ ShowTextImportDialog: boolean;
43
+ ShowArtifactLoadDialog: boolean;
44
+ ShowArtifactSelectionDialog: boolean;
41
45
  LastSavedTime: Date | null;
42
46
  private prefsLoaded;
43
47
  fileInput?: ElementRef<HTMLInputElement>;
44
48
  private destroy$;
45
49
  private metadata;
46
- constructor(state: ComponentStudioStateService, versionService: ComponentVersionService, cdr: ChangeDetectorRef, dialogService: DialogService, notificationService: MJNotificationService);
50
+ constructor(state: ComponentStudioStateService, versionService: ComponentVersionService, cdr: ChangeDetectorRef, notificationService: MJNotificationService);
47
51
  GetResourceDisplayName(data: ResourceData): Promise<string>;
48
52
  ngAfterViewInit(): Promise<void>;
49
53
  ngOnDestroy(): void;
@@ -71,10 +75,14 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
71
75
  OnDocumentClick(event: MouseEvent): void;
72
76
  ImportFromFile(): void;
73
77
  ImportFromText(): void;
74
- ImportFromArtifact(): Promise<void>;
78
+ OnTextImportSpec(spec: ComponentSpec): void;
79
+ OnTextImportCancel(): void;
80
+ ImportFromArtifact(): void;
81
+ OnArtifactLoadClose(result: ArtifactLoadResult | undefined): void;
75
82
  HandleFileSelect(event: Event): Promise<void>;
76
83
  private handleSpecImport;
77
- ExportToArtifact(): Promise<void>;
84
+ ExportToArtifact(): void;
85
+ OnArtifactSelectionClose(result: ArtifactSelectionResult | undefined): Promise<void>;
78
86
  ExportToFile(): void;
79
87
  ExportToClipboard(): Promise<void>;
80
88
  RefreshData(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAa,UAAU,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAGL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAuB,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC7H,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;;AAenG;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAQa,iCAAkC,SAAQ,aAAc,YAAW,aAAa,EAAE,SAAS;IA4C7F,KAAK,EAAE,2BAA2B;IAClC,cAAc,EAAE,uBAAuB;IAC9C,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,mBAAmB;IA7C7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAGpE,cAAc,SAAO;IACrB,eAAe,SAAO;IACtB,WAAW,SAAa;IACxB,UAAU,SAAa;IAC9B,OAAO,CAAC,kBAAkB,CAAM;IAGzB,kBAAkB,UAAS;IAG3B,UAAU,UAAS;IAC1B,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAGtB,oBAAoB,UAAS;IAC7B,sBAAsB,UAAS;IAG/B,sBAAsB,UAAS;IAC/B,qBAAqB,UAAS;IAC9B,qBAAqB,UAAS;IAC9B,oBAAoB,UAAS;IAC7B,sBAAsB,UAAS;IAC/B,2BAA2B,UAAS;IAGpC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAGzC,OAAO,CAAC,WAAW,CAAS;IAEe,SAAS,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAEpF,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAA4B;gBAGnC,KAAK,EAAE,2BAA2B,EAClC,cAAc,EAAE,uBAAuB,EACtC,GAAG,EAAE,iBAAiB,EACtB,mBAAmB,EAAE,qBAAqB;IAK9C,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,eAAe;IAarB,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,QAAQ,IAAI,IAAI;IAQ1B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,4BAA4B;IAiBpC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAyCrC,WAAW,IAAI,IAAI;IAMb,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BpE,gBAAgB,IAAI,IAAI;IAQxB,aAAa,IAAI,IAAI;IAMrB,eAAe,IAAI,IAAI;IAMvB,iBAAiB,IAAI,IAAI;IAMzB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAczC,cAAc,IAAI,IAAI;IAKtB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAUlE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBhC,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,eAAe;IAkBvB,oBAAoB,IAAI,IAAI;IAK5B,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOxC,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,IAAI;IAKtB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAM3C,kBAAkB,IAAI,IAAI;IAK1B,kBAAkB,IAAI,IAAI;IAK1B,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI;IAiC3D,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnD,OAAO,CAAC,gBAAgB;IAkBxB,gBAAgB,IAAI,IAAI;IASlB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D1F,YAAY,IAAI,IAAI;IAkBd,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ1C,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ3C,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ5C,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY,CAmBlB;IAEF,OAAO,CAAC,WAAW,CAQjB;IAMF,OAAO,CAAC,QAAQ;YASF,kBAAkB;yCAxoBrB,iCAAiC;2CAAjC,iCAAiC;CA+oB7C"}