@memberjunction/ng-core-entity-forms 3.3.0 → 3.4.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/AIPrompts/ai-prompt-form.component.js +16 -17
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +16 -30
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +9 -10
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +7 -7
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +195 -112
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +4 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +401 -380
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +4 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +539 -518
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +4 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -518
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +48 -52
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +11 -25
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +18 -24
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js +11 -17
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js +24 -22
- package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Action/action.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Action/action.form.component.js +44 -26
- package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js +23 -5
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Company/company.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Company/company.form.component.js +28 -10
- package/dist/lib/generated/Entities/Company/company.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +3 -3
- package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js +3 -3
- package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js +3 -3
- package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Credential/credential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Credential/credential.form.component.js +23 -5
- package/dist/lib/generated/Entities/Credential/credential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js +23 -5
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js +14 -20
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js +9 -15
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js +3 -3
- package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js +6 -12
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js +5 -11
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js +8 -14
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js +6 -12
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js +6 -12
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js +11 -17
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js +142 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js +158 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js +77 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js +73 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js +132 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js +101 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/Role/role.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Role/role.form.component.js +30 -12
- package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Task/task.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Task/task.form.component.js +26 -32
- package/dist/lib/generated/Entities/Task/task.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +182 -146
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +97 -86
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +140 -59
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +30 -30
- package/dist/lib/custom/Actions/action-param-dialog.component.d.ts +0 -32
- package/dist/lib/custom/Actions/action-param-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/Actions/action-param-dialog.component.js +0 -321
- package/dist/lib/custom/Actions/action-param-dialog.component.js.map +0 -1
- package/dist/lib/custom/Actions/action-result-code-dialog.component.d.ts +0 -20
- package/dist/lib/custom/Actions/action-result-code-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/Actions/action-result-code-dialog.component.js +0 -127
- package/dist/lib/custom/Actions/action-result-code-dialog.component.js.map +0 -1
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.d.ts +0 -15
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.js +0 -96
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.js.map +0 -1
- package/dist/lib/custom/Actions/action-test-harness.component.d.ts +0 -50
- package/dist/lib/custom/Actions/action-test-harness.component.d.ts.map +0 -1
- package/dist/lib/custom/Actions/action-test-harness.component.js +0 -710
- package/dist/lib/custom/Actions/action-test-harness.component.js.map +0 -1
|
@@ -15,152 +15,235 @@ import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
|
15
15
|
import { languages } from '@codemirror/language-data';
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
import * as i1 from "@angular/forms";
|
|
18
|
-
import * as i2 from "@progress/kendo-angular-
|
|
19
|
-
import * as i3 from "@progress/kendo-angular-
|
|
20
|
-
import * as i4 from "@
|
|
21
|
-
import * as i5 from "@
|
|
22
|
-
import * as i6 from "@memberjunction/ng-
|
|
23
|
-
import * as i7 from "@memberjunction/ng-
|
|
18
|
+
import * as i2 from "@progress/kendo-angular-layout";
|
|
19
|
+
import * as i3 from "@progress/kendo-angular-inputs";
|
|
20
|
+
import * as i4 from "@progress/kendo-angular-dropdowns";
|
|
21
|
+
import * as i5 from "@progress/kendo-angular-buttons";
|
|
22
|
+
import * as i6 from "@memberjunction/ng-base-forms";
|
|
23
|
+
import * as i7 from "@memberjunction/ng-form-toolbar";
|
|
24
24
|
import * as i8 from "./template-param-dialog.component";
|
|
25
25
|
import * as i9 from "./template-params-grid.component";
|
|
26
26
|
import * as i10 from "../../shared/components/template-editor.component";
|
|
27
27
|
const _c0 = ["codeEditor"];
|
|
28
28
|
function TemplatesFormExtendedComponent_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
29
29
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
30
|
-
i0.ɵɵelementStart(0, "kendo-textbox",
|
|
30
|
+
i0.ɵɵelementStart(0, "kendo-textbox", 38);
|
|
31
31
|
i0.ɵɵtwoWayListener("ngModelChange", function TemplatesFormExtendedComponent_Conditional_1_Conditional_9_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Name, $event) || (ctx_r2.record.Name = $event); return i0.ɵɵresetView($event); });
|
|
32
32
|
i0.ɵɵelementEnd();
|
|
33
33
|
} if (rf & 2) {
|
|
34
34
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
35
35
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Name);
|
|
36
36
|
} }
|
|
37
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelementStart(0, "span", 40);
|
|
39
|
+
i0.ɵɵelement(1, "i", 42);
|
|
40
|
+
i0.ɵɵtext(2, " Active ");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
} }
|
|
43
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
i0.ɵɵelementStart(0, "span", 41);
|
|
45
|
+
i0.ɵɵelement(1, "i", 43);
|
|
46
|
+
i0.ɵɵtext(2, " Inactive ");
|
|
47
|
+
i0.ɵɵelementEnd();
|
|
48
|
+
} }
|
|
37
49
|
function TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
-
i0.ɵɵelementStart(0, "
|
|
50
|
+
i0.ɵɵelementStart(0, "h4", 39);
|
|
39
51
|
i0.ɵɵtext(1);
|
|
40
52
|
i0.ɵɵelementEnd();
|
|
53
|
+
i0.ɵɵtemplate(2, TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Conditional_2_Template, 3, 0, "span", 40)(3, TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Conditional_3_Template, 3, 0, "span", 41);
|
|
41
54
|
} if (rf & 2) {
|
|
42
55
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
43
56
|
i0.ɵɵadvance();
|
|
44
|
-
i0.ɵɵ
|
|
57
|
+
i0.ɵɵtextInterpolate(ctx_r2.record.Name || "Unnamed Template");
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵconditional(ctx_r2.record.IsActive ? 2 : 3);
|
|
45
60
|
} }
|
|
46
|
-
function
|
|
61
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
47
62
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "div")(2, "label", 44);
|
|
64
|
+
i0.ɵɵtext(3, "Category");
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
i0.ɵɵelementStart(4, "kendo-combobox", 45);
|
|
67
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TemplatesFormExtendedComponent_Conditional_1_Conditional_11_Template_kendo_combobox_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.CategoryID, $event) || (ctx_r2.record.CategoryID = $event); return i0.ɵɵresetView($event); });
|
|
68
|
+
i0.ɵɵlistener("valueChange", function TemplatesFormExtendedComponent_Conditional_1_Conditional_11_Template_kendo_combobox_valueChange_4_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCategoryChange($event)); });
|
|
69
|
+
i0.ɵɵelementEnd()();
|
|
70
|
+
i0.ɵɵelementStart(5, "div")(6, "label", 44);
|
|
71
|
+
i0.ɵɵtext(7, "Active");
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementStart(8, "kendo-switch", 46);
|
|
74
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TemplatesFormExtendedComponent_Conditional_1_Conditional_11_Template_kendo_switch_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.IsActive, $event) || (ctx_r2.record.IsActive = $event); return i0.ɵɵresetView($event); });
|
|
75
|
+
i0.ɵɵelementEnd()()();
|
|
76
|
+
} if (rf & 2) {
|
|
77
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
78
|
+
i0.ɵɵadvance(4);
|
|
79
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.CategoryID);
|
|
80
|
+
i0.ɵɵproperty("data", ctx_r2.categoryOptions)("valuePrimitive", true)("allowCustom", true);
|
|
81
|
+
i0.ɵɵadvance(4);
|
|
82
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.IsActive);
|
|
83
|
+
} }
|
|
84
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
48
86
|
i0.ɵɵelementStart(0, "kendo-textarea", 47);
|
|
49
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
87
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TemplatesFormExtendedComponent_Conditional_1_Conditional_12_Template_kendo_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Description, $event) || (ctx_r2.record.Description = $event); return i0.ɵɵresetView($event); });
|
|
50
88
|
i0.ɵɵelementEnd();
|
|
51
89
|
} if (rf & 2) {
|
|
52
90
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
53
91
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Description);
|
|
54
92
|
i0.ɵɵproperty("rows", 2);
|
|
55
93
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵelementStart(0, "
|
|
94
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelementStart(0, "p", 13);
|
|
58
96
|
i0.ɵɵtext(1);
|
|
59
97
|
i0.ɵɵelementEnd();
|
|
60
98
|
} if (rf & 2) {
|
|
61
99
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
62
100
|
i0.ɵɵadvance();
|
|
63
|
-
i0.ɵɵ
|
|
101
|
+
i0.ɵɵtextInterpolate(ctx_r2.record.Description);
|
|
64
102
|
} }
|
|
65
|
-
function
|
|
66
|
-
|
|
67
|
-
i0.ɵɵ
|
|
68
|
-
i0.ɵɵ
|
|
69
|
-
i0.ɵɵ
|
|
103
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
105
|
+
i0.ɵɵelement(1, "i", 48);
|
|
106
|
+
i0.ɵɵelementStart(2, "span", 17);
|
|
107
|
+
i0.ɵɵtext(3, "Category:");
|
|
70
108
|
i0.ɵɵelementEnd();
|
|
109
|
+
i0.ɵɵelementStart(4, "span", 18);
|
|
110
|
+
i0.ɵɵtext(5);
|
|
111
|
+
i0.ɵɵelementEnd()();
|
|
71
112
|
} if (rf & 2) {
|
|
72
113
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
73
|
-
i0.ɵɵ
|
|
74
|
-
i0.ɵɵ
|
|
114
|
+
i0.ɵɵadvance(5);
|
|
115
|
+
i0.ɵɵtextInterpolate(ctx_r2.record.Category);
|
|
75
116
|
} }
|
|
76
|
-
function
|
|
77
|
-
i0.ɵɵ
|
|
117
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
119
|
+
i0.ɵɵelementStart(0, "button", 49);
|
|
120
|
+
i0.ɵɵlistener("click", function TemplatesFormExtendedComponent_Conditional_1_Conditional_23_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.runTemplate()); });
|
|
121
|
+
i0.ɵɵelement(1, "i", 50);
|
|
122
|
+
i0.ɵɵtext(2, " Run ");
|
|
123
|
+
i0.ɵɵelementEnd();
|
|
124
|
+
} if (rf & 2) {
|
|
125
|
+
i0.ɵɵproperty("themeColor", "primary")("size", "large");
|
|
126
|
+
} }
|
|
127
|
+
function TemplatesFormExtendedComponent_Conditional_1_ng_template_26_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
+
i0.ɵɵelementStart(0, "span", 53);
|
|
78
129
|
i0.ɵɵtext(1);
|
|
79
130
|
i0.ɵɵelementEnd();
|
|
80
131
|
} if (rf & 2) {
|
|
81
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
132
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
82
133
|
i0.ɵɵadvance();
|
|
83
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.
|
|
134
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.templateContents.length, " ");
|
|
84
135
|
} }
|
|
85
|
-
function
|
|
86
|
-
i0.ɵɵelementStart(0, "span",
|
|
87
|
-
i0.ɵɵelement(1, "i",
|
|
88
|
-
i0.ɵɵtext(2, "
|
|
136
|
+
function TemplatesFormExtendedComponent_Conditional_1_ng_template_26_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
138
|
+
i0.ɵɵelement(1, "i", 52);
|
|
139
|
+
i0.ɵɵtext(2, " Template Editor ");
|
|
140
|
+
i0.ɵɵtemplate(3, TemplatesFormExtendedComponent_Conditional_1_ng_template_26_Conditional_3_Template, 2, 1, "span", 53);
|
|
141
|
+
i0.ɵɵelementEnd();
|
|
142
|
+
} if (rf & 2) {
|
|
143
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
144
|
+
i0.ɵɵadvance(3);
|
|
145
|
+
i0.ɵɵconditional(ctx_r2.templateContents.length > 0 ? 3 : -1);
|
|
146
|
+
} }
|
|
147
|
+
function TemplatesFormExtendedComponent_Conditional_1_ng_template_30_Template(rf, ctx) { if (rf & 1) {
|
|
148
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
149
|
+
i0.ɵɵelement(1, "i", 54);
|
|
150
|
+
i0.ɵɵtext(2, " Details ");
|
|
89
151
|
i0.ɵɵelementEnd();
|
|
90
152
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelementStart(0, "span",
|
|
93
|
-
i0.ɵɵelement(1, "i",
|
|
94
|
-
i0.ɵɵtext(2, "
|
|
153
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_44_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
154
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
155
|
+
i0.ɵɵelement(1, "i", 57);
|
|
156
|
+
i0.ɵɵtext(2, " Parameters ");
|
|
95
157
|
i0.ɵɵelementEnd();
|
|
96
158
|
} }
|
|
159
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
i0.ɵɵelementStart(0, "kendo-expansionpanel", 22);
|
|
161
|
+
i0.ɵɵtemplate(1, TemplatesFormExtendedComponent_Conditional_1_Conditional_44_ng_template_1_Template, 3, 0, "ng-template", 23);
|
|
162
|
+
i0.ɵɵelementStart(2, "div", 55);
|
|
163
|
+
i0.ɵɵelement(3, "mj-template-params-grid", 56);
|
|
164
|
+
i0.ɵɵelementEnd()();
|
|
165
|
+
} if (rf & 2) {
|
|
166
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
167
|
+
i0.ɵɵproperty("expanded", false);
|
|
168
|
+
i0.ɵɵadvance(3);
|
|
169
|
+
i0.ɵɵproperty("template", ctx_r2.record)("editMode", ctx_r2.EditMode);
|
|
170
|
+
} }
|
|
171
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_45_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
172
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
173
|
+
i0.ɵɵelement(1, "i", 59);
|
|
174
|
+
i0.ɵɵtext(2, " AI Prompts ");
|
|
175
|
+
i0.ɵɵelementEnd();
|
|
176
|
+
} }
|
|
177
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_45_Template(rf, ctx) { if (rf & 1) {
|
|
178
|
+
i0.ɵɵelementStart(0, "kendo-expansionpanel", 22);
|
|
179
|
+
i0.ɵɵtemplate(1, TemplatesFormExtendedComponent_Conditional_1_Conditional_45_ng_template_1_Template, 3, 0, "ng-template", 23);
|
|
180
|
+
i0.ɵɵelementStart(2, "div", 55);
|
|
181
|
+
i0.ɵɵelement(3, "mj-explorer-entity-data-grid", 58);
|
|
182
|
+
i0.ɵɵelementEnd()();
|
|
183
|
+
} if (rf & 2) {
|
|
184
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
185
|
+
i0.ɵɵproperty("expanded", false);
|
|
186
|
+
i0.ɵɵadvance(3);
|
|
187
|
+
i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("AI Prompts", "TemplateID"))("NewRecordValues", ctx_r2.NewRecordValues("AI Prompts"))("AllowLoad", true)("ShowToolbar", false);
|
|
188
|
+
} }
|
|
189
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_46_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
190
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
191
|
+
i0.ɵɵelement(1, "i", 60);
|
|
192
|
+
i0.ɵɵtext(2, " Entity Documents ");
|
|
193
|
+
i0.ɵɵelementEnd();
|
|
194
|
+
} }
|
|
195
|
+
function TemplatesFormExtendedComponent_Conditional_1_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
+
i0.ɵɵelementStart(0, "kendo-expansionpanel", 22);
|
|
197
|
+
i0.ɵɵtemplate(1, TemplatesFormExtendedComponent_Conditional_1_Conditional_46_ng_template_1_Template, 3, 0, "ng-template", 23);
|
|
198
|
+
i0.ɵɵelementStart(2, "div", 55);
|
|
199
|
+
i0.ɵɵelement(3, "mj-explorer-entity-data-grid", 58);
|
|
200
|
+
i0.ɵɵelementEnd()();
|
|
201
|
+
} if (rf & 2) {
|
|
202
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
203
|
+
i0.ɵɵproperty("expanded", false);
|
|
204
|
+
i0.ɵɵadvance(3);
|
|
205
|
+
i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("Entity Documents", "TemplateID"))("NewRecordValues", ctx_r2.NewRecordValues("Entity Documents"))("AllowLoad", true)("ShowToolbar", false);
|
|
206
|
+
} }
|
|
97
207
|
function TemplatesFormExtendedComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
98
208
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
99
209
|
i0.ɵɵelementStart(0, "form", 2, 0);
|
|
100
210
|
i0.ɵɵelement(2, "mj-form-toolbar", 3);
|
|
101
|
-
i0.ɵɵelementStart(3, "div", 4)(4, "div", 5)(5, "div", 6)(6, "
|
|
102
|
-
i0.ɵɵelement(
|
|
103
|
-
i0.ɵɵ
|
|
104
|
-
i0.ɵɵelementEnd();
|
|
105
|
-
i0.ɵɵtemplate(9, TemplatesFormExtendedComponent_Conditional_1_Conditional_9_Template, 1, 1, "kendo-textbox", 9)(10, TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Template, 2, 1, "div", 10);
|
|
106
|
-
i0.ɵɵelementEnd();
|
|
107
|
-
i0.ɵɵelementStart(11, "div", 6)(12, "label", 7);
|
|
108
|
-
i0.ɵɵelement(13, "i", 11);
|
|
109
|
-
i0.ɵɵtext(14, " Description ");
|
|
211
|
+
i0.ɵɵelementStart(3, "div", 4)(4, "div", 5)(5, "div", 6)(6, "div", 7)(7, "div", 8);
|
|
212
|
+
i0.ɵɵelement(8, "i", 9);
|
|
213
|
+
i0.ɵɵtemplate(9, TemplatesFormExtendedComponent_Conditional_1_Conditional_9_Template, 1, 1, "kendo-textbox", 10)(10, TemplatesFormExtendedComponent_Conditional_1_Conditional_10_Template, 4, 2);
|
|
110
214
|
i0.ɵɵelementEnd();
|
|
111
|
-
i0.ɵɵtemplate(
|
|
215
|
+
i0.ɵɵtemplate(11, TemplatesFormExtendedComponent_Conditional_1_Conditional_11_Template, 9, 5, "div", 11)(12, TemplatesFormExtendedComponent_Conditional_1_Conditional_12_Template, 1, 2, "kendo-textarea", 12)(13, TemplatesFormExtendedComponent_Conditional_1_Conditional_13_Template, 2, 1, "p", 13);
|
|
216
|
+
i0.ɵɵelementStart(14, "div", 14);
|
|
217
|
+
i0.ɵɵtemplate(15, TemplatesFormExtendedComponent_Conditional_1_Conditional_15_Template, 6, 1, "div", 15);
|
|
218
|
+
i0.ɵɵelementStart(16, "div", 15);
|
|
219
|
+
i0.ɵɵelement(17, "i", 16);
|
|
220
|
+
i0.ɵɵelementStart(18, "span", 17);
|
|
221
|
+
i0.ɵɵtext(19, "Contents:");
|
|
112
222
|
i0.ɵɵelementEnd();
|
|
113
|
-
i0.ɵɵelementStart(
|
|
114
|
-
i0.ɵɵ
|
|
115
|
-
i0.ɵɵ
|
|
116
|
-
i0.ɵɵ
|
|
117
|
-
i0.ɵɵtemplate(
|
|
118
|
-
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵelementStart(23, "div", 17);
|
|
120
|
-
i0.ɵɵtemplate(24, TemplatesFormExtendedComponent_Conditional_1_Conditional_24_Template, 3, 0, "span", 18)(25, TemplatesFormExtendedComponent_Conditional_1_Conditional_25_Template, 3, 0, "span", 19);
|
|
223
|
+
i0.ɵɵelementStart(20, "span", 18);
|
|
224
|
+
i0.ɵɵtext(21);
|
|
225
|
+
i0.ɵɵelementEnd()()()();
|
|
226
|
+
i0.ɵɵelementStart(22, "div", 19);
|
|
227
|
+
i0.ɵɵtemplate(23, TemplatesFormExtendedComponent_Conditional_1_Conditional_23_Template, 3, 2, "button", 20);
|
|
121
228
|
i0.ɵɵelementEnd()()();
|
|
122
|
-
i0.ɵɵelementStart(
|
|
123
|
-
i0.ɵɵ
|
|
124
|
-
i0.ɵɵelementStart(27, "mj-
|
|
125
|
-
i0.ɵɵ
|
|
126
|
-
i0.ɵɵtext(29, " Contents ");
|
|
127
|
-
i0.ɵɵelementStart(30, "span", 23);
|
|
128
|
-
i0.ɵɵtext(31);
|
|
129
|
-
i0.ɵɵelementEnd()();
|
|
130
|
-
i0.ɵɵelementStart(32, "mj-tab-body")(33, "div", 24)(34, "mj-template-editor", 25);
|
|
131
|
-
i0.ɵɵlistener("contentChange", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_editor_contentChange_34_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSharedTemplateContentChange($event)); })("runTemplate", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_editor_runTemplate_34_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSharedTemplateRun($event)); });
|
|
229
|
+
i0.ɵɵelementStart(24, "div", 21)(25, "kendo-expansionpanel", 22);
|
|
230
|
+
i0.ɵɵtemplate(26, TemplatesFormExtendedComponent_Conditional_1_ng_template_26_Template, 4, 1, "ng-template", 23);
|
|
231
|
+
i0.ɵɵelementStart(27, "div", 24)(28, "mj-template-editor", 25);
|
|
232
|
+
i0.ɵɵlistener("contentChange", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_editor_contentChange_28_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSharedTemplateContentChange($event)); })("runTemplate", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_editor_runTemplate_28_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSharedTemplateRun($event)); });
|
|
132
233
|
i0.ɵɵelementEnd()()();
|
|
133
|
-
i0.ɵɵelementStart(
|
|
134
|
-
i0.ɵɵ
|
|
135
|
-
i0.ɵɵ
|
|
234
|
+
i0.ɵɵelementStart(29, "kendo-expansionpanel", 22);
|
|
235
|
+
i0.ɵɵtemplate(30, TemplatesFormExtendedComponent_Conditional_1_ng_template_30_Template, 3, 0, "ng-template", 23);
|
|
236
|
+
i0.ɵɵelementStart(31, "div", 26)(32, "div", 27)(33, "div");
|
|
237
|
+
i0.ɵɵelement(34, "mj-form-field", 28)(35, "mj-form-field", 29)(36, "mj-form-field", 30)(37, "mj-form-field", 31);
|
|
136
238
|
i0.ɵɵelementEnd();
|
|
137
|
-
i0.ɵɵelementStart(38, "
|
|
138
|
-
i0.ɵɵelement(
|
|
239
|
+
i0.ɵɵelementStart(38, "div");
|
|
240
|
+
i0.ɵɵelement(39, "mj-form-field", 32)(40, "mj-form-field", 33)(41, "mj-form-field", 34)(42, "mj-form-field", 35)(43, "mj-form-field", 36);
|
|
241
|
+
i0.ɵɵelementEnd()()()();
|
|
242
|
+
i0.ɵɵtemplate(44, TemplatesFormExtendedComponent_Conditional_1_Conditional_44_Template, 4, 3, "kendo-expansionpanel", 22)(45, TemplatesFormExtendedComponent_Conditional_1_Conditional_45_Template, 4, 5, "kendo-expansionpanel", 22)(46, TemplatesFormExtendedComponent_Conditional_1_Conditional_46_Template, 4, 5, "kendo-expansionpanel", 22);
|
|
139
243
|
i0.ɵɵelementEnd()()();
|
|
140
|
-
i0.ɵɵelementStart(
|
|
141
|
-
i0.ɵɵ
|
|
142
|
-
i0.ɵɵ
|
|
143
|
-
i0.ɵɵelementEnd();
|
|
144
|
-
i0.ɵɵelementStart(53, "mj-tab-body");
|
|
145
|
-
i0.ɵɵelement(54, "mj-template-params-grid", 40);
|
|
146
|
-
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵelementStart(55, "mj-tab", 41);
|
|
148
|
-
i0.ɵɵelement(56, "i", 42);
|
|
149
|
-
i0.ɵɵtext(57, " AI Prompts ");
|
|
150
|
-
i0.ɵɵelementEnd();
|
|
151
|
-
i0.ɵɵelementStart(58, "mj-tab-body");
|
|
152
|
-
i0.ɵɵelement(59, "mj-user-view-grid", 43);
|
|
153
|
-
i0.ɵɵelementEnd();
|
|
154
|
-
i0.ɵɵelementStart(60, "mj-tab", 44);
|
|
155
|
-
i0.ɵɵelement(61, "i", 8);
|
|
156
|
-
i0.ɵɵtext(62, " Documents ");
|
|
157
|
-
i0.ɵɵelementEnd();
|
|
158
|
-
i0.ɵɵelementStart(63, "mj-tab-body");
|
|
159
|
-
i0.ɵɵelement(64, "mj-user-view-grid", 43);
|
|
160
|
-
i0.ɵɵelementEnd()()();
|
|
161
|
-
i0.ɵɵelementStart(65, "mj-template-param-dialog", 45);
|
|
162
|
-
i0.ɵɵtwoWayListener("isVisibleChange", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_param_dialog_isVisibleChange_65_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showParamDialog, $event) || (ctx_r2.showParamDialog = $event); return i0.ɵɵresetView($event); });
|
|
163
|
-
i0.ɵɵlistener("onClose", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_param_dialog_onClose_65_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onParamDialogClose()); });
|
|
244
|
+
i0.ɵɵelementStart(47, "mj-template-param-dialog", 37);
|
|
245
|
+
i0.ɵɵtwoWayListener("isVisibleChange", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_param_dialog_isVisibleChange_47_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showParamDialog, $event) || (ctx_r2.showParamDialog = $event); return i0.ɵɵresetView($event); });
|
|
246
|
+
i0.ɵɵlistener("onClose", function TemplatesFormExtendedComponent_Conditional_1_Template_mj_template_param_dialog_onClose_47_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onParamDialogClose()); });
|
|
164
247
|
i0.ɵɵelementEnd();
|
|
165
248
|
} if (rf & 2) {
|
|
166
249
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -168,19 +251,23 @@ function TemplatesFormExtendedComponent_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
168
251
|
i0.ɵɵproperty("form", ctx_r2);
|
|
169
252
|
i0.ɵɵadvance(7);
|
|
170
253
|
i0.ɵɵconditional(ctx_r2.EditMode ? 9 : 10);
|
|
171
|
-
i0.ɵɵadvance(
|
|
172
|
-
i0.ɵɵconditional(ctx_r2.EditMode ?
|
|
173
|
-
i0.ɵɵadvance(
|
|
174
|
-
i0.ɵɵconditional(ctx_r2.EditMode ?
|
|
254
|
+
i0.ɵɵadvance(2);
|
|
255
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 11 : -1);
|
|
256
|
+
i0.ɵɵadvance();
|
|
257
|
+
i0.ɵɵconditional(ctx_r2.EditMode ? 12 : ctx_r2.record.Description ? 13 : -1);
|
|
175
258
|
i0.ɵɵadvance(3);
|
|
176
|
-
i0.ɵɵconditional(ctx_r2.record.
|
|
177
|
-
i0.ɵɵadvance(
|
|
178
|
-
i0.ɵɵ
|
|
259
|
+
i0.ɵɵconditional(ctx_r2.record.Category ? 15 : -1);
|
|
260
|
+
i0.ɵɵadvance(6);
|
|
261
|
+
i0.ɵɵtextInterpolate(ctx_r2.templateContents.length);
|
|
262
|
+
i0.ɵɵadvance(2);
|
|
263
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 23 : -1);
|
|
264
|
+
i0.ɵɵadvance(2);
|
|
265
|
+
i0.ɵɵproperty("expanded", true);
|
|
179
266
|
i0.ɵɵadvance(3);
|
|
180
267
|
i0.ɵɵproperty("template", ctx_r2.record)("config", ctx_r2.templateEditorConfig);
|
|
181
|
-
i0.ɵɵadvance(7);
|
|
182
|
-
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
183
268
|
i0.ɵɵadvance();
|
|
269
|
+
i0.ɵɵproperty("expanded", false);
|
|
270
|
+
i0.ɵɵadvance(5);
|
|
184
271
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
185
272
|
i0.ɵɵadvance();
|
|
186
273
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
@@ -188,6 +275,8 @@ function TemplatesFormExtendedComponent_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
188
275
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
189
276
|
i0.ɵɵadvance();
|
|
190
277
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
278
|
+
i0.ɵɵadvance(2);
|
|
279
|
+
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
191
280
|
i0.ɵɵadvance();
|
|
192
281
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
193
282
|
i0.ɵɵadvance();
|
|
@@ -197,17 +286,11 @@ function TemplatesFormExtendedComponent_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
197
286
|
i0.ɵɵadvance();
|
|
198
287
|
i0.ɵɵproperty("record", ctx_r2.record)("ShowLabel", true)("EditMode", ctx_r2.EditMode);
|
|
199
288
|
i0.ɵɵadvance();
|
|
200
|
-
i0.ɵɵ
|
|
201
|
-
i0.ɵɵadvance(4);
|
|
202
|
-
i0.ɵɵproperty("template", ctx_r2.record)("editMode", ctx_r2.EditMode);
|
|
289
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 44 : -1);
|
|
203
290
|
i0.ɵɵadvance();
|
|
204
|
-
i0.ɵɵ
|
|
205
|
-
i0.ɵɵadvance(4);
|
|
206
|
-
i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("AI Prompts", "TemplateID"))("NewRecordValues", ctx_r2.NewRecordValues("AI Prompts"))("AllowLoad", ctx_r2.IsCurrentTab("AI Prompts"))("EditMode", ctx_r2.GridEditMode());
|
|
291
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 45 : -1);
|
|
207
292
|
i0.ɵɵadvance();
|
|
208
|
-
i0.ɵɵ
|
|
209
|
-
i0.ɵɵadvance(4);
|
|
210
|
-
i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("Entity Documents", "TemplateID"))("NewRecordValues", ctx_r2.NewRecordValues("Entity Documents"))("AllowLoad", ctx_r2.IsCurrentTab("Entity Documents"))("EditMode", ctx_r2.GridEditMode());
|
|
293
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 46 : -1);
|
|
211
294
|
i0.ɵɵadvance();
|
|
212
295
|
i0.ɵɵproperty("template", ctx_r2.record);
|
|
213
296
|
i0.ɵɵtwoWayProperty("isVisible", ctx_r2.showParamDialog);
|
|
@@ -711,14 +794,14 @@ let TemplatesFormExtendedComponent = class TemplatesFormExtendedComponent extend
|
|
|
711
794
|
} if (rf & 2) {
|
|
712
795
|
let _t;
|
|
713
796
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeEditor = _t.first);
|
|
714
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [["form", "ngForm"], [1, "record-form-container"
|
|
797
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [["form", "ngForm"], [1, "record-form-container", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [3, "form"], [1, "template-main-area", 2, "display", "flex", "flex-direction", "column", "flex", "1", "min-height", "0", "overflow-y", "auto"], [1, "template-header", 2, "flex-shrink", "0", "padding", "20px", "background", "#f8f9fa", "border-bottom", "2px solid #e9ecef"], [2, "display", "flex", "justify-content", "space-between", "align-items", "flex-start", "gap", "20px"], [2, "flex", "1", "min-width", "0"], [2, "display", "flex", "align-items", "center", "gap", "12px", "margin-bottom", "8px"], [1, "fa-solid", "fa-file-code", 2, "color", "#17a2b8", "font-size", "1.4em"], ["name", "templateName", "placeholder", "Enter template name...", 2, "font-size", "1.2em", "font-weight", "600", "min-width", "300px", "flex", "1", 3, "ngModel"], [2, "display", "flex", "gap", "16px", "margin-bottom", "12px", "flex-wrap", "wrap", "align-items", "center"], ["name", "description", "placeholder", "Enter template description...", 2, "width", "100%", "max-width", "600px", "margin-bottom", "12px", 3, "ngModel", "rows"], [2, "margin", "0 0 12px 0", "color", "#6c757d", "font-size", "0.9em", "line-height", "1.4"], [2, "display", "flex", "align-items", "center", "gap", "16px", "flex-wrap", "wrap"], [2, "display", "flex", "align-items", "center", "gap", "6px", "font-size", "0.85em"], [1, "fa-solid", "fa-file-lines", 2, "color", "#6c757d"], [2, "color", "#6c757d"], [2, "color", "#495057", "font-weight", "500"], [2, "display", "flex", "flex-direction", "column", "gap", "8px", "align-items", "flex-end"], ["kendoButton", "", "title", "Run Template", 3, "themeColor", "size"], [1, "configuration-sections", 2, "flex", "1", "background", "white", "border-top", "2px solid #e9ecef", "padding", "16px", "min-height", "0"], [2, "margin-bottom", "12px", 3, "expanded"], ["kendoExpansionPanelTitleDirective", ""], [2, "padding", "8px", "min-height", "400px"], [2, "height", "100%", "display", "block", 3, "contentChange", "runTemplate", "template", "config"], [2, "padding", "16px"], [2, "display", "grid", "grid-template-columns", "1fr 1fr", "gap", "20px"], ["FieldName", "UserPrompt", "Type", "textarea", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "UserID", "Type", "textbox", "LinkType", "Record", "LinkComponentType", "Search", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "ActiveAt", "Type", "datepicker", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "DisabledAt", "Type", "datepicker", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "IsActive", "Type", "checkbox", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "Category", "Type", "textbox", 3, "record", "ShowLabel", "EditMode"], ["FieldName", "User", "Type", "textbox", 3, "record", "ShowLabel", "EditMode"], [3, "isVisibleChange", "onClose", "template", "isVisible"], ["name", "templateName", "placeholder", "Enter template name...", 2, "font-size", "1.2em", "font-weight", "600", "min-width", "300px", "flex", "1", 3, "ngModelChange", "ngModel"], [2, "margin", "0", "color", "#495057", "font-weight", "600", "flex", "1"], [2, "background", "#28a745", "color", "white", "padding", "4px 10px", "border-radius", "12px", "font-size", "0.75em", "font-weight", "500"], [2, "background", "#6c757d", "color", "white", "padding", "4px 10px", "border-radius", "12px", "font-size", "0.75em", "font-weight", "500"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-pause-circle"], [2, "display", "block", "margin-bottom", "4px", "font-weight", "600", "color", "#495057", "font-size", "0.9em"], ["name", "categoryId", "textField", "text", "valueField", "value", "placeholder", "Select or enter new category...", 2, "width", "250px", 3, "ngModelChange", "valueChange", "ngModel", "data", "valuePrimitive", "allowCustom"], ["name", "isActive", 3, "ngModelChange", "ngModel"], ["name", "description", "placeholder", "Enter template description...", 2, "width", "100%", "max-width", "600px", "margin-bottom", "12px", 3, "ngModelChange", "ngModel", "rows"], [1, "fa-solid", "fa-folder", 2, "color", "#6c757d"], ["kendoButton", "", "title", "Run Template", 3, "click", "themeColor", "size"], [1, "fa-solid", "fa-play"], [2, "display", "flex", "align-items", "center", "gap", "8px", "font-weight", "600"], [1, "fa-solid", "fa-code", 2, "color", "#6c757d"], [1, "badge", 2, "background", "#17a2b8", "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [1, "fa-solid", "fa-cogs", 2, "color", "#6c757d"], [2, "padding", "16px 0"], [3, "template", "editMode"], [1, "fa-solid", "fa-sliders", 2, "color", "#6c757d"], [3, "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], [1, "fa-solid", "fa-robot", 2, "color", "#6c757d"], [1, "fa-solid", "fa-file-text", 2, "color", "#6c757d"]], template: function TemplatesFormExtendedComponent_Template(rf, ctx) { if (rf & 1) {
|
|
715
798
|
i0.ɵɵelementStart(0, "div", 1);
|
|
716
|
-
i0.ɵɵtemplate(1, TemplatesFormExtendedComponent_Conditional_1_Template,
|
|
799
|
+
i0.ɵɵtemplate(1, TemplatesFormExtendedComponent_Conditional_1_Template, 48, 43);
|
|
717
800
|
i0.ɵɵelementEnd();
|
|
718
801
|
} if (rf & 2) {
|
|
719
802
|
i0.ɵɵadvance();
|
|
720
803
|
i0.ɵɵconditional(ctx.record ? 1 : -1);
|
|
721
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.
|
|
804
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.ExpansionPanelComponent, i2.ExpansionPanelTitleDirective, i3.TextAreaComponent, i3.TextBoxComponent, i3.SwitchComponent, i4.ComboBoxComponent, i5.ButtonComponent, i6.MJFormField, i6.ExplorerEntityDataGridComponent, i7.FormToolbarComponent, i8.TemplateParamDialogComponent, i9.TemplateParamsGridComponent, i10.TemplateEditorComponent], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: #F5F6FA;\n}\n\n.content-margin[_ngcontent-%COMP%] {\n margin: 10px;\n} \n\n\na[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: block;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n\n.k-splitter[_ngcontent-%COMP%] {\n border-width: 0px;\n}\n\n.record-form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child {\n font-weight: bold;\n padding-right: 10px;\n} \n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n \n\n@media (min-width: 768px) {\n .record-form-row[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: #F5F6FA;\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] > .form-card[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n\n\n@media (min-width: 1400px) {\n .form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card[_ngcontent-%COMP%] {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.collapsible-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-body[_ngcontent-%COMP%] {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed[_ngcontent-%COMP%] {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.form-card.related-entity[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #3b82f6;\n}\n\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n\n\n.form-card.search-hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n\n\n.section-count-badge[_ngcontent-%COMP%] {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .search-highlight[_ngcontent-%COMP%] {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge[_ngcontent-%COMP%] {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge.zero-rows[_ngcontent-%COMP%] {\n background: #9ca3af;\n}", "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.record-form-container[_ngcontent-%COMP%] {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n.record-form[_ngcontent-%COMP%] {\n min-height: 0 !important;\n}\n\n.template-header[_ngcontent-%COMP%] {\n border-bottom: 2px solid #e9ecef;\n}\n\n.badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n .configuration-sections kendo-expansionpanel {\n border: none !important;\n border-radius: 12px !important;\n margin-bottom: 12px !important;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;\n background: white !important;\n overflow: hidden !important;\n}\n\n .configuration-sections .k-expander-header {\n background: white !important;\n border: none !important;\n padding: 16px 20px !important;\n border-radius: 12px !important;\n color: #2c3e50 !important;\n font-weight: 600 !important;\n font-size: 16px !important;\n transition: all 0.2s ease !important;\n}\n\n .configuration-sections .k-expander-header:hover {\n background: #f8f9fa !important;\n}\n\n\n\n .configuration-sections kendo-expansionpanel[aria-expanded=\"true\"] .k-expander-header {\n background: #17a2b8 !important;\n color: white !important;\n border-radius: 12px 12px 0 0 !important;\n}\n\n\n\n .configuration-sections .k-expander-content {\n padding: 0 !important;\n border: none !important;\n background: white !important;\n border-radius: 0 0 12px 12px !important;\n}\n\n\n\n .configuration-sections .k-expander-header .fa-solid {\n transition: transform 0.2s ease !important;\n}\n\n\n\n.template-header[_ngcontent-%COMP%], \n.badge[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}"] }); }
|
|
722
805
|
};
|
|
723
806
|
TemplatesFormExtendedComponent = __decorate([
|
|
724
807
|
RegisterClass(BaseFormComponent, 'Templates')
|
|
@@ -726,7 +809,7 @@ TemplatesFormExtendedComponent = __decorate([
|
|
|
726
809
|
export { TemplatesFormExtendedComponent };
|
|
727
810
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplatesFormExtendedComponent, [{
|
|
728
811
|
type: Component,
|
|
729
|
-
args: [{ selector: 'mj-templates-form', template: "<div class=\"record-form-container\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" >\n <mj-form-toolbar [form]=\"this\"></mj-form-toolbar>\n\n <!-- Top Section - Key Fields -->\n <div class=\"template-header\" style=\"background: #f8f9fa; border-bottom: 1px solid #dee2e6; padding: 8px 20px;\">\n <div style=\"display: grid; grid-template-columns: 1fr 2fr 1fr auto; gap: 12px; align-items: start;\">\n \n <!-- Name -->\n <div class=\"form-group\" style=\"margin: 0;\">\n <label class=\"form-label\" style=\"font-weight: 500; margin-bottom: 3px; color: #495057; font-size: 0.85em;\">\n <i class=\"fa-solid fa-file-text\"></i> Template Name\n </label>\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\" name=\"templateName\" placeholder=\"Enter template name...\"></kendo-textbox>\n } @else {\n <div class=\"form-control-plaintext\" style=\"font-size: 1em; font-weight: 500; padding: 6px 0;\">\n {{ record.Name || 'Unnamed Template' }}\n </div>\n }\n </div>\n\n <!-- Description -->\n <div class=\"form-group\" style=\"margin: 0;\">\n <label class=\"form-label\" style=\"font-weight: 500; margin-bottom: 3px; color: #495057; font-size: 0.85em;\">\n <i class=\"fa-solid fa-align-left\"></i> Description\n </label>\n @if (EditMode) {\n <kendo-textarea [(ngModel)]=\"record.Description\" \n name=\"description\"\n [rows]=\"2\"\n placeholder=\"Enter template description...\"></kendo-textarea>\n } @else {\n <div class=\"form-control-plaintext\" style=\"padding: 8px 0; color: #6c757d;\">\n {{ record.Description || 'No description provided' }}\n </div>\n }\n </div>\n\n <!-- Category -->\n <div class=\"form-group\" style=\"margin: 0;\">\n <label class=\"form-label\" style=\"font-weight: 500; margin-bottom: 3px; color: #495057; font-size: 0.85em;\">\n <i class=\"fa-solid fa-folder\"></i> Category\n </label>\n @if (EditMode) {\n <kendo-combobox [(ngModel)]=\"record.CategoryID\" \n name=\"categoryId\"\n [data]=\"categoryOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [allowCustom]=\"true\"\n (valueChange)=\"onCategoryChange($event)\"\n placeholder=\"Select or enter new category...\">\n </kendo-combobox>\n } @else {\n <div class=\"form-control-plaintext\" style=\"padding: 8px 0;\">\n {{ record.Category || 'Uncategorized' }}\n </div>\n }\n </div>\n\n <!-- Template Status -->\n <div style=\"display: flex; flex-direction: column; align-items: flex-end; justify-content: center;\">\n @if (record.IsActive) {\n <span class=\"badge badge-success\" style=\"background: #28a745; color: white; padding: 6px 12px; border-radius: 4px; font-size: 0.85em;\">\n <i class=\"fa-solid fa-check-circle\"></i> Active\n </span>\n } @else {\n <span class=\"badge badge-secondary\" style=\"background: #6c757d; color: white; padding: 6px 12px; border-radius: 4px; font-size: 0.85em;\">\n <i class=\"fa-solid fa-pause-circle\"></i> Inactive\n </span>\n }\n </div>\n </div>\n </div>\n\n <mj-tabstrip (TabSelected)=\"onTabSelect($event)\" (ResizeContainer)=\"InvokeManualResize()\">\n \n <!-- Contents Tab - Main Focus -->\n <mj-tab Name=\"Contents\">\n <i class=\"fa-solid fa-file-lines\"></i> Contents \n <span class=\"badge badge-info\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 3px; font-size: 0.7em; margin-left: 6px;\">\n {{ templateContents.length }}\n </span>\n </mj-tab>\n <mj-tab-body>\n <div class=\"template-contents-main content-margin\">\n <!-- Shared Template Editor -->\n <mj-template-editor \n [template]=\"record\"\n [config]=\"templateEditorConfig\"\n (contentChange)=\"onSharedTemplateContentChange($event)\"\n (runTemplate)=\"onSharedTemplateRun($event)\"\n style=\"height: 100%; display: block;\">\n </mj-template-editor>\n </div>\n </mj-tab-body>\n\n <!-- Details Tab - Extra Fields -->\n <mj-tab Name=\"Details\">\n <i class=\"fa-solid fa-cogs\"></i> Details\n </mj-tab>\n <mj-tab-body>\n <div style=\"padding: 20px;\">\n <div class=\"record-form\">\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"UserPrompt\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"UserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n LinkType=\"Record\"\n LinkComponentType=\"Search\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ActiveAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"DisabledAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsActive\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\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 </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Category\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field \n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"User\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n </div>\n </div>\n </mj-tab-body>\n\n <!-- Template Params Tab -->\n <mj-tab Name=\"Template Params\" [Visible]=\"record.IsSaved\"> \n <i class=\"fa-solid fa-sliders\"></i> Parameters\n </mj-tab>\n <mj-tab-body>\n <mj-template-params-grid \n [template]=\"record\"\n [editMode]=\"EditMode\">\n </mj-template-params-grid> \n </mj-tab-body>\n\n <!-- AI Prompts Tab -->\n <mj-tab Name=\"AI Prompts\" [Visible]=\"record.IsSaved\"> \n <i class=\"fa-solid fa-robot\"></i> AI Prompts\n </mj-tab>\n <mj-tab-body>\n <mj-user-view-grid \n [Params]=\"BuildRelationshipViewParamsByEntityName('AI Prompts','TemplateID')\" \n [NewRecordValues]=\"NewRecordValues('AI Prompts')\"\n [AllowLoad]=\"IsCurrentTab('AI Prompts')\" \n [EditMode]=\"GridEditMode()\" \n >\n </mj-user-view-grid> \n </mj-tab-body>\n\n <!-- Entity Documents Tab -->\n <mj-tab Name=\"Entity Documents\" [Visible]=\"record.IsSaved\"> \n <i class=\"fa-solid fa-file-text\"></i> Documents\n </mj-tab>\n <mj-tab-body>\n <mj-user-view-grid \n [Params]=\"BuildRelationshipViewParamsByEntityName('Entity Documents','TemplateID')\" \n [NewRecordValues]=\"NewRecordValues('Entity Documents')\"\n [AllowLoad]=\"IsCurrentTab('Entity Documents')\" \n [EditMode]=\"GridEditMode()\" \n >\n </mj-user-view-grid> \n </mj-tab-body>\n </mj-tabstrip>\n </form>\n\n <!-- Template Parameter Dialog -->\n <mj-template-param-dialog \n [template]=\"record\"\n [(isVisible)]=\"showParamDialog\"\n (onClose)=\"onParamDialogClose()\">\n </mj-template-param-dialog>\n }\n</div>", styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.content-margin {\n margin: 10px;\n} \n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2; \n} */\n\n/* \n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff; \n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n} \n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n \n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: #F5F6FA;\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n"] }]
|
|
812
|
+
args: [{ selector: 'mj-templates-form', template: "<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [form]=\"this\"></mj-form-toolbar>\n\n <!-- Main Content Area -->\n <div class=\"template-main-area\" style=\"display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto;\">\n\n <!-- Header Section -->\n <div class=\"template-header\" style=\"flex-shrink: 0; padding: 20px; background: #f8f9fa; border-bottom: 2px solid #e9ecef;\">\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;\">\n\n <!-- Left: Template Info -->\n <div style=\"flex: 1; min-width: 0;\">\n <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-file-code\" style=\"color: #17a2b8; font-size: 1.4em;\"></i>\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\"\n name=\"templateName\"\n placeholder=\"Enter template name...\"\n style=\"font-size: 1.2em; font-weight: 600; min-width: 300px; flex: 1;\">\n </kendo-textbox>\n } @else {\n <h4 style=\"margin: 0; color: #495057; font-weight: 600; flex: 1;\">{{ record.Name || 'Unnamed Template' }}</h4>\n @if (record.IsActive) {\n <span style=\"background: #28a745; color: white; padding: 4px 10px; border-radius: 12px; font-size: 0.75em; font-weight: 500;\">\n <i class=\"fa-solid fa-check-circle\"></i> Active\n </span>\n } @else {\n <span style=\"background: #6c757d; color: white; padding: 4px 10px; border-radius: 12px; font-size: 0.75em; font-weight: 500;\">\n <i class=\"fa-solid fa-pause-circle\"></i> Inactive\n </span>\n }\n }\n </div>\n\n <!-- Category and Active toggle when in edit mode -->\n @if (EditMode) {\n <div style=\"display: flex; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; align-items: center;\">\n <div>\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #495057; font-size: 0.9em;\">Category</label>\n <kendo-combobox [(ngModel)]=\"record.CategoryID\"\n name=\"categoryId\"\n [data]=\"categoryOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [allowCustom]=\"true\"\n (valueChange)=\"onCategoryChange($event)\"\n placeholder=\"Select or enter new category...\"\n style=\"width: 250px;\">\n </kendo-combobox>\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #495057; font-size: 0.9em;\">Active</label>\n <kendo-switch [(ngModel)]=\"record.IsActive\" name=\"isActive\"></kendo-switch>\n </div>\n </div>\n }\n\n @if (EditMode) {\n <kendo-textarea [(ngModel)]=\"record.Description\"\n name=\"description\"\n [rows]=\"2\"\n placeholder=\"Enter template description...\"\n style=\"width: 100%; max-width: 600px; margin-bottom: 12px;\">\n </kendo-textarea>\n } @else if (record.Description) {\n <p style=\"margin: 0 0 12px 0; color: #6c757d; font-size: 0.9em; line-height: 1.4;\">{{ record.Description }}</p>\n }\n\n <!-- Quick Info Row -->\n <div style=\"display: flex; align-items: center; gap: 16px; flex-wrap: wrap;\">\n @if (record.Category) {\n <div style=\"display: flex; align-items: center; gap: 6px; font-size: 0.85em;\">\n <i class=\"fa-solid fa-folder\" style=\"color: #6c757d;\"></i>\n <span style=\"color: #6c757d;\">Category:</span>\n <span style=\"color: #495057; font-weight: 500;\">{{ record.Category }}</span>\n </div>\n }\n\n <div style=\"display: flex; align-items: center; gap: 6px; font-size: 0.85em;\">\n <i class=\"fa-solid fa-file-lines\" style=\"color: #6c757d;\"></i>\n <span style=\"color: #6c757d;\">Contents:</span>\n <span style=\"color: #495057; font-weight: 500;\">{{ templateContents.length }}</span>\n </div>\n </div>\n </div>\n\n <!-- Right: Action Buttons -->\n <div style=\"display: flex; flex-direction: column; gap: 8px; align-items: flex-end;\">\n @if (record.IsSaved) {\n <button kendoButton [themeColor]=\"'primary'\" [size]=\"'large'\"\n (click)=\"runTemplate()\"\n title=\"Run Template\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n }\n </div>\n </div>\n </div>\n\n <!-- Configuration Sections with Expansion Panels -->\n <div class=\"configuration-sections\" style=\"flex: 1; background: white; border-top: 2px solid #e9ecef; padding: 16px; min-height: 0;\">\n\n <!-- Template Editor Section -->\n <kendo-expansionpanel\n [expanded]=\"true\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-code\" style=\"color: #6c757d;\"></i>\n Template Editor\n @if (templateContents.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ templateContents.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 8px; min-height: 400px;\">\n <mj-template-editor\n [template]=\"record\"\n [config]=\"templateEditorConfig\"\n (contentChange)=\"onSharedTemplateContentChange($event)\"\n (runTemplate)=\"onSharedTemplateRun($event)\"\n style=\"height: 100%; display: block;\">\n </mj-template-editor>\n </div>\n </kendo-expansionpanel>\n\n <!-- Details Section -->\n <kendo-expansionpanel\n [expanded]=\"false\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-cogs\" style=\"color: #6c757d;\"></i>\n Details\n </span>\n </ng-template>\n\n <div style=\"padding: 16px;\">\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px;\">\n <!-- Left Column -->\n <div>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"UserPrompt\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"UserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n LinkType=\"Record\"\n LinkComponentType=\"Search\">\n </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ActiveAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"DisabledAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n </div>\n\n <!-- Right Column -->\n <div>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsActive\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\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 </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Category\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n <mj-form-field\n [record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"User\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Template Parameters Section -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [expanded]=\"false\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sliders\" style=\"color: #6c757d;\"></i>\n Parameters\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n <mj-template-params-grid\n [template]=\"record\"\n [editMode]=\"EditMode\">\n </mj-template-params-grid>\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- AI Prompts Section -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [expanded]=\"false\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-robot\" style=\"color: #6c757d;\"></i>\n AI Prompts\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('AI Prompts','TemplateID')\"\n [NewRecordValues]=\"NewRecordValues('AI Prompts')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Entity Documents Section -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [expanded]=\"false\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-file-text\" style=\"color: #6c757d;\"></i>\n Entity Documents\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('Entity Documents','TemplateID')\"\n [NewRecordValues]=\"NewRecordValues('Entity Documents')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n </div>\n </kendo-expansionpanel>\n }\n </div>\n </div>\n </form>\n\n <!-- Template Parameter Dialog -->\n <mj-template-param-dialog\n [template]=\"record\"\n [(isVisible)]=\"showParamDialog\"\n (onClose)=\"onParamDialogClose()\">\n </mj-template-param-dialog>\n }\n</div>\n", styles: [".k-pane {\n background-color: #F5F6FA;\n}\n\n.content-margin {\n margin: 10px;\n} \n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: #F5F6FA;\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: #F5F6FA;\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n\n/* .record-form .record-form-row:nth-child(odd) {\n background-color: #f2f2f2; \n} */\n\n/* \n.record-form .record-form-row:nth-child(even) {\n background-color: #ffffff; \n} */\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n} \n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n \n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: #F5F6FA;\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: linear-gradient(135deg, #f3f4f6 0%, #f9fafb 100%);\n border-bottom-color: #667eea;\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: #667eea;\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n}\n\n.collapsible-header .collapse-icon {\n color: #6b7280;\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: linear-gradient(135deg, #f0f9ff 0%, #ffffff 100%);\n border-left: 3px solid #3b82f6;\n}\n\n.form-card.related-entity .collapsible-header {\n background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: linear-gradient(135deg, #bfdbfe 0%, #e0f2fe 100%);\n border-bottom-color: #3b82f6;\n}\n\n.form-card.related-entity .collapsible-title i {\n color: #3b82f6;\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);\n border-bottom: 2px solid #e5e7eb;\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n background: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: #667eea;\n color: white;\n border-color: #667eea;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid #d1d5db;\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: white;\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.form-section-controls .section-search::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: #6b7280;\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: #667eea;\n color: white;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: #fef08a;\n color: #854d0e;\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: #10b981;\n color: white;\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: #9ca3af;\n}\n", "/* Override shared form-styles to enable flex layout */\n:host {\n display: block;\n height: 100%;\n}\n\n.record-form-container {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Override the shared record-form min-height so flex layout works properly */\n.record-form {\n min-height: 0 !important;\n}\n\n.template-header {\n border-bottom: 2px solid #e9ecef;\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* Expansion Panel Styling */\n::ng-deep .configuration-sections kendo-expansionpanel {\n border: none !important;\n border-radius: 12px !important;\n margin-bottom: 12px !important;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;\n background: white !important;\n overflow: hidden !important;\n}\n\n::ng-deep .configuration-sections .k-expander-header {\n background: white !important;\n border: none !important;\n padding: 16px 20px !important;\n border-radius: 12px !important;\n color: #2c3e50 !important;\n font-weight: 600 !important;\n font-size: 16px !important;\n transition: all 0.2s ease !important;\n}\n\n::ng-deep .configuration-sections .k-expander-header:hover {\n background: #f8f9fa !important;\n}\n\n/* Expanded state header */\n::ng-deep .configuration-sections kendo-expansionpanel[aria-expanded=\"true\"] .k-expander-header {\n background: #17a2b8 !important;\n color: white !important;\n border-radius: 12px 12px 0 0 !important;\n}\n\n/* Content area */\n::ng-deep .configuration-sections .k-expander-content {\n padding: 0 !important;\n border: none !important;\n background: white !important;\n border-radius: 0 0 12px 12px !important;\n}\n\n/* Icon in header */\n::ng-deep .configuration-sections .k-expander-header .fa-solid {\n transition: transform 0.2s ease !important;\n}\n\n/* Smooth transitions */\n.template-header,\n.badge {\n transition: all 0.2s ease;\n}\n"] }]
|
|
730
813
|
}], null, { codeEditor: [{
|
|
731
814
|
type: ViewChild,
|
|
732
815
|
args: ['codeEditor']
|