@memberjunction/ng-core-entity-forms 5.10.1 → 5.12.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 (110) hide show
  1. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +2 -2
  2. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +2 -2
  3. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +2 -2
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +8 -0
  5. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  6. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +199 -139
  7. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  8. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +2 -2
  9. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +2 -2
  10. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +2 -2
  11. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +6 -6
  12. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  13. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +2 -2
  14. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +6 -6
  15. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  16. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +2 -2
  17. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +2 -2
  18. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +4 -4
  19. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  20. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +2 -2
  21. package/dist/lib/custom/Actions/action-execution-log-form.component.js +4 -4
  22. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  23. package/dist/lib/custom/Actions/action-form.component.js +22 -22
  24. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  25. package/dist/lib/custom/Entities/entity-form.component.d.ts +11 -0
  26. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  27. package/dist/lib/custom/Entities/entity-form.component.js +244 -217
  28. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  29. package/dist/lib/custom/EntityActions/entityaction.form.component.js +2 -2
  30. package/dist/lib/custom/Lists/list-form.component.js +3 -3
  31. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  32. package/dist/lib/custom/Queries/query-category-dialog.component.js +3 -3
  33. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  34. package/dist/lib/custom/Queries/query-form.component.d.ts +25 -2
  35. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  36. package/dist/lib/custom/Queries/query-form.component.js +299 -139
  37. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  38. package/dist/lib/custom/Queries/query-run-dialog.component.js +3 -3
  39. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  40. package/dist/lib/custom/Templates/template-param-dialog.component.js +107 -111
  41. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  42. package/dist/lib/custom/Templates/template-params-grid.component.js +2 -2
  43. package/dist/lib/custom/Templates/templates-form.component.js +40 -43
  44. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  45. package/dist/lib/custom/Tests/entity-link-pill.component.js +2 -2
  46. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
  47. package/dist/lib/custom/Tests/test-form.component.js +2 -2
  48. package/dist/lib/custom/Tests/test-rubric-form.component.js +2 -2
  49. package/dist/lib/custom/Tests/test-rubric-form.component.js.map +1 -1
  50. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +2 -2
  51. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  52. package/dist/lib/custom/Tests/test-run-form.component.js +2 -2
  53. package/dist/lib/custom/Tests/test-suite-form.component.js +2 -2
  54. package/dist/lib/custom/Tests/test-suite-run-form.component.js +2 -2
  55. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +2 -2
  56. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +2 -2
  57. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +2 -2
  58. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +2 -2
  59. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts +1 -0
  60. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
  61. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +28 -18
  62. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  63. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +2 -2
  64. package/dist/lib/custom/custom-forms.module.d.ts +2 -1
  65. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  66. package/dist/lib/custom/custom-forms.module.js +7 -3
  67. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  68. package/dist/lib/custom/shared/entity-selector-dialog.component.js +2 -2
  69. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  70. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +155 -153
  71. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  72. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.d.ts +10 -0
  73. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.d.ts.map +1 -0
  74. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js +105 -0
  75. package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js.map +1 -0
  76. package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.d.ts.map +1 -1
  77. package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js +31 -7
  78. package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js.map +1 -1
  79. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.d.ts +10 -0
  80. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.d.ts.map +1 -0
  81. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js +89 -0
  82. package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js.map +1 -0
  83. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  84. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +50 -14
  85. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.d.ts.map +1 -1
  87. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +22 -4
  88. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
  89. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +13 -11
  90. package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
  91. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +83 -81
  92. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  93. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +35 -33
  94. package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
  95. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +25 -19
  96. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
  97. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.d.ts.map +1 -1
  98. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +87 -49
  99. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
  100. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.d.ts +10 -0
  101. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.d.ts.map +1 -0
  102. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js +69 -0
  103. package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js.map +1 -0
  104. package/dist/lib/generated/generated-forms.module.d.ts +289 -286
  105. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  106. package/dist/lib/generated/generated-forms.module.js +113 -104
  107. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  108. package/dist/lib/shared/components/template-editor.component.js +85 -89
  109. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  110. package/package.json +31 -31
@@ -1 +1 @@
1
- {"version":3,"file":"query-category-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-category-dialog.component.ts","../../../../src/lib/custom/Queries/query-category-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { MJQueryCategoryEntity } from '@memberjunction/core-entities';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\n\ninterface CategoryNode {\n id: string;\n name: string;\n fullPath: string;\n children: CategoryNode[];\n level: number;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-query-category-dialog',\n templateUrl: './query-category-dialog.component.html',\n styleUrls: ['./query-category-dialog.component.css']\n})\nexport class QueryCategoryDialogComponent implements OnInit {\n @Input() isVisible = false;\n @Output() isVisibleChange = new EventEmitter<boolean>();\n @Output() onCategoryCreated = new EventEmitter<MJQueryCategoryEntity>();\n \n public categoryName = '';\n public selectedParentId: string | null = null;\n public categories: MJQueryCategoryEntity[] = [];\n public categoryTree: CategoryNode[] = [];\n public flattenedCategories: CategoryNode[] = [];\n public isCreating = false;\n \n async ngOnInit() {\n await this.loadCategories();\n }\n \n async loadCategories() {\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJQueryCategoryEntity>({\n EntityName: 'MJ: Query Categories',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n \n if (result.Success && result.Results) {\n this.categories = result.Results;\n this.categoryTree = this.buildCategoryTree(this.categories);\n this.flattenedCategories = this.flattenCategories(this.categoryTree, 0);\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n }\n }\n \n private buildCategoryTree(categories: MJQueryCategoryEntity[]): CategoryNode[] {\n const categoryMap = new Map<string, CategoryNode>();\n const rootCategories: CategoryNode[] = [];\n \n // Create nodes for all categories\n categories.forEach(cat => {\n categoryMap.set(cat.ID, {\n id: cat.ID,\n name: cat.Name,\n fullPath: cat.Name,\n children: [],\n level: 0\n });\n });\n \n // Build the tree structure\n categories.forEach(cat => {\n const node = categoryMap.get(cat.ID)!;\n if (cat.ParentID && categoryMap.has(cat.ParentID)) {\n const parent = categoryMap.get(cat.ParentID)!;\n parent.children.push(node);\n node.fullPath = `${parent.fullPath} / ${node.name}`;\n } else {\n rootCategories.push(node);\n }\n });\n \n // Sort children alphabetically\n const sortNodes = (nodes: CategoryNode[]) => {\n nodes.sort((a, b) => a.name.localeCompare(b.name));\n nodes.forEach(node => sortNodes(node.children));\n };\n sortNodes(rootCategories);\n \n return rootCategories;\n }\n \n private flattenCategories(nodes: CategoryNode[], level: number): CategoryNode[] {\n const result: CategoryNode[] = [];\n nodes.forEach(node => {\n node.level = level;\n result.push(node);\n if (node.children.length > 0) {\n result.push(...this.flattenCategories(node.children, level + 1));\n }\n });\n return result;\n }\n \n async createCategory() {\n if (!this.categoryName.trim()) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please enter a category name',\n 'warning'\n );\n return;\n }\n \n this.isCreating = true;\n \n try {\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = this.categoryName.trim();\n newCategory.ParentID = this.selectedParentId;\n newCategory.UserID = md.CurrentUser.ID;\n \n const saved = await newCategory.Save();\n \n if (saved) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Category created successfully',\n 'success'\n );\n this.onCategoryCreated.emit(newCategory);\n this.close();\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create category: ${newCategory.LatestResult?.Message || 'Unknown error'}`,\n 'error'\n );\n }\n } catch (error) {\n console.error('Error creating category:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating category',\n 'error'\n );\n } finally {\n this.isCreating = false;\n }\n }\n \n close() {\n this.categoryName = '';\n this.selectedParentId = null;\n this.isVisible = false;\n this.isVisibleChange.emit(false);\n }\n \n getCategoryIndent(category: CategoryNode): string {\n return `${category.level * 20}px`;\n }\n \n getFullPath(): string {\n const parent = this.flattenedCategories.find(c => c.id === this.selectedParentId);\n const name = this.categoryName || 'New Category';\n return parent ? `${parent.fullPath} / ${name}` : name;\n }\n}","@if (isVisible) {\n <kendo-dialog\n [width]=\"500\"\n [height]=\"400\"\n (close)=\"close()\">\n <kendo-dialog-titlebar>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <i class=\"fa-solid fa-folder-plus\" style=\"color: #28a745;\"></i>\n Create New Query Category\n </div>\n </kendo-dialog-titlebar>\n <div style=\"padding: 20px;\">\n <div class=\"form-group\" style=\"margin-bottom: 20px;\">\n <label for=\"categoryName\" style=\"display: block; margin-bottom: 8px; font-weight: 600; color: #495057;\">\n <i class=\"fa-solid fa-tag\"></i> Category Name <span style=\"color: #dc3545;\">*</span>\n </label>\n <kendo-textbox\n [(ngModel)]=\"categoryName\"\n name=\"categoryName\"\n placeholder=\"Enter category name...\"\n style=\"width: 100%;\">\n </kendo-textbox>\n </div>\n <div class=\"form-group\">\n <label for=\"parentCategory\" style=\"display: block; margin-bottom: 8px; font-weight: 600; color: #495057;\">\n <i class=\"fa-solid fa-folder-tree\"></i> Parent Category (Optional)\n </label>\n <kendo-dropdownlist\n [(ngModel)]=\"selectedParentId\"\n name=\"parentCategory\"\n [data]=\"flattenedCategories\"\n [textField]=\"'name'\"\n [valueField]=\"'id'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{id: null, name: '-- No Parent (Top Level) --'}\"\n style=\"width: 100%;\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div style=\"padding-left: {{getCategoryIndent(dataItem)}}; display: flex; align-items: center; gap: 6px;\">\n @if (dataItem.children && dataItem.children.length > 0) {\n <i class=\"fa-solid fa-folder\" style=\"color: #ffc107; font-size: 0.9em;\"></i>\n } @else {\n <i class=\"fa-solid fa-folder-open\" style=\"color: #6c757d; font-size: 0.9em;\"></i>\n }\n <span>{{ dataItem.name }}</span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (selectedParentId) {\n <div style=\"margin-top: 8px; padding: 8px; background: #f8f9fa; border-radius: 4px; font-size: 0.85em; color: #6c757d;\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Full path: {{ getFullPath() }}\n </div>\n }\n </div>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button kendoButton\n [themeColor]=\"'primary'\"\n [disabled]=\"!categoryName.trim() || isCreating\"\n (click)=\"createCategory()\">\n @if (isCreating) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Creating...\n } @else {\n <i class=\"fa-solid fa-check\"></i> Create Category\n }\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}"]}
1
+ {"version":3,"file":"query-category-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-category-dialog.component.ts","../../../../src/lib/custom/Queries/query-category-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { MJQueryCategoryEntity } from '@memberjunction/core-entities';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\n\ninterface CategoryNode {\n id: string;\n name: string;\n fullPath: string;\n children: CategoryNode[];\n level: number;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-query-category-dialog',\n templateUrl: './query-category-dialog.component.html',\n styleUrls: ['./query-category-dialog.component.css']\n})\nexport class QueryCategoryDialogComponent implements OnInit {\n @Input() isVisible = false;\n @Output() isVisibleChange = new EventEmitter<boolean>();\n @Output() onCategoryCreated = new EventEmitter<MJQueryCategoryEntity>();\n \n public categoryName = '';\n public selectedParentId: string | null = null;\n public categories: MJQueryCategoryEntity[] = [];\n public categoryTree: CategoryNode[] = [];\n public flattenedCategories: CategoryNode[] = [];\n public isCreating = false;\n \n async ngOnInit() {\n await this.loadCategories();\n }\n \n async loadCategories() {\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJQueryCategoryEntity>({\n EntityName: 'MJ: Query Categories',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n \n if (result.Success && result.Results) {\n this.categories = result.Results;\n this.categoryTree = this.buildCategoryTree(this.categories);\n this.flattenedCategories = this.flattenCategories(this.categoryTree, 0);\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n }\n }\n \n private buildCategoryTree(categories: MJQueryCategoryEntity[]): CategoryNode[] {\n const categoryMap = new Map<string, CategoryNode>();\n const rootCategories: CategoryNode[] = [];\n \n // Create nodes for all categories\n categories.forEach(cat => {\n categoryMap.set(cat.ID, {\n id: cat.ID,\n name: cat.Name,\n fullPath: cat.Name,\n children: [],\n level: 0\n });\n });\n \n // Build the tree structure\n categories.forEach(cat => {\n const node = categoryMap.get(cat.ID)!;\n if (cat.ParentID && categoryMap.has(cat.ParentID)) {\n const parent = categoryMap.get(cat.ParentID)!;\n parent.children.push(node);\n node.fullPath = `${parent.fullPath} / ${node.name}`;\n } else {\n rootCategories.push(node);\n }\n });\n \n // Sort children alphabetically\n const sortNodes = (nodes: CategoryNode[]) => {\n nodes.sort((a, b) => a.name.localeCompare(b.name));\n nodes.forEach(node => sortNodes(node.children));\n };\n sortNodes(rootCategories);\n \n return rootCategories;\n }\n \n private flattenCategories(nodes: CategoryNode[], level: number): CategoryNode[] {\n const result: CategoryNode[] = [];\n nodes.forEach(node => {\n node.level = level;\n result.push(node);\n if (node.children.length > 0) {\n result.push(...this.flattenCategories(node.children, level + 1));\n }\n });\n return result;\n }\n \n async createCategory() {\n if (!this.categoryName.trim()) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please enter a category name',\n 'warning'\n );\n return;\n }\n \n this.isCreating = true;\n \n try {\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = this.categoryName.trim();\n newCategory.ParentID = this.selectedParentId;\n newCategory.UserID = md.CurrentUser.ID;\n \n const saved = await newCategory.Save();\n \n if (saved) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Category created successfully',\n 'success'\n );\n this.onCategoryCreated.emit(newCategory);\n this.close();\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create category: ${newCategory.LatestResult?.Message || 'Unknown error'}`,\n 'error'\n );\n }\n } catch (error) {\n console.error('Error creating category:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating category',\n 'error'\n );\n } finally {\n this.isCreating = false;\n }\n }\n \n close() {\n this.categoryName = '';\n this.selectedParentId = null;\n this.isVisible = false;\n this.isVisibleChange.emit(false);\n }\n \n getCategoryIndent(category: CategoryNode): string {\n return `${category.level * 20}px`;\n }\n \n getFullPath(): string {\n const parent = this.flattenedCategories.find(c => c.id === this.selectedParentId);\n const name = this.categoryName || 'New Category';\n return parent ? `${parent.fullPath} / ${name}` : name;\n }\n}","@if (isVisible) {\n <kendo-dialog\n [width]=\"500\"\n [height]=\"400\"\n (close)=\"close()\">\n <kendo-dialog-titlebar>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <i class=\"fa-solid fa-folder-plus\" style=\"color: #28a745;\"></i>\n Create New Query Category\n </div>\n </kendo-dialog-titlebar>\n <div style=\"padding: 20px;\">\n <div class=\"form-group\" style=\"margin-bottom: 20px;\">\n <label for=\"categoryName\" style=\"display: block; margin-bottom: 8px; font-weight: 600; color: var(--mj-text-secondary);\">\n <i class=\"fa-solid fa-tag\"></i> Category Name <span style=\"color: #dc3545;\">*</span>\n </label>\n <kendo-textbox\n [(ngModel)]=\"categoryName\"\n name=\"categoryName\"\n placeholder=\"Enter category name...\"\n style=\"width: 100%;\">\n </kendo-textbox>\n </div>\n <div class=\"form-group\">\n <label for=\"parentCategory\" style=\"display: block; margin-bottom: 8px; font-weight: 600; color: var(--mj-text-secondary);\">\n <i class=\"fa-solid fa-folder-tree\"></i> Parent Category (Optional)\n </label>\n <kendo-dropdownlist\n [(ngModel)]=\"selectedParentId\"\n name=\"parentCategory\"\n [data]=\"flattenedCategories\"\n [textField]=\"'name'\"\n [valueField]=\"'id'\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{id: null, name: '-- No Parent (Top Level) --'}\"\n style=\"width: 100%;\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div style=\"padding-left: {{getCategoryIndent(dataItem)}}; display: flex; align-items: center; gap: 6px;\">\n @if (dataItem.children && dataItem.children.length > 0) {\n <i class=\"fa-solid fa-folder\" style=\"color: #ffc107; font-size: 0.9em;\"></i>\n } @else {\n <i class=\"fa-solid fa-folder-open\" style=\"color: var(--mj-text-muted); font-size: 0.9em;\"></i>\n }\n <span>{{ dataItem.name }}</span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (selectedParentId) {\n <div style=\"margin-top: 8px; padding: 8px; background: var(--mj-bg-surface-sunken); border-radius: 4px; font-size: 0.85em; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Full path: {{ getFullPath() }}\n </div>\n }\n </div>\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button kendoButton\n [themeColor]=\"'primary'\"\n [disabled]=\"!categoryName.trim() || isCreating\"\n (click)=\"createCategory()\">\n @if (isCreating) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Creating...\n } @else {\n <i class=\"fa-solid fa-check\"></i> Create Category\n }\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}"]}
@@ -1,7 +1,9 @@
1
1
  import { OnInit, OnDestroy, AfterViewInit } from '@angular/core';
2
2
  import { MJQueryEntity, MJQueryParameterEntity, MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryEntityEntity, MJQueryPermissionEntity } from '@memberjunction/core-entities';
3
+ import { FormToolbarConfig } from '@memberjunction/ng-base-forms';
3
4
  import { MJQueryFormComponent } from '../../generated/Entities/MJQuery/mjquery.form.component';
4
- import { CodeEditorComponent } from '@memberjunction/ng-code-editor';
5
+ import { QueryInfo, QueryDependencyInfo } from '@memberjunction/core';
6
+ import { CodeEditorComponent, CompositionTokenClickEvent } from '@memberjunction/ng-code-editor';
5
7
  import * as i0 from "@angular/core";
6
8
  interface CategoryTreeNode {
7
9
  id: string;
@@ -22,6 +24,7 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
22
24
  showFiltersHelp: boolean;
23
25
  showRunDialog: boolean;
24
26
  showCategoryDialog: boolean;
27
+ categoryPathDisplay: string;
25
28
  sqlPanelExpanded: boolean;
26
29
  parametersPanelExpanded: boolean;
27
30
  fieldsPanelExpanded: boolean;
@@ -29,6 +32,7 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
29
32
  technicalDescriptionPanelExpanded: boolean;
30
33
  detailsPanelExpanded: boolean;
31
34
  permissionsPanelExpanded: boolean;
35
+ dependentsPanelExpanded: boolean;
32
36
  categoryOptions: Array<{
33
37
  text: string;
34
38
  value: string;
@@ -39,9 +43,19 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
39
43
  text: string;
40
44
  value: string;
41
45
  }[];
46
+ readonly ToolbarConfig: FormToolbarConfig;
42
47
  sqlEditor: CodeEditorComponent | null;
43
48
  sqlFilters: import("@memberjunction/core").RunQuerySQLFilter[];
49
+ private navigationService;
44
50
  private destroy$;
51
+ /**
52
+ * Gets the QueryInfo metadata object for the current record, used to access Dependents.
53
+ */
54
+ get CurrentQueryInfo(): QueryInfo | undefined;
55
+ /**
56
+ * Gets queries that depend on (reference) this query via composition.
57
+ */
58
+ get DependentQueries(): QueryDependencyInfo[];
45
59
  private isUpdatingEditorValue;
46
60
  private isInitialLoad;
47
61
  ngOnInit(): Promise<void>;
@@ -59,6 +73,7 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
59
73
  loadCategories(): Promise<void>;
60
74
  private buildCategoryTree;
61
75
  getCategoryPath(): string;
76
+ private updateCategoryPathDisplay;
62
77
  onCategoryChange(value: string): Promise<void>;
63
78
  private isDuplicateCategory;
64
79
  /**
@@ -98,10 +113,18 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
98
113
  getStatusBadgeColor(): string;
99
114
  getStatusBannerIcon(): string;
100
115
  getStatusBannerMessage(): string;
116
+ /**
117
+ * Handle composition token click — navigate to the referenced query
118
+ */
119
+ onCompositionTokenClick(event: CompositionTokenClickEvent): void;
120
+ /**
121
+ * Navigate to a dependent query's record
122
+ */
123
+ onDependentQueryClick(dep: QueryDependencyInfo): void;
101
124
  /**
102
125
  * Handle SQL value changes from the code editor
103
126
  */
104
- onSQLChange(value: any): void;
127
+ onSQLChange(value: string): void;
105
128
  /**
106
129
  * Add a new field
107
130
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAgC,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG/K,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAG/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;;AAGrE,UAAU,gBAAgB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,qBAOa,4BAA6B,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IACvG,MAAM,EAAG,aAAa,CAAC;IACvB,eAAe,EAAE,sBAAsB,EAAE,CAAM;IAC/C,WAAW,EAAE,kBAAkB,EAAE,CAAM;IACvC,aAAa,EAAE,mBAAmB,EAAE,CAAM;IAC1C,gBAAgB,EAAE,uBAAuB,EAAE,CAAM;IACjD,mBAAmB,UAAS;IAC5B,eAAe,UAAS;IACxB,iBAAiB,UAAS;IAC1B,oBAAoB,UAAS;IAC7B,iBAAiB,UAAS;IAC1B,eAAe,UAAS;IACxB,aAAa,UAAS;IACtB,kBAAkB,UAAS;IAG3B,gBAAgB,UAAQ;IACxB,uBAAuB,UAAS;IAChC,mBAAmB,UAAS;IAC5B,qBAAqB,UAAS;IAC9B,iCAAiC,UAAS;IAC1C,oBAAoB,UAAS;IAC7B,wBAAwB,UAAS;IAGjC,eAAe,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAE1D;IACK,UAAU,EAAE,qBAAqB,EAAE,CAAM;IACzC,gBAAgB,EAAE,gBAAgB,EAAE,CAAM;IAG1C,aAAa;;;QAKlB;IAEsB,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAG9D,UAAU,qDAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,aAAa,CAAQ;IAEvB,QAAQ;IAsBd,WAAW;IAKX,eAAe;IASN,WAAW,IAAI,IAAI;IAKnB,aAAa,IAAI,IAAI;IAUrB,UAAU,IAAI,IAAI;IAO3B,OAAO,CAAC,iBAAiB;IAoBlB,cAAc,IAAI,OAAO;IAI1B,mBAAmB;IAwBnB,eAAe;IAwBf,iBAAiB;IAyBjB,oBAAoB;IAwBpB,cAAc;IAkCpB,OAAO,CAAC,iBAAiB;IAuCzB,eAAe,IAAI,MAAM;IAgBnB,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAyDpC,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAKhC,iBAAiB;IAIjB;;OAEG;IACG,QAAQ;IAoCd;;OAEG;IACH,gBAAgB;IAIhB;;OAEG;IACG,YAAY;IAmClB;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,sBAAsB;IAKjD;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,sBAAsB;IAkCnD;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,qBAAqB;IAW1D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM;IAMxC,UAAU,CAAC,qBAAqB,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAgFzE,mBAAmB,IAAI,MAAM;IAU7B,mBAAmB,IAAI,MAAM;IAS7B,sBAAsB,IAAI,MAAM;IAShC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG;IAUtB;;OAEG;IACG,QAAQ;IAgCd;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,kBAAkB;IA0B3C;;OAEG;IACG,SAAS;IAmBf;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB;IA0B9C;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IAOrD;;OAEG;IACM,YAAY,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO;yCAzxBzC,4BAA4B;2CAA5B,4BAA4B;CA6xBxC"}
1
+ {"version":3,"file":"query-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts"],"names":[],"mappings":"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"}