@memberjunction/ng-core-entity-forms 5.38.0 → 5.39.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 (45) hide show
  1. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +10 -0
  2. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +645 -531
  4. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  5. package/dist/lib/custom/Queries/query-form.component.d.ts +13 -4
  6. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/Queries/query-form.component.js +374 -326
  8. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  9. package/dist/lib/custom/Tests/test-form.component.js +2 -3
  10. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  11. package/dist/lib/custom/Tests/test-suite-form.component.js +1 -2
  12. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  13. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +24 -0
  14. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  15. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -224
  16. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  17. package/dist/lib/custom/custom-forms.module.d.ts +39 -41
  18. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  19. package/dist/lib/custom/custom-forms.module.js +8 -9
  20. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  21. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  22. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +71 -73
  23. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  24. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +3 -3
  25. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  26. package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js +10 -6
  27. package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js.map +1 -1
  28. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +3 -3
  29. package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
  30. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +47 -39
  31. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  32. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.d.ts.map +1 -1
  33. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +58 -24
  34. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
  35. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +10 -8
  36. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
  37. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +27 -25
  38. package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js +8 -6
  40. package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js.map +1 -1
  41. package/package.json +36 -36
  42. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts +0 -34
  43. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +0 -1
  44. package/dist/lib/custom/Queries/query-category-dialog.component.js +0 -203
  45. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mjscheduledjob.form.component.js","sourceRoot":"","sources":["../../../../../src/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.ts","../../../../../src/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@angular/core';\nimport { MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { } from \"@memberjunction/ng-entity-viewer\"\n\n@RegisterClass(BaseFormComponent, 'MJ: Scheduled Jobs') // Tell MemberJunction about this class\n@Component({\n standalone: false,\n selector: 'gen-mjscheduledjob-form',\n templateUrl: './mjscheduledjob.form.component.html'\n})\nexport class MJScheduledJobFormComponent extends BaseFormComponent {\n public record!: MJScheduledJobEntity;\n\n override async ngOnInit() {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'jobDetails', sectionName: 'Job Details', isExpanded: true },\n { sectionKey: 'scheduleTiming', sectionName: 'Schedule & Timing', isExpanded: true },\n { sectionKey: 'executionMetrics', sectionName: 'Execution Metrics', isExpanded: true },\n { sectionKey: 'notificationSettings', sectionName: 'Notification Settings', isExpanded: true },\n { sectionKey: 'distributedLocking', sectionName: 'Distributed Locking', isExpanded: true },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },\n { sectionKey: 'mJScheduledJobRuns', sectionName: 'Scheduled Job Runs', isExpanded: false },\n { sectionKey: 'mJCompanyIntegrations', sectionName: 'Company Integrations', isExpanded: false }\n ]);\n }\n}\n\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Job Details Section -->\n <mj-collapsible-panel\n SectionKey=\"jobDetails\"\n SectionName=\"Job Details\"\n Icon=\"fa fa-clipboard-list\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"JobTypeID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Configuration\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ConcurrencyMode\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Schedule & Timing Section -->\n <mj-collapsible-panel\n SectionKey=\"scheduleTiming\"\n SectionName=\"Schedule & Timing\"\n Icon=\"fa fa-clock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CronExpression\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Timezone\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"StartAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"EndAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LastRunAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NextRunAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ExpectedCompletionAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Execution Metrics Section -->\n <mj-collapsible-panel\n SectionKey=\"executionMetrics\"\n SectionName=\"Execution Metrics\"\n Icon=\"fa fa-chart-line\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"RunCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"SuccessCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"FailureCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Notification Settings Section -->\n <mj-collapsible-panel\n SectionKey=\"notificationSettings\"\n SectionName=\"Notification Settings\"\n Icon=\"fa fa-bell\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"OwnerUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyOnSuccess\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyOnFailure\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyViaEmail\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyViaInApp\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Distributed Locking Section -->\n <mj-collapsible-panel\n SectionKey=\"distributedLocking\"\n SectionName=\"Distributed Locking\"\n Icon=\"fa fa-lock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockToken\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockedAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockedByInstance\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Scheduled Job Runs Section -->\n <mj-collapsible-panel\n SectionKey=\"mJScheduledJobRuns\"\n SectionName=\"Scheduled Job Runs\"\n Icon=\"fa fa-tasks\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJScheduledJobRuns')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Scheduled Job Runs','ScheduledJobID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Scheduled Job Runs')\"\n [AllowLoad]=\"IsSectionExpanded('mJScheduledJobRuns')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJScheduledJobRuns', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Company Integrations Section -->\n <mj-collapsible-panel\n SectionKey=\"mJCompanyIntegrations\"\n SectionName=\"Company Integrations\"\n Icon=\"fa fa-plug\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJCompanyIntegrations')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Company Integrations','ScheduledJobID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Company Integrations')\"\n [AllowLoad]=\"IsSectionExpanded('mJCompanyIntegrations')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJCompanyIntegrations', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n "]}
1
+ {"version":3,"file":"mjscheduledjob.form.component.js","sourceRoot":"","sources":["../../../../../src/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.ts","../../../../../src/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@angular/core';\nimport { MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { } from \"@memberjunction/ng-entity-viewer\"\n\n@RegisterClass(BaseFormComponent, 'MJ: Scheduled Jobs') // Tell MemberJunction about this class\n@Component({\n standalone: false,\n selector: 'gen-mjscheduledjob-form',\n templateUrl: './mjscheduledjob.form.component.html'\n})\nexport class MJScheduledJobFormComponent extends BaseFormComponent {\n public record!: MJScheduledJobEntity;\n\n override async ngOnInit() {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'jobDetails', sectionName: 'Job Details', isExpanded: true },\n { sectionKey: 'scheduleTiming', sectionName: 'Schedule & Timing', isExpanded: true },\n { sectionKey: 'executionMetrics', sectionName: 'Execution Metrics', isExpanded: true },\n { sectionKey: 'notificationSettings', sectionName: 'Notification Settings', isExpanded: true },\n { sectionKey: 'distributedLocking', sectionName: 'Distributed Locking', isExpanded: true },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },\n { sectionKey: 'mJScheduledJobRuns', sectionName: 'Scheduled Job Runs', isExpanded: false },\n { sectionKey: 'mJCompanyIntegrations', sectionName: 'Company Integrations', isExpanded: false }\n ]);\n }\n}\n\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Job Details Section -->\n <mj-collapsible-panel\n SectionKey=\"jobDetails\"\n SectionName=\"Job Details\"\n Icon=\"fa fa-clipboard-list\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"JobTypeID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Configuration\"\n Type=\"code\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ConcurrencyMode\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Schedule & Timing Section -->\n <mj-collapsible-panel\n SectionKey=\"scheduleTiming\"\n SectionName=\"Schedule & Timing\"\n Icon=\"fa fa-clock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"CronExpression\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Timezone\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"StartAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"EndAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LastRunAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NextRunAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ExpectedCompletionAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"RunImmediatelyIfNeverRun\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Execution Metrics Section -->\n <mj-collapsible-panel\n SectionKey=\"executionMetrics\"\n SectionName=\"Execution Metrics\"\n Icon=\"fa fa-chart-line\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"RunCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"SuccessCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"FailureCount\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Notification Settings Section -->\n <mj-collapsible-panel\n SectionKey=\"notificationSettings\"\n SectionName=\"Notification Settings\"\n Icon=\"fa fa-bell\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"OwnerUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyOnSuccess\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyOnFailure\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyViaEmail\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"NotifyViaInApp\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Distributed Locking Section -->\n <mj-collapsible-panel\n SectionKey=\"distributedLocking\"\n SectionName=\"Distributed Locking\"\n Icon=\"fa fa-lock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockToken\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockedAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"LockedByInstance\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Scheduled Job Runs Section -->\n <mj-collapsible-panel\n SectionKey=\"mJScheduledJobRuns\"\n SectionName=\"Scheduled Job Runs\"\n Icon=\"fa fa-tasks\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJScheduledJobRuns')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Scheduled Job Runs','ScheduledJobID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Scheduled Job Runs')\"\n [AllowLoad]=\"IsSectionExpanded('mJScheduledJobRuns')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJScheduledJobRuns', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Company Integrations Section -->\n <mj-collapsible-panel\n SectionKey=\"mJCompanyIntegrations\"\n SectionName=\"Company Integrations\"\n Icon=\"fa fa-plug\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJCompanyIntegrations')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Company Integrations','ScheduledJobID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Company Integrations')\"\n [AllowLoad]=\"IsSectionExpanded('mJCompanyIntegrations')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJCompanyIntegrations', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n "]}
@@ -19,7 +19,7 @@ let MJTagSynonymFormComponent = class MJTagSynonymFormComponent extends BaseForm
19
19
  ]);
20
20
  }
21
21
  static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJTagSynonymFormComponent_BaseFactory; return function MJTagSynonymFormComponent_Factory(__ngFactoryType__) { return (ɵMJTagSynonymFormComponent_BaseFactory || (ɵMJTagSynonymFormComponent_BaseFactory = i0.ɵɵgetInheritedFactory(MJTagSynonymFormComponent)))(__ngFactoryType__ || MJTagSynonymFormComponent); }; })(); }
22
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJTagSynonymFormComponent, selectors: [["gen-mjtagsynonym-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 43, consts: [[3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "tagMapping", "SectionName", "Tag Mapping", "Icon", "fa fa-link", 3, "Form", "FormContext"], ["FieldName", "TagID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "synonymDetails", "SectionName", "Synonym Details", "Icon", "fa fa-tag", 3, "Form", "FormContext"], ["FieldName", "Synonym", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Source", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "systemMetadata", "SectionName", "System Metadata", "Icon", "fa fa-cog", 3, "Form", "FormContext"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"]], template: function MJTagSynonymFormComponent_Template(rf, ctx) { if (rf & 1) {
22
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJTagSynonymFormComponent, selectors: [["gen-mjtagsynonym-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 47, consts: [[3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "tagMapping", "SectionName", "Tag Mapping", "Icon", "fa fa-link", 3, "Form", "FormContext"], ["FieldName", "TagID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "synonymDetails", "SectionName", "Synonym Details", "Icon", "fa fa-tag", 3, "Form", "FormContext"], ["FieldName", "Synonym", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Source", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "systemMetadata", "SectionName", "System Metadata", "Icon", "fa fa-cog", 3, "Form", "FormContext"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"]], template: function MJTagSynonymFormComponent_Template(rf, ctx) { if (rf & 1) {
23
23
  i0.ɵɵelementStart(0, "mj-record-form-container", 0);
24
24
  i0.ɵɵlistener("Navigate", function MJTagSynonymFormComponent_Template_mj_record_form_container_Navigate_0_listener($event) { return ctx.OnFormNavigate($event); })("DeleteRequested", function MJTagSynonymFormComponent_Template_mj_record_form_container_DeleteRequested_0_listener() { return ctx.OnDeleteRequested(); })("FavoriteToggled", function MJTagSynonymFormComponent_Template_mj_record_form_container_FavoriteToggled_0_listener() { return ctx.OnFavoriteToggled(); })("HistoryRequested", function MJTagSynonymFormComponent_Template_mj_record_form_container_HistoryRequested_0_listener() { return ctx.OnHistoryRequested(); })("ListManagementRequested", function MJTagSynonymFormComponent_Template_mj_record_form_container_ListManagementRequested_0_listener() { return ctx.OnListManagementRequested(); });
25
25
  i0.ɵɵelement(1, "mj-form-panel-slot", 1);
@@ -27,12 +27,12 @@ let MJTagSynonymFormComponent = class MJTagSynonymFormComponent extends BaseForm
27
27
  i0.ɵɵelement(3, "mj-form-field", 3);
28
28
  i0.ɵɵelementEnd();
29
29
  i0.ɵɵelementStart(4, "mj-collapsible-panel", 4);
30
- i0.ɵɵelement(5, "mj-form-field", 5)(6, "mj-form-field", 6);
30
+ i0.ɵɵelement(5, "mj-form-field", 5)(6, "mj-form-field", 6)(7, "mj-form-field", 7);
31
31
  i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(7, "mj-collapsible-panel", 7);
33
- i0.ɵɵelement(8, "mj-form-field", 8)(9, "mj-form-field", 9);
32
+ i0.ɵɵelementStart(8, "mj-collapsible-panel", 8);
33
+ i0.ɵɵelement(9, "mj-form-field", 9)(10, "mj-form-field", 10);
34
34
  i0.ɵɵelementEnd();
35
- i0.ɵɵelement(10, "mj-form-panel-slot", 10)(11, "mj-form-panel-slot", 11);
35
+ i0.ɵɵelement(11, "mj-form-panel-slot", 11)(12, "mj-form-panel-slot", 12);
36
36
  i0.ɵɵelementEnd();
37
37
  } if (rf & 2) {
38
38
  i0.ɵɵproperty("Record", ctx.record)("FormComponent", ctx);
@@ -49,6 +49,8 @@ let MJTagSynonymFormComponent = class MJTagSynonymFormComponent extends BaseForm
49
49
  i0.ɵɵadvance();
50
50
  i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
51
51
  i0.ɵɵadvance();
52
+ i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
53
+ i0.ɵɵadvance();
52
54
  i0.ɵɵproperty("Form", ctx)("FormContext", ctx.formContext);
53
55
  i0.ɵɵadvance();
54
56
  i0.ɵɵproperty("Record", ctx.record)("ShowLabel", true)("EditMode", ctx.EditMode)("FormContext", ctx.formContext);
@@ -66,7 +68,7 @@ MJTagSynonymFormComponent = __decorate([
66
68
  export { MJTagSynonymFormComponent };
67
69
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJTagSynonymFormComponent, [{
68
70
  type: Component,
69
- args: [{ standalone: false, selector: 'gen-mjtagsynonym-form', template: "<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Tag Mapping Section -->\n <mj-collapsible-panel\n SectionKey=\"tagMapping\"\n SectionName=\"Tag Mapping\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"TagID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Synonym Details Section -->\n <mj-collapsible-panel\n SectionKey=\"synonymDetails\"\n SectionName=\"Synonym Details\"\n Icon=\"fa fa-tag\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Synonym\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Source\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n " }]
71
+ args: [{ standalone: false, selector: 'gen-mjtagsynonym-form', template: "<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Tag Mapping Section -->\n <mj-collapsible-panel\n SectionKey=\"tagMapping\"\n SectionName=\"Tag Mapping\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"TagID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Synonym Details Section -->\n <mj-collapsible-panel\n SectionKey=\"synonymDetails\"\n SectionName=\"Synonym Details\"\n Icon=\"fa fa-tag\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Synonym\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Source\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n " }]
70
72
  }], null, null); })();
71
73
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJTagSynonymFormComponent, { className: "MJTagSynonymFormComponent", filePath: "src/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.ts", lineNumber: 12 }); })();
72
74
  //# sourceMappingURL=mjtagsynonym.form.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mjtagsynonym.form.component.js","sourceRoot":"","sources":["../../../../../src/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.ts","../../../../../src/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;;AAQ3D,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,iBAAiB;IAGnD,KAAK,CAAC,QAAQ;QACnB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC;YACd,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1E,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClF,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE;SACtF,CAAC,CAAC;IACP,CAAC;wRAVQ,yBAAyB,yBAAzB,yBAAyB;oEAAzB,yBAAyB;YCXtC,mDAK4D;YAAxD,AADA,AADA,AADA,AADA,oIAAY,0BAAsB,IAAC,+HAChB,uBAAmB,IAAC,+HACpB,uBAAmB,IAAC,iIACnB,wBAAoB,IAAC,+IACd,+BAA2B,IAAC;YAEvD,wCAAuK;YAMvK,+CAKgC;YAC5B,mCAQiB;YAErB,iBAAuB;YAGvB,+CAKgC;YAS5B,AARA,mCAOiB,uBAQA;YAErB,iBAAuB;YAGvB,+CAKgC;YAS5B,AARA,mCAOiB,uBAQA;YAErB,iBAAuB;YAIvB,AAFA,0CAAsK,8BAEC;YAC3K,iBAA2B;;YAtFiB,AAAlB,mCAAiB,sBAAuB;YAO1C,cAAmC;YAA+D,AAAvB,AAAlB,AAAzD,wBAAA,4CAAmC,CAAA,sBAAuC,sBAAuB,gCAA4B;YAU7I,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,oBACE,0BAGE,gCACM;YAW/B,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAG3B,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAU/B,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAG3B,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAKf,cAAmC;YAA8D,AAAvB,AAAlB,AAAxD,wBAAA,4CAAmC,CAAA,sBAAsC,sBAAuB,gCAA4B;YAE5H,cAAmC;YAA+D,AAAvB,AAAlB,AAAzD,wBAAA,4CAAmC,CAAA,sBAAuC,sBAAuB,gCAA4B;;;AD1ExI,yBAAyB;IANrC,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,uCAAuC;GAMhF,yBAAyB,CAWrC;;iFAXY,yBAAyB;cALrC,SAAS;6BACM,KAAK,YACP,uBAAuB;;kFAGxB,yBAAyB","sourcesContent":["import { Component } from '@angular/core';\nimport { MJTagSynonymEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\n\n@RegisterClass(BaseFormComponent, 'MJ: Tag Synonyms') // Tell MemberJunction about this class\n@Component({\n standalone: false,\n selector: 'gen-mjtagsynonym-form',\n templateUrl: './mjtagsynonym.form.component.html'\n})\nexport class MJTagSynonymFormComponent extends BaseFormComponent {\n public record!: MJTagSynonymEntity;\n\n override async ngOnInit() {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'tagMapping', sectionName: 'Tag Mapping', isExpanded: true },\n { sectionKey: 'synonymDetails', sectionName: 'Synonym Details', isExpanded: true },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false }\n ]);\n }\n}\n\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Tag Mapping Section -->\n <mj-collapsible-panel\n SectionKey=\"tagMapping\"\n SectionName=\"Tag Mapping\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"TagID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Synonym Details Section -->\n <mj-collapsible-panel\n SectionKey=\"synonymDetails\"\n SectionName=\"Synonym Details\"\n Icon=\"fa fa-tag\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Synonym\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Source\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n "]}
1
+ {"version":3,"file":"mjtagsynonym.form.component.js","sourceRoot":"","sources":["../../../../../src/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.ts","../../../../../src/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;;AAQ3D,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,iBAAiB;IAGnD,KAAK,CAAC,QAAQ;QACnB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC;YACd,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;YAC1E,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE;YAClF,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE;SACtF,CAAC,CAAC;IACP,CAAC;wRAVQ,yBAAyB,yBAAzB,yBAAyB;oEAAzB,yBAAyB;YCXtC,mDAK4D;YAAxD,AADA,AADA,AADA,AADA,oIAAY,0BAAsB,IAAC,+HAChB,uBAAmB,IAAC,+HACpB,uBAAmB,IAAC,iIACnB,wBAAoB,IAAC,+IACd,+BAA2B,IAAC;YAEvD,wCAAuK;YAMvK,+CAKgC;YAC5B,mCAQiB;YAErB,iBAAuB;YAGvB,+CAKgC;YAiB5B,AARA,AARA,mCAOiB,uBAQA,uBAQA;YAErB,iBAAuB;YAGvB,+CAKgC;YAS5B,AARA,mCAOiB,yBAQA;YAErB,iBAAuB;YAIvB,AAFA,0CAAsK,8BAEC;YAC3K,iBAA2B;;YA9FiB,AAAlB,mCAAiB,sBAAuB;YAO1C,cAAmC;YAA+D,AAAvB,AAAlB,AAAzD,wBAAA,4CAAmC,CAAA,sBAAuC,sBAAuB,gCAA4B;YAU7I,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,oBACE,0BAGE,gCACM;YAW/B,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAG3B,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAG3B,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAU/B,cAAa;YACb,AADA,0BAAa,gCACc;YAEvB,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAG3B,cAAiB;YAKjB,AADA,AAHA,AADA,mCAAiB,mBACC,0BAGG,gCACM;YAKf,cAAmC;YAA8D,AAAvB,AAAlB,AAAxD,wBAAA,4CAAmC,CAAA,sBAAsC,sBAAuB,gCAA4B;YAE5H,cAAmC;YAA+D,AAAvB,AAAlB,AAAzD,wBAAA,4CAAmC,CAAA,sBAAuC,sBAAuB,gCAA4B;;;ADlFxI,yBAAyB;IANrC,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,uCAAuC;GAMhF,yBAAyB,CAWrC;;iFAXY,yBAAyB;cALrC,SAAS;6BACM,KAAK,YACP,uBAAuB;;kFAGxB,yBAAyB","sourcesContent":["import { Component } from '@angular/core';\nimport { MJTagSynonymEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\n\n@RegisterClass(BaseFormComponent, 'MJ: Tag Synonyms') // Tell MemberJunction about this class\n@Component({\n standalone: false,\n selector: 'gen-mjtagsynonym-form',\n templateUrl: './mjtagsynonym.form.component.html'\n})\nexport class MJTagSynonymFormComponent extends BaseFormComponent {\n public record!: MJTagSynonymEntity;\n\n override async ngOnInit() {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'tagMapping', sectionName: 'Tag Mapping', isExpanded: true },\n { sectionKey: 'synonymDetails', sectionName: 'Synonym Details', isExpanded: true },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false }\n ]);\n }\n}\n\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Tag Mapping Section -->\n <mj-collapsible-panel\n SectionKey=\"tagMapping\"\n SectionName=\"Tag Mapping\"\n Icon=\"fa fa-link\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"TagID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Synonym Details Section -->\n <mj-collapsible-panel\n SectionKey=\"synonymDetails\"\n SectionName=\"Synonym Details\"\n Icon=\"fa fa-tag\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Synonym\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Source\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n "]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-core-entity-forms",
3
- "version": "5.38.0",
3
+ "version": "5.39.0",
4
4
  "description": "MemberJunction Core Entity Angular Forms",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -29,41 +29,41 @@
29
29
  "@angular/router": "21.1.3",
30
30
  "@codemirror/language": "latest",
31
31
  "@codemirror/language-data": "^6.5.2",
32
- "@memberjunction/actions-base": "5.38.0",
33
- "@memberjunction/ai": "5.38.0",
34
- "@memberjunction/ai-core-plus": "5.38.0",
35
- "@memberjunction/ai-engine-base": "5.38.0",
36
- "@memberjunction/core": "5.38.0",
37
- "@memberjunction/core-entities": "5.38.0",
38
- "@memberjunction/global": "5.38.0",
39
- "@memberjunction/graphql-dataprovider": "5.38.0",
40
- "@memberjunction/ng-action-gallery": "5.38.0",
41
- "@memberjunction/ng-actions": "5.38.0",
42
- "@memberjunction/ng-agents": "5.38.0",
43
- "@memberjunction/ng-ai-test-harness": "5.38.0",
44
- "@memberjunction/ng-base-application": "5.38.0",
45
- "@memberjunction/ng-base-forms": "5.38.0",
46
- "@memberjunction/ng-base-types": "5.38.0",
47
- "@memberjunction/ng-code-editor": "5.38.0",
48
- "@memberjunction/ng-deep-diff": "5.38.0",
49
- "@memberjunction/ng-entity-relationship-diagram": "5.38.0",
50
- "@memberjunction/ng-entity-viewer": "5.38.0",
51
- "@memberjunction/ng-flow-editor": "5.38.0",
52
- "@memberjunction/ng-join-grid": "5.38.0",
53
- "@memberjunction/ng-link-directives": "5.38.0",
54
- "@memberjunction/ng-list-management": "5.38.0",
55
- "@memberjunction/ng-markdown": "5.38.0",
56
- "@memberjunction/ng-notifications": "5.38.0",
57
- "@memberjunction/ng-search": "5.38.0",
58
- "@memberjunction/ng-shared": "5.38.0",
59
- "@memberjunction/ng-shared-generic": "5.38.0",
60
- "@memberjunction/ng-tabstrip": "5.38.0",
61
- "@memberjunction/ng-testing": "5.38.0",
62
- "@memberjunction/ng-timeline": "5.38.0",
63
- "@memberjunction/ng-trees": "5.38.0",
64
- "@memberjunction/ng-ui-components": "5.38.0",
65
- "@memberjunction/ng-versions": "5.38.0",
66
- "@memberjunction/templates-base-types": "5.38.0",
32
+ "@memberjunction/actions-base": "5.39.0",
33
+ "@memberjunction/ai": "5.39.0",
34
+ "@memberjunction/ai-core-plus": "5.39.0",
35
+ "@memberjunction/ai-engine-base": "5.39.0",
36
+ "@memberjunction/core": "5.39.0",
37
+ "@memberjunction/core-entities": "5.39.0",
38
+ "@memberjunction/global": "5.39.0",
39
+ "@memberjunction/graphql-dataprovider": "5.39.0",
40
+ "@memberjunction/ng-action-gallery": "5.39.0",
41
+ "@memberjunction/ng-actions": "5.39.0",
42
+ "@memberjunction/ng-agents": "5.39.0",
43
+ "@memberjunction/ng-ai-test-harness": "5.39.0",
44
+ "@memberjunction/ng-base-application": "5.39.0",
45
+ "@memberjunction/ng-base-forms": "5.39.0",
46
+ "@memberjunction/ng-base-types": "5.39.0",
47
+ "@memberjunction/ng-code-editor": "5.39.0",
48
+ "@memberjunction/ng-deep-diff": "5.39.0",
49
+ "@memberjunction/ng-entity-relationship-diagram": "5.39.0",
50
+ "@memberjunction/ng-entity-viewer": "5.39.0",
51
+ "@memberjunction/ng-flow-editor": "5.39.0",
52
+ "@memberjunction/ng-join-grid": "5.39.0",
53
+ "@memberjunction/ng-link-directives": "5.39.0",
54
+ "@memberjunction/ng-list-management": "5.39.0",
55
+ "@memberjunction/ng-markdown": "5.39.0",
56
+ "@memberjunction/ng-notifications": "5.39.0",
57
+ "@memberjunction/ng-search": "5.39.0",
58
+ "@memberjunction/ng-shared": "5.39.0",
59
+ "@memberjunction/ng-shared-generic": "5.39.0",
60
+ "@memberjunction/ng-tabstrip": "5.39.0",
61
+ "@memberjunction/ng-testing": "5.39.0",
62
+ "@memberjunction/ng-timeline": "5.39.0",
63
+ "@memberjunction/ng-trees": "5.39.0",
64
+ "@memberjunction/ng-ui-components": "5.39.0",
65
+ "@memberjunction/ng-versions": "5.39.0",
66
+ "@memberjunction/templates-base-types": "5.39.0",
67
67
  "@types/d3": "^7.4.3",
68
68
  "ag-grid-angular": "^35.0.1",
69
69
  "ag-grid-community": "^35.0.1",
@@ -1,34 +0,0 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
2
- import { MJQueryCategoryEntity } from '@memberjunction/core-entities';
3
- import { BaseAngularComponent } from '@memberjunction/ng-base-types';
4
- import * as i0 from "@angular/core";
5
- interface CategoryNode {
6
- id: string;
7
- name: string;
8
- fullPath: string;
9
- children: CategoryNode[];
10
- level: number;
11
- }
12
- export declare class QueryCategoryDialogComponent extends BaseAngularComponent implements OnInit {
13
- isVisible: boolean;
14
- isVisibleChange: EventEmitter<boolean>;
15
- onCategoryCreated: EventEmitter<MJQueryCategoryEntity>;
16
- categoryName: string;
17
- selectedParentId: string | null;
18
- categories: MJQueryCategoryEntity[];
19
- categoryTree: CategoryNode[];
20
- flattenedCategories: CategoryNode[];
21
- isCreating: boolean;
22
- ngOnInit(): void;
23
- loadCategories(): void;
24
- private buildCategoryTree;
25
- private flattenCategories;
26
- createCategory(): Promise<void>;
27
- close(): void;
28
- getCategoryIndent(category: CategoryNode): string;
29
- getFullPath(): string;
30
- static ɵfac: i0.ɵɵFactoryDeclaration<QueryCategoryDialogComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<QueryCategoryDialogComponent, "mj-query-category-dialog", never, { "isVisible": { "alias": "isVisible"; "required": false; }; }, { "isVisibleChange": "isVisibleChange"; "onCategoryCreated": "onCategoryCreated"; }, never, never, false, never>;
32
- }
33
- export {};
34
- //# sourceMappingURL=query-category-dialog.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-category-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-category-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAe,MAAM,+BAA+B,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AACrE,UAAU,YAAY;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAMa,4BAA6B,SAAQ,oBAAqB,YAAW,MAAM;IAC3E,SAAS,UAAS;IACjB,eAAe,wBAA+B;IAC9C,iBAAiB,sCAA6C;IAEjE,YAAY,SAAM;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,UAAU,EAAE,qBAAqB,EAAE,CAAM;IACzC,YAAY,EAAE,YAAY,EAAE,CAAM;IAClC,mBAAmB,EAAE,YAAY,EAAE,CAAM;IACzC,UAAU,UAAS;IAE1B,QAAQ;IAIR,cAAc;IAMd,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,iBAAiB;IAYnB,cAAc;IA4CpB,KAAK;IAOL,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAIjD,WAAW,IAAI,MAAM;yCA9HZ,4BAA4B;2CAA5B,4BAA4B;CAmIxC"}
@@ -1,203 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { QueryEngine } from '@memberjunction/core-entities';
3
- import { MJNotificationService } from '@memberjunction/ng-notifications';
4
- import { BaseAngularComponent } from '@memberjunction/ng-base-types';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "@memberjunction/ng-ui-components";
8
- function QueryCategoryDialogComponent_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
9
- i0.ɵɵelementStart(0, "div", 14);
10
- i0.ɵɵelement(1, "i", 18);
11
- i0.ɵɵtext(2);
12
- i0.ɵɵelementEnd();
13
- } if (rf & 2) {
14
- const ctx_r1 = i0.ɵɵnextContext(2);
15
- i0.ɵɵadvance(2);
16
- i0.ɵɵtextInterpolate1(" Full path: ", ctx_r1.getFullPath(), " ");
17
- } }
18
- function QueryCategoryDialogComponent_Conditional_0_Conditional_24_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelement(0, "i", 19);
20
- i0.ɵɵtext(1, " Creating... ");
21
- } }
22
- function QueryCategoryDialogComponent_Conditional_0_Conditional_25_Template(rf, ctx) { if (rf & 1) {
23
- i0.ɵɵelement(0, "i", 20);
24
- i0.ɵɵtext(1, " Create Category ");
25
- } }
26
- function QueryCategoryDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
27
- const _r1 = i0.ɵɵgetCurrentView();
28
- i0.ɵɵelementStart(0, "mj-dialog", 1);
29
- i0.ɵɵlistener("Close", function QueryCategoryDialogComponent_Conditional_0_Template_mj_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); });
30
- i0.ɵɵelementStart(1, "mj-dialog-titlebar")(2, "div", 2);
31
- i0.ɵɵelement(3, "i", 3);
32
- i0.ɵɵtext(4, " Create New Query Category ");
33
- i0.ɵɵelementEnd()();
34
- i0.ɵɵelementStart(5, "div", 4)(6, "div", 5)(7, "label", 6);
35
- i0.ɵɵelement(8, "i", 7);
36
- i0.ɵɵtext(9, " Category Name ");
37
- i0.ɵɵelementStart(10, "span", 8);
38
- i0.ɵɵtext(11, "*");
39
- i0.ɵɵelementEnd()();
40
- i0.ɵɵelementStart(12, "input", 9);
41
- i0.ɵɵtwoWayListener("ngModelChange", function QueryCategoryDialogComponent_Conditional_0_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.categoryName, $event) || (ctx_r1.categoryName = $event); return i0.ɵɵresetView($event); });
42
- i0.ɵɵelementEnd()();
43
- i0.ɵɵelementStart(13, "div", 10)(14, "label", 11);
44
- i0.ɵɵelement(15, "i", 12);
45
- i0.ɵɵtext(16, " Parent Category (Optional) ");
46
- i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(17, "mj-dropdown", 13);
48
- i0.ɵɵtwoWayListener("ngModelChange", function QueryCategoryDialogComponent_Conditional_0_Template_mj_dropdown_ngModelChange_17_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedParentId, $event) || (ctx_r1.selectedParentId = $event); return i0.ɵɵresetView($event); });
49
- i0.ɵɵelementEnd();
50
- i0.ɵɵconditionalCreate(18, QueryCategoryDialogComponent_Conditional_0_Conditional_18_Template, 3, 1, "div", 14);
51
- i0.ɵɵelementEnd()();
52
- i0.ɵɵelementStart(19, "mj-dialog-actions")(20, "button", 15);
53
- i0.ɵɵlistener("click", function QueryCategoryDialogComponent_Conditional_0_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); });
54
- i0.ɵɵelement(21, "i", 16);
55
- i0.ɵɵtext(22, " Cancel ");
56
- i0.ɵɵelementEnd();
57
- i0.ɵɵelementStart(23, "button", 17);
58
- i0.ɵɵlistener("click", function QueryCategoryDialogComponent_Conditional_0_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.createCategory()); });
59
- i0.ɵɵconditionalCreate(24, QueryCategoryDialogComponent_Conditional_0_Conditional_24_Template, 2, 0)(25, QueryCategoryDialogComponent_Conditional_0_Conditional_25_Template, 2, 0);
60
- i0.ɵɵelementEnd()()();
61
- } if (rf & 2) {
62
- const ctx_r1 = i0.ɵɵnextContext();
63
- i0.ɵɵproperty("Visible", true)("Width", 500);
64
- i0.ɵɵadvance(12);
65
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.categoryName);
66
- i0.ɵɵadvance(5);
67
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.selectedParentId);
68
- i0.ɵɵproperty("Data", ctx_r1.flattenedCategories)("ValuePrimitive", true);
69
- i0.ɵɵadvance();
70
- i0.ɵɵconditional(ctx_r1.selectedParentId ? 18 : -1);
71
- i0.ɵɵadvance(5);
72
- i0.ɵɵproperty("disabled", !ctx_r1.categoryName.trim() || ctx_r1.isCreating);
73
- i0.ɵɵadvance();
74
- i0.ɵɵconditional(ctx_r1.isCreating ? 24 : 25);
75
- } }
76
- export class QueryCategoryDialogComponent extends BaseAngularComponent {
77
- constructor() {
78
- super(...arguments);
79
- this.isVisible = false;
80
- this.isVisibleChange = new EventEmitter();
81
- this.onCategoryCreated = new EventEmitter();
82
- this.categoryName = '';
83
- this.selectedParentId = null;
84
- this.categories = [];
85
- this.categoryTree = [];
86
- this.flattenedCategories = [];
87
- this.isCreating = false;
88
- }
89
- ngOnInit() {
90
- this.loadCategories();
91
- }
92
- loadCategories() {
93
- this.categories = QueryEngine.Instance.Categories;
94
- this.categoryTree = this.buildCategoryTree(this.categories);
95
- this.flattenedCategories = this.flattenCategories(this.categoryTree, 0);
96
- }
97
- buildCategoryTree(categories) {
98
- const categoryMap = new Map();
99
- const rootCategories = [];
100
- // Create nodes for all categories
101
- categories.forEach(cat => {
102
- categoryMap.set(cat.ID, {
103
- id: cat.ID,
104
- name: cat.Name,
105
- fullPath: cat.Name,
106
- children: [],
107
- level: 0
108
- });
109
- });
110
- // Build the tree structure
111
- categories.forEach(cat => {
112
- const node = categoryMap.get(cat.ID);
113
- if (cat.ParentID && categoryMap.has(cat.ParentID)) {
114
- const parent = categoryMap.get(cat.ParentID);
115
- parent.children.push(node);
116
- node.fullPath = `${parent.fullPath} / ${node.name}`;
117
- }
118
- else {
119
- rootCategories.push(node);
120
- }
121
- });
122
- // Sort children alphabetically
123
- const sortNodes = (nodes) => {
124
- nodes.sort((a, b) => a.name.localeCompare(b.name));
125
- nodes.forEach(node => sortNodes(node.children));
126
- };
127
- sortNodes(rootCategories);
128
- return rootCategories;
129
- }
130
- flattenCategories(nodes, level) {
131
- const result = [];
132
- nodes.forEach(node => {
133
- node.level = level;
134
- result.push(node);
135
- if (node.children.length > 0) {
136
- result.push(...this.flattenCategories(node.children, level + 1));
137
- }
138
- });
139
- return result;
140
- }
141
- async createCategory() {
142
- if (!this.categoryName.trim()) {
143
- MJNotificationService.Instance.CreateSimpleNotification('Please enter a category name', 'warning');
144
- return;
145
- }
146
- this.isCreating = true;
147
- try {
148
- const md = this.ProviderToUse;
149
- const newCategory = await md.GetEntityObject('MJ: Query Categories');
150
- newCategory.Name = this.categoryName.trim();
151
- newCategory.ParentID = this.selectedParentId;
152
- newCategory.UserID = md.CurrentUser.ID;
153
- const saved = await newCategory.Save();
154
- if (saved) {
155
- MJNotificationService.Instance.CreateSimpleNotification('Category created successfully', 'success');
156
- this.onCategoryCreated.emit(newCategory);
157
- this.close();
158
- }
159
- else {
160
- MJNotificationService.Instance.CreateSimpleNotification(`Failed to create category: ${newCategory.LatestResult?.Message || 'Unknown error'}`, 'error');
161
- }
162
- }
163
- catch (error) {
164
- console.error('Error creating category:', error);
165
- MJNotificationService.Instance.CreateSimpleNotification('Error creating category', 'error');
166
- }
167
- finally {
168
- this.isCreating = false;
169
- }
170
- }
171
- close() {
172
- this.categoryName = '';
173
- this.selectedParentId = null;
174
- this.isVisible = false;
175
- this.isVisibleChange.emit(false);
176
- }
177
- getCategoryIndent(category) {
178
- return `${category.level * 20}px`;
179
- }
180
- getFullPath() {
181
- const parent = this.flattenedCategories.find(c => c.id === this.selectedParentId);
182
- const name = this.categoryName || 'New Category';
183
- return parent ? `${parent.fullPath} / ${name}` : name;
184
- }
185
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵQueryCategoryDialogComponent_BaseFactory; return function QueryCategoryDialogComponent_Factory(__ngFactoryType__) { return (ɵQueryCategoryDialogComponent_BaseFactory || (ɵQueryCategoryDialogComponent_BaseFactory = i0.ɵɵgetInheritedFactory(QueryCategoryDialogComponent)))(__ngFactoryType__ || QueryCategoryDialogComponent); }; })(); }
186
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCategoryDialogComponent, selectors: [["mj-query-category-dialog"]], inputs: { isVisible: "isVisible" }, outputs: { isVisibleChange: "isVisibleChange", onCategoryCreated: "onCategoryCreated" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Visible", "Width"], [3, "Close", "Visible", "Width"], [2, "display", "flex", "align-items", "center", "gap", "8px"], [1, "fa-solid", "fa-folder-plus", 2, "color", "#28a745"], [2, "padding", "20px"], [1, "form-group", 2, "margin-bottom", "20px"], ["for", "categoryName", 2, "display", "block", "margin-bottom", "8px", "font-weight", "600", "color", "var(--mj-text-secondary)"], [1, "fa-solid", "fa-tag"], [2, "color", "#dc3545"], ["name", "categoryName", "placeholder", "Enter category name...", 1, "mj-input", 2, "width", "100%", 3, "ngModelChange", "ngModel"], [1, "form-group"], ["for", "parentCategory", 2, "display", "block", "margin-bottom", "8px", "font-weight", "600", "color", "var(--mj-text-secondary)"], [1, "fa-solid", "fa-folder-tree"], ["name", "parentCategory", "TextField", "name", "ValueField", "id", "Placeholder", "-- No Parent (Top Level) --", 2, "width", "100%", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], [2, "margin-top", "8px", "padding", "8px", "background", "var(--mj-bg-surface-sunken)", "border-radius", "4px", "font-size", "0.85em", "color", "var(--mj-text-muted)"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-times"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-info-circle"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"]], template: function QueryCategoryDialogComponent_Template(rf, ctx) { if (rf & 1) {
187
- i0.ɵɵconditionalCreate(0, QueryCategoryDialogComponent_Conditional_0_Template, 26, 9, "mj-dialog", 0);
188
- } if (rf & 2) {
189
- i0.ɵɵconditional(ctx.isVisible ? 0 : -1);
190
- } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel, i2.MJButtonDirective, i2.MJDropdownComponent, i2.MJDialogComponent, i2.MJDialogTitlebarComponent, i2.MJDialogActionsComponent], styles: ["\n\n.form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n .k-dialog {\n border-radius: var(--mj-radius-md);\n box-shadow: var(--mj-shadow-lg);\n}\n\n .k-dialog-titlebar {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-strong);\n padding: 16px 20px;\n}\n\n .k-dialog-content {\n padding: 0;\n}"] }); }
191
- }
192
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCategoryDialogComponent, [{
193
- type: Component,
194
- args: [{ standalone: false, selector: 'mj-query-category-dialog', template: "@if (isVisible) {\n <mj-dialog\n [Visible]=\"true\"\n [Width]=\"500\"\n (Close)=\"close()\">\n <mj-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 </mj-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 <input class=\"mj-input\"\n [(ngModel)]=\"categoryName\"\n name=\"categoryName\"\n placeholder=\"Enter category name...\"\n style=\"width: 100%;\" />\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 <mj-dropdown\n [(ngModel)]=\"selectedParentId\"\n name=\"parentCategory\"\n [Data]=\"flattenedCategories\"\n TextField=\"name\"\n ValueField=\"id\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"-- No Parent (Top Level) --\"\n style=\"width: 100%;\">\n </mj-dropdown>\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 <mj-dialog-actions>\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button mjButton\n variant=\"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 </mj-dialog-actions>\n </mj-dialog>\n}\n", styles: ["/* Category Dialog Styles */\n.form-group {\n margin-bottom: 20px;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 8px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n::ng-deep .k-dialog {\n border-radius: var(--mj-radius-md);\n box-shadow: var(--mj-shadow-lg);\n}\n\n::ng-deep .k-dialog-titlebar {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-strong);\n padding: 16px 20px;\n}\n\n::ng-deep .k-dialog-content {\n padding: 0;\n}\n"] }]
195
- }], null, { isVisible: [{
196
- type: Input
197
- }], isVisibleChange: [{
198
- type: Output
199
- }], onCategoryCreated: [{
200
- type: Output
201
- }] }); })();
202
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCategoryDialogComponent, { className: "QueryCategoryDialogComponent", filePath: "src/lib/custom/Queries/query-category-dialog.component.ts", lineNumber: 20 }); })();
203
- //# sourceMappingURL=query-category-dialog.component.js.map
@@ -1 +0,0 @@
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, QueryEngine } from '@memberjunction/core-entities';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\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 extends BaseAngularComponent 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 ngOnInit() {\n this.loadCategories();\n }\n \n loadCategories() {\n this.categories = QueryEngine.Instance.Categories;\n this.categoryTree = this.buildCategoryTree(this.categories);\n this.flattenedCategories = this.flattenCategories(this.categoryTree, 0);\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 = this.ProviderToUse;\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 <mj-dialog\n [Visible]=\"true\"\n [Width]=\"500\"\n (Close)=\"close()\">\n <mj-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 </mj-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 <input class=\"mj-input\"\n [(ngModel)]=\"categoryName\"\n name=\"categoryName\"\n placeholder=\"Enter category name...\"\n style=\"width: 100%;\" />\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 <mj-dropdown\n [(ngModel)]=\"selectedParentId\"\n name=\"parentCategory\"\n [Data]=\"flattenedCategories\"\n TextField=\"name\"\n ValueField=\"id\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"-- No Parent (Top Level) --\"\n style=\"width: 100%;\">\n </mj-dropdown>\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 <mj-dialog-actions>\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button mjButton\n variant=\"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 </mj-dialog-actions>\n </mj-dialog>\n}\n"]}