@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.
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +10 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +645 -531
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +13 -4
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +374 -326
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +2 -3
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1 -2
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +24 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -224
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +39 -41
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +8 -9
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +71 -73
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js +10 -6
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +47 -39
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +58 -24
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +10 -8
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js +8 -6
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js.map +1 -1
- package/package.json +36 -36
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts +0 -34
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +0 -203
- 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:
|
|
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(
|
|
33
|
-
i0.ɵɵelement(
|
|
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(
|
|
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;
|
|
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.
|
|
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.
|
|
33
|
-
"@memberjunction/ai": "5.
|
|
34
|
-
"@memberjunction/ai-core-plus": "5.
|
|
35
|
-
"@memberjunction/ai-engine-base": "5.
|
|
36
|
-
"@memberjunction/core": "5.
|
|
37
|
-
"@memberjunction/core-entities": "5.
|
|
38
|
-
"@memberjunction/global": "5.
|
|
39
|
-
"@memberjunction/graphql-dataprovider": "5.
|
|
40
|
-
"@memberjunction/ng-action-gallery": "5.
|
|
41
|
-
"@memberjunction/ng-actions": "5.
|
|
42
|
-
"@memberjunction/ng-agents": "5.
|
|
43
|
-
"@memberjunction/ng-ai-test-harness": "5.
|
|
44
|
-
"@memberjunction/ng-base-application": "5.
|
|
45
|
-
"@memberjunction/ng-base-forms": "5.
|
|
46
|
-
"@memberjunction/ng-base-types": "5.
|
|
47
|
-
"@memberjunction/ng-code-editor": "5.
|
|
48
|
-
"@memberjunction/ng-deep-diff": "5.
|
|
49
|
-
"@memberjunction/ng-entity-relationship-diagram": "5.
|
|
50
|
-
"@memberjunction/ng-entity-viewer": "5.
|
|
51
|
-
"@memberjunction/ng-flow-editor": "5.
|
|
52
|
-
"@memberjunction/ng-join-grid": "5.
|
|
53
|
-
"@memberjunction/ng-link-directives": "5.
|
|
54
|
-
"@memberjunction/ng-list-management": "5.
|
|
55
|
-
"@memberjunction/ng-markdown": "5.
|
|
56
|
-
"@memberjunction/ng-notifications": "5.
|
|
57
|
-
"@memberjunction/ng-search": "5.
|
|
58
|
-
"@memberjunction/ng-shared": "5.
|
|
59
|
-
"@memberjunction/ng-shared-generic": "5.
|
|
60
|
-
"@memberjunction/ng-tabstrip": "5.
|
|
61
|
-
"@memberjunction/ng-testing": "5.
|
|
62
|
-
"@memberjunction/ng-timeline": "5.
|
|
63
|
-
"@memberjunction/ng-trees": "5.
|
|
64
|
-
"@memberjunction/ng-ui-components": "5.
|
|
65
|
-
"@memberjunction/ng-versions": "5.
|
|
66
|
-
"@memberjunction/templates-base-types": "5.
|
|
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"]}
|