@memberjunction/ng-core-entity-forms 5.29.0 → 5.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +4 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +567 -566
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +3 -0
  6. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +243 -244
  8. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  9. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +3 -0
  10. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  11. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +417 -416
  12. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  13. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +51 -16
  14. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  15. package/dist/lib/custom/Actions/action-execution-log-form.component.js +422 -139
  16. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  17. package/dist/lib/custom/Actions/action-form.component.d.ts +68 -1
  18. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  19. package/dist/lib/custom/Actions/action-form.component.js +882 -422
  20. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  21. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +3 -0
  22. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
  23. package/dist/lib/custom/EntityActions/entityaction.form.component.js +23 -22
  24. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  25. package/dist/lib/custom/Queries/query-form.component.d.ts +2 -0
  26. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  27. package/dist/lib/custom/Queries/query-form.component.js +617 -627
  28. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  29. package/dist/lib/custom/Templates/templates-form.component.d.ts +3 -0
  30. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  31. package/dist/lib/custom/Templates/templates-form.component.js +157 -158
  32. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  33. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  34. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +176 -152
  35. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  36. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.d.ts.map +1 -1
  37. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js +42 -6
  38. package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  40. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +57 -49
  41. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  42. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +83 -77
  43. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  44. package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js +2 -2
  45. package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js.map +1 -1
  46. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js +10 -10
  47. package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js.map +1 -1
  48. package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js +11 -9
  49. package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js.map +1 -1
  50. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +9 -9
  51. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
  52. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +23 -21
  53. package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
  54. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +9 -7
  55. package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
  56. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.d.ts +10 -0
  57. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.d.ts.map +1 -0
  58. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js +85 -0
  59. package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js.map +1 -0
  60. package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.d.ts.map +1 -1
  61. package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js +21 -12
  62. package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +5 -5
  64. package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
  65. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +21 -21
  66. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  67. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  68. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +201 -183
  69. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  70. package/dist/lib/generated/generated-forms.module.d.ts +97 -96
  71. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  72. package/dist/lib/generated/generated-forms.module.js +36 -33
  73. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  74. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  75. package/dist/lib/shared/components/template-editor.component.js +14 -8
  76. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  77. package/package.json +34 -34
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Component, ViewChild, inject } from '@angular/core';
8
8
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
9
- import { BaseFormComponent, DEFAULT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';
9
+ import { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';
10
10
  import { MJQueryFormComponent } from '../../generated/Entities/MJQuery/mjquery.form.component';
11
11
  import { Metadata, RunView, RUN_QUERY_SQL_FILTERS, CompositeKey } from '@memberjunction/core';
12
12
  import { MJNotificationService } from '@memberjunction/ng-notifications';
@@ -27,114 +27,114 @@ const _c0 = ["sqlEditor"];
27
27
  const _forTrack0 = ($index, $item) => $item.name;
28
28
  const _forTrack1 = ($index, $item) => $item.ID || $index;
29
29
  const _forTrack2 = ($index, $item) => $item.ID;
30
- function MJQueryFormComponentExtended_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "div", 5);
32
- i0.ɵɵelement(1, "i", 49);
30
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelementStart(0, "div", 4);
32
+ i0.ɵɵelement(1, "i", 48);
33
33
  i0.ɵɵelementStart(2, "span");
34
34
  i0.ɵɵtext(3, "Saving...");
35
35
  i0.ɵɵelementEnd()();
36
36
  } }
37
- function MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
38
- const _r2 = i0.ɵɵgetCurrentView();
39
- i0.ɵɵelementStart(0, "input", 50);
40
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template_input_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); });
37
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
38
+ const _r3 = i0.ɵɵgetCurrentView();
39
+ i0.ɵɵelementStart(0, "input", 49);
40
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_9_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Name, $event) || (ctx_r1.record.Name = $event); return i0.ɵɵresetView($event); });
41
41
  i0.ɵɵelementEnd();
42
42
  } if (rf & 2) {
43
- const ctx_r2 = i0.ɵɵnextContext(2);
44
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Name);
43
+ const ctx_r1 = i0.ɵɵnextContext(2);
44
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Name);
45
45
  } }
46
- function MJQueryFormComponentExtended_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "h4", 12);
46
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "h4", 11);
48
48
  i0.ɵɵtext(1);
49
49
  i0.ɵɵelementEnd();
50
50
  } if (rf & 2) {
51
- const ctx_r2 = i0.ɵɵnextContext(2);
51
+ const ctx_r1 = i0.ɵɵnextContext(2);
52
52
  i0.ɵɵadvance();
53
- i0.ɵɵtextInterpolate(ctx_r2.record.Name || "Untitled Query");
53
+ i0.ɵɵtextInterpolate(ctx_r1.record.Name || "Untitled Query");
54
54
  } }
55
- function MJQueryFormComponentExtended_Conditional_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
55
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
56
56
  const _r4 = i0.ɵɵgetCurrentView();
57
- i0.ɵɵelementStart(0, "button", 51);
58
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.runQuery()); });
59
- i0.ɵɵelement(1, "i", 52);
57
+ i0.ɵɵelementStart(0, "button", 50);
58
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runQuery()); });
59
+ i0.ɵɵelement(1, "i", 51);
60
60
  i0.ɵɵtext(2, " Run ");
61
61
  i0.ɵɵelementEnd();
62
62
  } if (rf & 2) {
63
- const ctx_r2 = i0.ɵɵnextContext(2);
64
- i0.ɵɵproperty("disabled", ctx_r2.EditMode || !ctx_r2.record.SQL || ctx_r2.record.SQL.trim().length === 0);
63
+ const ctx_r1 = i0.ɵɵnextContext(2);
64
+ i0.ɵɵproperty("disabled", ctx_r1.EditMode || !ctx_r1.record.SQL || ctx_r1.record.SQL.trim().length === 0);
65
65
  } }
66
- function MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
66
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
67
67
  const _r5 = i0.ɵɵgetCurrentView();
68
- i0.ɵɵelementStart(0, "mj-tree-dropdown", 53);
69
- i0.ɵɵlistener("ValueChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template_mj_tree_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnCategoryTreeChange($event)); });
68
+ i0.ɵɵelementStart(0, "mj-tree-dropdown", 52);
69
+ i0.ɵɵlistener("ValueChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template_mj_tree_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnCategoryTreeChange($event)); });
70
70
  i0.ɵɵelementEnd();
71
71
  } if (rf & 2) {
72
- const ctx_r2 = i0.ɵɵnextContext(2);
73
- i0.ɵɵproperty("BranchConfig", ctx_r2.CategoryBranchConfig)("Value", ctx_r2.CategoryIDAsKey)("SelectableTypes", "branch")("SelectionMode", "single")("Placeholder", "Select category...")("EnableSearch", true)("Clearable", true);
72
+ const ctx_r1 = i0.ɵɵnextContext(2);
73
+ i0.ɵɵproperty("BranchConfig", ctx_r1.CategoryBranchConfig)("Value", ctx_r1.CategoryIDAsKey)("SelectableTypes", "branch")("SelectionMode", "single")("Placeholder", "Select category...")("EnableSearch", true)("Clearable", true);
74
74
  } }
75
- function MJQueryFormComponentExtended_Conditional_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
76
- i0.ɵɵelementStart(0, "span", 19);
75
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵelementStart(0, "span", 18);
77
77
  i0.ɵɵtext(1);
78
78
  i0.ɵɵelementEnd();
79
79
  } if (rf & 2) {
80
- const ctx_r2 = i0.ɵɵnextContext(2);
80
+ const ctx_r1 = i0.ɵɵnextContext(2);
81
81
  i0.ɵɵadvance();
82
- i0.ɵɵtextInterpolate(ctx_r2.categoryPathDisplay || "Uncategorized");
82
+ i0.ɵɵtextInterpolate(ctx_r1.categoryPathDisplay || "Uncategorized");
83
83
  } }
84
- function MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template(rf, ctx) { if (rf & 1) {
84
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
85
85
  const _r6 = i0.ɵɵgetCurrentView();
86
- i0.ɵɵelementStart(0, "mj-dropdown", 54);
87
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Status, $event) || (ctx_r2.record.Status = $event); return i0.ɵɵresetView($event); });
86
+ i0.ɵɵelementStart(0, "mj-dropdown", 53);
87
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Status, $event) || (ctx_r1.record.Status = $event); return i0.ɵɵresetView($event); });
88
88
  i0.ɵɵelementEnd();
89
89
  } if (rf & 2) {
90
- const ctx_r2 = i0.ɵɵnextContext(2);
91
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Status);
92
- i0.ɵɵproperty("Data", ctx_r2.statusOptions)("ValuePrimitive", true);
90
+ const ctx_r1 = i0.ɵɵnextContext(2);
91
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Status);
92
+ i0.ɵɵproperty("Data", ctx_r1.statusOptions)("ValuePrimitive", true);
93
93
  } }
94
- function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
95
- i0.ɵɵelementStart(0, "span", 55);
96
- i0.ɵɵelement(1, "i", 56);
94
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_23_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "span", 54);
96
+ i0.ɵɵelement(1, "i", 55);
97
97
  i0.ɵɵtext(2);
98
98
  i0.ɵɵelementEnd();
99
99
  } if (rf & 2) {
100
- const ctx_r2 = i0.ɵɵnextContext(2);
101
- i0.ɵɵstyleProp("background", ctx_r2.getStatusBadgeColor());
100
+ const ctx_r1 = i0.ɵɵnextContext(2);
101
+ i0.ɵɵstyleProp("background", ctx_r1.getStatusBadgeColor());
102
102
  i0.ɵɵadvance();
103
- i0.ɵɵclassMap(ctx_r2.getStatusBannerIcon());
103
+ i0.ɵɵclassMap(ctx_r1.getStatusBannerIcon());
104
104
  i0.ɵɵadvance();
105
- i0.ɵɵtextInterpolate1(" ", ctx_r2.record.Status || "Unknown", " ");
105
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status || "Unknown", " ");
106
106
  } }
107
- function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
107
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
108
108
  const _r7 = i0.ɵɵgetCurrentView();
109
- i0.ɵɵelementStart(0, "textarea", 59);
110
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Conditional_1_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Description, $event) || (ctx_r2.record.Description = $event); return i0.ɵɵresetView($event); });
109
+ i0.ɵɵelementStart(0, "textarea", 58);
110
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Description, $event) || (ctx_r1.record.Description = $event); return i0.ɵɵresetView($event); });
111
111
  i0.ɵɵtext(1, " ");
112
112
  i0.ɵɵelementEnd();
113
113
  } if (rf & 2) {
114
- const ctx_r2 = i0.ɵɵnextContext(3);
115
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Description);
114
+ const ctx_r1 = i0.ɵɵnextContext(3);
115
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Description);
116
116
  } }
117
- function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Conditional_2_Template(rf, ctx) { if (rf & 1) {
118
- i0.ɵɵelementStart(0, "p", 58);
117
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_2_Template(rf, ctx) { if (rf & 1) {
118
+ i0.ɵɵelementStart(0, "p", 57);
119
119
  i0.ɵɵtext(1);
120
120
  i0.ɵɵelementEnd();
121
121
  } if (rf & 2) {
122
- const ctx_r2 = i0.ɵɵnextContext(3);
122
+ const ctx_r1 = i0.ɵɵnextContext(3);
123
123
  i0.ɵɵadvance();
124
- i0.ɵɵtextInterpolate(ctx_r2.record.Description);
124
+ i0.ɵɵtextInterpolate(ctx_r1.record.Description);
125
125
  } }
126
- function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵelementStart(0, "div", 22);
128
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_24_Conditional_1_Template, 2, 1, "textarea", 57)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_24_Conditional_2_Template, 2, 1, "p", 58);
126
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Template(rf, ctx) { if (rf & 1) {
127
+ i0.ɵɵelementStart(0, "div", 21);
128
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template, 2, 1, "textarea", 56)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_2_Template, 2, 1, "p", 57);
129
129
  i0.ɵɵelementEnd();
130
130
  } if (rf & 2) {
131
- const ctx_r2 = i0.ɵɵnextContext(2);
131
+ const ctx_r1 = i0.ɵɵnextContext(2);
132
132
  i0.ɵɵadvance();
133
- i0.ɵɵconditional(ctx_r2.EditMode ? 1 : 2);
133
+ i0.ɵɵconditional(ctx_r1.EditMode ? 1 : 2);
134
134
  } }
135
- function MJQueryFormComponentExtended_Conditional_1_Conditional_25_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "div", 60);
137
- i0.ɵɵelement(1, "i", 56);
135
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_25_Template(rf, ctx) { if (rf & 1) {
136
+ i0.ɵɵelementStart(0, "div", 59);
137
+ i0.ɵɵelement(1, "i", 55);
138
138
  i0.ɵɵelementStart(2, "span");
139
139
  i0.ɵɵtext(3, " This query has status ");
140
140
  i0.ɵɵelementStart(4, "strong");
@@ -143,34 +143,34 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_25_Template(rf,
143
143
  i0.ɵɵtext(6);
144
144
  i0.ɵɵelementEnd()();
145
145
  } if (rf & 2) {
146
- const ctx_r2 = i0.ɵɵnextContext(2);
147
- i0.ɵɵstyleProp("border-left-color", ctx_r2.getStatusBadgeColor());
146
+ const ctx_r1 = i0.ɵɵnextContext(2);
147
+ i0.ɵɵstyleProp("border-left-color", ctx_r1.getStatusBadgeColor());
148
148
  i0.ɵɵadvance();
149
- i0.ɵɵclassMap(ctx_r2.getStatusBannerIcon());
150
- i0.ɵɵstyleProp("color", ctx_r2.getStatusBadgeColor());
149
+ i0.ɵɵclassMap(ctx_r1.getStatusBannerIcon());
150
+ i0.ɵɵstyleProp("color", ctx_r1.getStatusBadgeColor());
151
151
  i0.ɵɵadvance(4);
152
- i0.ɵɵtextInterpolate(ctx_r2.record.Status);
152
+ i0.ɵɵtextInterpolate(ctx_r1.record.Status);
153
153
  i0.ɵɵadvance();
154
- i0.ɵɵtextInterpolate1(". ", ctx_r2.getStatusBannerMessage(), " ");
154
+ i0.ɵɵtextInterpolate1(". ", ctx_r1.getStatusBannerMessage(), " ");
155
155
  } }
156
- function MJQueryFormComponentExtended_Conditional_1_ng_template_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
157
- i0.ɵɵelementStart(0, "span", 64);
156
+ function MJQueryFormComponentExtended_Conditional_0_ng_template_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵelementStart(0, "span", 63);
158
158
  i0.ɵɵtext(1, "\u2014 Defined");
159
159
  i0.ɵɵelementEnd();
160
160
  } }
161
- function MJQueryFormComponentExtended_Conditional_1_ng_template_28_Template(rf, ctx) { if (rf & 1) {
162
- i0.ɵɵelementStart(0, "span", 61)(1, "span", 62);
163
- i0.ɵɵelement(2, "i", 63);
161
+ function MJQueryFormComponentExtended_Conditional_0_ng_template_28_Template(rf, ctx) { if (rf & 1) {
162
+ i0.ɵɵelementStart(0, "span", 60)(1, "span", 61);
163
+ i0.ɵɵelement(2, "i", 62);
164
164
  i0.ɵɵtext(3, " SQL ");
165
- i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_1_ng_template_28_Conditional_4_Template, 2, 0, "span", 64);
165
+ i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_ng_template_28_Conditional_4_Template, 2, 0, "span", 63);
166
166
  i0.ɵɵelementEnd()();
167
167
  } if (rf & 2) {
168
- const ctx_r2 = i0.ɵɵnextContext(2);
168
+ const ctx_r1 = i0.ɵɵnextContext(2);
169
169
  i0.ɵɵadvance(4);
170
- i0.ɵɵconditional(ctx_r2.record.SQL ? 4 : -1);
170
+ i0.ɵɵconditional(ctx_r1.record.SQL ? 4 : -1);
171
171
  } }
172
- function MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
173
- i0.ɵɵelementStart(0, "div", 72);
172
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
173
+ i0.ɵɵelementStart(0, "div", 71);
174
174
  i0.ɵɵtext(1);
175
175
  i0.ɵɵelementEnd();
176
176
  } if (rf & 2) {
@@ -178,17 +178,17 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Conditi
178
178
  i0.ɵɵadvance();
179
179
  i0.ɵɵtextInterpolate(filter_r8.notes);
180
180
  } }
181
- function MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Template(rf, ctx) { if (rf & 1) {
182
- i0.ɵɵelementStart(0, "div", 68)(1, "div", 69);
181
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Template(rf, ctx) { if (rf & 1) {
182
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 68);
183
183
  i0.ɵɵtext(2);
184
184
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(3, "div", 70);
185
+ i0.ɵɵelementStart(3, "div", 69);
186
186
  i0.ɵɵtext(4);
187
187
  i0.ɵɵelementEnd();
188
- i0.ɵɵelementStart(5, "div", 71);
188
+ i0.ɵɵelementStart(5, "div", 70);
189
189
  i0.ɵɵtext(6);
190
190
  i0.ɵɵelementEnd();
191
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Conditional_7_Template, 2, 1, "div", 72);
191
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Conditional_7_Template, 2, 1, "div", 71);
192
192
  i0.ɵɵelementEnd();
193
193
  } if (rf & 2) {
194
194
  const filter_r8 = ctx.$implicit;
@@ -201,147 +201,147 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Templat
201
201
  i0.ɵɵadvance();
202
202
  i0.ɵɵconditional(filter_r8.notes ? 7 : -1);
203
203
  } }
204
- function MJQueryFormComponentExtended_Conditional_1_Conditional_38_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 33)(1, "h6", 65);
206
- i0.ɵɵelement(2, "i", 66);
204
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_38_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementStart(0, "div", 32)(1, "h6", 64);
206
+ i0.ɵɵelement(2, "i", 65);
207
207
  i0.ɵɵtext(3, " Available SQL Filters for Parameterized Queries ");
208
208
  i0.ɵɵelementEnd();
209
- i0.ɵɵelementStart(4, "div", 67);
210
- i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_38_For_6_Template, 8, 4, "div", 68, _forTrack0);
209
+ i0.ɵɵelementStart(4, "div", 66);
210
+ i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Template, 8, 4, "div", 67, _forTrack0);
211
211
  i0.ɵɵelementEnd()();
212
212
  } if (rf & 2) {
213
- const ctx_r2 = i0.ɵɵnextContext(2);
213
+ const ctx_r1 = i0.ɵɵnextContext(2);
214
214
  i0.ɵɵadvance(5);
215
- i0.ɵɵrepeater(ctx_r2.sqlFilters);
215
+ i0.ɵɵrepeater(ctx_r1.sqlFilters);
216
216
  } }
217
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
218
- i0.ɵɵelementStart(0, "span", 64);
217
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
218
+ i0.ɵɵelementStart(0, "span", 63);
219
219
  i0.ɵɵtext(1, "\u2014 Documented");
220
220
  i0.ɵɵelementEnd();
221
221
  } }
222
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Template(rf, ctx) { if (rf & 1) {
223
- i0.ɵɵelementStart(0, "span", 62);
224
- i0.ɵɵelement(1, "i", 74);
222
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Template(rf, ctx) { if (rf & 1) {
223
+ i0.ɵɵelementStart(0, "span", 61);
224
+ i0.ɵɵelement(1, "i", 73);
225
225
  i0.ɵɵtext(2, " Technical Description ");
226
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Conditional_3_Template, 2, 0, "span", 64);
226
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Conditional_3_Template, 2, 0, "span", 63);
227
227
  i0.ɵɵelementEnd();
228
228
  } if (rf & 2) {
229
- const ctx_r2 = i0.ɵɵnextContext(3);
229
+ const ctx_r1 = i0.ɵɵnextContext(3);
230
230
  i0.ɵɵadvance(3);
231
- i0.ɵɵconditional(ctx_r2.record.TechnicalDescription ? 3 : -1);
231
+ i0.ɵɵconditional(ctx_r1.record.TechnicalDescription ? 3 : -1);
232
232
  } }
233
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
234
- i0.ɵɵelementStart(0, "div", 76)(1, "div", 77);
235
- i0.ɵɵelement(2, "i", 78);
233
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
234
+ i0.ɵɵelementStart(0, "div", 75)(1, "div", 76);
235
+ i0.ɵɵelement(2, "i", 77);
236
236
  i0.ɵɵtext(3, " Preview ");
237
237
  i0.ɵɵelementEnd();
238
- i0.ɵɵelement(4, "mj-markdown", 79);
238
+ i0.ɵɵelement(4, "mj-markdown", 78);
239
239
  i0.ɵɵelementEnd();
240
240
  } if (rf & 2) {
241
- const ctx_r2 = i0.ɵɵnextContext(4);
241
+ const ctx_r1 = i0.ɵɵnextContext(4);
242
242
  i0.ɵɵadvance(4);
243
- i0.ɵɵproperty("data", ctx_r2.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
243
+ i0.ɵɵproperty("data", ctx_r1.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
244
244
  } }
245
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
245
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
246
246
  const _r10 = i0.ɵɵgetCurrentView();
247
- i0.ɵɵelementStart(0, "textarea", 75);
248
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.TechnicalDescription, $event) || (ctx_r2.record.TechnicalDescription = $event); return i0.ɵɵresetView($event); });
247
+ i0.ɵɵelementStart(0, "textarea", 74);
248
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.TechnicalDescription, $event) || (ctx_r1.record.TechnicalDescription = $event); return i0.ɵɵresetView($event); });
249
249
  i0.ɵɵtext(1, " ");
250
250
  i0.ɵɵelementEnd();
251
- i0.ɵɵconditionalCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Conditional_2_Template, 5, 5, "div", 76);
251
+ i0.ɵɵconditionalCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Conditional_2_Template, 5, 5, "div", 75);
252
252
  } if (rf & 2) {
253
- const ctx_r2 = i0.ɵɵnextContext(3);
254
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.TechnicalDescription);
253
+ const ctx_r1 = i0.ɵɵnextContext(3);
254
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.TechnicalDescription);
255
255
  i0.ɵɵadvance(2);
256
- i0.ɵɵconditional(ctx_r2.record.TechnicalDescription ? 2 : -1);
256
+ i0.ɵɵconditional(ctx_r1.record.TechnicalDescription ? 2 : -1);
257
257
  } }
258
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Template(rf, ctx) { if (rf & 1) {
259
- i0.ɵɵelementStart(0, "div", 73);
260
- i0.ɵɵelement(1, "mj-markdown", 79);
258
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4_Template(rf, ctx) { if (rf & 1) {
259
+ i0.ɵɵelementStart(0, "div", 72);
260
+ i0.ɵɵelement(1, "mj-markdown", 78);
261
261
  i0.ɵɵelementEnd();
262
262
  } if (rf & 2) {
263
- const ctx_r2 = i0.ɵɵnextContext(3);
263
+ const ctx_r1 = i0.ɵɵnextContext(3);
264
264
  i0.ɵɵadvance();
265
- i0.ɵɵproperty("data", ctx_r2.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
265
+ i0.ɵɵproperty("data", ctx_r1.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
266
266
  } }
267
- function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Template(rf, ctx) { if (rf & 1) {
267
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template(rf, ctx) { if (rf & 1) {
268
268
  const _r9 = i0.ɵɵgetCurrentView();
269
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
270
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.technicalDescriptionPanelExpanded, $event) || (ctx_r2.technicalDescriptionPanelExpanded = $event); return i0.ɵɵresetView($event); });
271
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Template, 4, 1, "ng-template", 26);
272
- i0.ɵɵelementStart(2, "div", 35);
273
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Template, 3, 2)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Template, 2, 5, "div", 73);
269
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
270
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.technicalDescriptionPanelExpanded, $event) || (ctx_r1.technicalDescriptionPanelExpanded = $event); return i0.ɵɵresetView($event); });
271
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Template, 4, 1, "ng-template", 25);
272
+ i0.ɵɵelementStart(2, "div", 34);
273
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template, 3, 2)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4_Template, 2, 5, "div", 72);
274
274
  i0.ɵɵelementEnd()();
275
275
  } if (rf & 2) {
276
- const ctx_r2 = i0.ɵɵnextContext(2);
277
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.technicalDescriptionPanelExpanded);
276
+ const ctx_r1 = i0.ɵɵnextContext(2);
277
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.technicalDescriptionPanelExpanded);
278
278
  i0.ɵɵadvance(3);
279
- i0.ɵɵconditional(ctx_r2.EditMode ? 3 : 4);
279
+ i0.ɵɵconditional(ctx_r1.EditMode ? 3 : 4);
280
280
  } }
281
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
282
- i0.ɵɵelementStart(0, "span", 82);
281
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
282
+ i0.ɵɵelementStart(0, "span", 81);
283
283
  i0.ɵɵtext(1);
284
284
  i0.ɵɵelementEnd();
285
285
  } if (rf & 2) {
286
- const ctx_r2 = i0.ɵɵnextContext(4);
286
+ const ctx_r1 = i0.ɵɵnextContext(4);
287
287
  i0.ɵɵadvance();
288
- i0.ɵɵtextInterpolate(ctx_r2.queryParameters.length);
288
+ i0.ɵɵtextInterpolate(ctx_r1.queryParameters.length);
289
289
  } }
290
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template(rf, ctx) { if (rf & 1) {
291
- i0.ɵɵelementStart(0, "span", 62);
292
- i0.ɵɵelement(1, "i", 81);
290
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Template(rf, ctx) { if (rf & 1) {
291
+ i0.ɵɵelementStart(0, "span", 61);
292
+ i0.ɵɵelement(1, "i", 80);
293
293
  i0.ɵɵtext(2, " Parameters ");
294
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span", 82);
294
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span", 81);
295
295
  i0.ɵɵelementEnd();
296
296
  } if (rf & 2) {
297
- const ctx_r2 = i0.ɵɵnextContext(3);
297
+ const ctx_r1 = i0.ɵɵnextContext(3);
298
298
  i0.ɵɵadvance(3);
299
- i0.ɵɵconditional(ctx_r2.queryParameters.length > 0 ? 3 : -1);
299
+ i0.ɵɵconditional(ctx_r1.queryParameters.length > 0 ? 3 : -1);
300
300
  } }
301
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_3_Template(rf, ctx) { if (rf & 1) {
302
- i0.ɵɵelementStart(0, "div", 80);
303
- i0.ɵɵelement(1, "mj-loading", 83);
301
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_3_Template(rf, ctx) { if (rf & 1) {
302
+ i0.ɵɵelementStart(0, "div", 79);
303
+ i0.ɵɵelement(1, "mj-loading", 82);
304
304
  i0.ɵɵelementEnd();
305
305
  } }
306
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
306
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
307
307
  const _r12 = i0.ɵɵgetCurrentView();
308
- i0.ɵɵelementStart(0, "button", 89);
309
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addParameter()); });
310
- i0.ɵɵelement(1, "i", 90);
308
+ i0.ɵɵelementStart(0, "button", 88);
309
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addParameter()); });
310
+ i0.ɵɵelement(1, "i", 89);
311
311
  i0.ɵɵtext(2, " Add First Parameter ");
312
312
  i0.ɵɵelementEnd();
313
313
  } }
314
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
315
- i0.ɵɵelementStart(0, "div", 84);
316
- i0.ɵɵelement(1, "i", 85);
317
- i0.ɵɵelementStart(2, "div", 86);
314
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
315
+ i0.ɵɵelementStart(0, "div", 83);
316
+ i0.ɵɵelement(1, "i", 84);
317
+ i0.ɵɵelementStart(2, "div", 85);
318
318
  i0.ɵɵtext(3, "No Parameters Defined");
319
319
  i0.ɵɵelementEnd();
320
- i0.ɵɵelementStart(4, "div", 87);
320
+ i0.ɵɵelementStart(4, "div", 86);
321
321
  i0.ɵɵtext(5, " Add parameters to make your query dynamic and reusable. ");
322
322
  i0.ɵɵelementEnd();
323
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 88);
323
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 87);
324
324
  i0.ɵɵelementEnd();
325
325
  } if (rf & 2) {
326
- const ctx_r2 = i0.ɵɵnextContext(4);
326
+ const ctx_r1 = i0.ɵɵnextContext(4);
327
327
  i0.ɵɵadvance(6);
328
- i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
328
+ i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
329
329
  } }
330
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
330
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
331
331
  const _r13 = i0.ɵɵgetCurrentView();
332
- i0.ɵɵelementStart(0, "div", 91)(1, "button", 89);
333
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addParameter()); });
334
- i0.ɵɵelement(2, "i", 90);
332
+ i0.ɵɵelementStart(0, "div", 90)(1, "button", 88);
333
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addParameter()); });
334
+ i0.ɵɵelement(2, "i", 89);
335
335
  i0.ɵɵtext(3, " Add Parameter ");
336
336
  i0.ɵɵelementEnd()();
337
337
  } }
338
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
339
- i0.ɵɵelementStart(0, "span", 99);
338
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
339
+ i0.ɵɵelementStart(0, "span", 98);
340
340
  i0.ɵɵtext(1, "Required");
341
341
  i0.ɵɵelementEnd();
342
342
  } }
343
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
344
- i0.ɵɵelementStart(0, "div", 101);
343
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
344
+ i0.ɵɵelementStart(0, "div", 100);
345
345
  i0.ɵɵtext(1);
346
346
  i0.ɵɵelementEnd();
347
347
  } if (rf & 2) {
@@ -349,11 +349,11 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4
349
349
  i0.ɵɵadvance();
350
350
  i0.ɵɵtextInterpolate(param_r15.Description);
351
351
  } }
352
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
353
- i0.ɵɵelementStart(0, "span", 103)(1, "strong");
352
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
353
+ i0.ɵɵelementStart(0, "span", 102)(1, "strong");
354
354
  i0.ɵɵtext(2, "Default:");
355
355
  i0.ɵɵelementEnd();
356
- i0.ɵɵelementStart(3, "code", 105);
356
+ i0.ɵɵelementStart(3, "code", 104);
357
357
  i0.ɵɵtext(4);
358
358
  i0.ɵɵelementEnd()();
359
359
  } if (rf & 2) {
@@ -361,44 +361,44 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4
361
361
  i0.ɵɵadvance(4);
362
362
  i0.ɵɵtextInterpolate(param_r15.DefaultValue);
363
363
  } }
364
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
364
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
365
365
  const _r16 = i0.ɵɵgetCurrentView();
366
- i0.ɵɵelementStart(0, "div", 106);
367
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r16); return i0.ɵɵresetView($event.stopPropagation()); });
368
- i0.ɵɵelementStart(1, "button", 107);
369
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r16); const param_r15 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.editParameter(param_r15)); });
370
- i0.ɵɵelement(2, "i", 108);
371
- i0.ɵɵelementEnd();
372
- i0.ɵɵelementStart(3, "button", 109);
373
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r16); const param_r15 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteParameter(param_r15)); });
374
- i0.ɵɵelement(4, "i", 110);
366
+ i0.ɵɵelementStart(0, "div", 105);
367
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r16); return i0.ɵɵresetView($event.stopPropagation()); });
368
+ i0.ɵɵelementStart(1, "button", 106);
369
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r16); const param_r15 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editParameter(param_r15)); });
370
+ i0.ɵɵelement(2, "i", 107);
371
+ i0.ɵɵelementEnd();
372
+ i0.ɵɵelementStart(3, "button", 108);
373
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r16); const param_r15 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteParameter(param_r15)); });
374
+ i0.ɵɵelement(4, "i", 109);
375
375
  i0.ɵɵelementEnd()();
376
376
  } }
377
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
377
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
378
378
  const _r14 = i0.ɵɵgetCurrentView();
379
- i0.ɵɵelementStart(0, "div", 94);
380
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Template_div_click_0_listener() { const param_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.editParameter(param_r15)); });
381
- i0.ɵɵelementStart(1, "div", 95)(2, "div", 96);
382
- i0.ɵɵelement(3, "i", 97);
379
+ i0.ɵɵelementStart(0, "div", 93);
380
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template_div_click_0_listener() { const param_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editParameter(param_r15)); });
381
+ i0.ɵɵelementStart(1, "div", 94)(2, "div", 95);
382
+ i0.ɵɵelement(3, "i", 96);
383
383
  i0.ɵɵtext(4);
384
384
  i0.ɵɵelementEnd();
385
- i0.ɵɵelementStart(5, "div", 98);
386
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span", 99);
385
+ i0.ɵɵelementStart(5, "div", 97);
386
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span", 98);
387
387
  i0.ɵɵelementEnd()();
388
- i0.ɵɵelementStart(7, "div", 100);
389
- i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div", 101);
390
- i0.ɵɵelementStart(9, "div", 102)(10, "span", 103)(11, "strong");
388
+ i0.ɵɵelementStart(7, "div", 99);
389
+ i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div", 100);
390
+ i0.ɵɵelementStart(9, "div", 101)(10, "span", 102)(11, "strong");
391
391
  i0.ɵɵtext(12, "Type:");
392
392
  i0.ɵɵelementEnd();
393
393
  i0.ɵɵtext(13);
394
394
  i0.ɵɵelementEnd();
395
- i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span", 103);
395
+ i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span", 102);
396
396
  i0.ɵɵelementEnd()();
397
- i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div", 104);
397
+ i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div", 103);
398
398
  i0.ɵɵelementEnd();
399
399
  } if (rf & 2) {
400
400
  const param_r15 = ctx.$implicit;
401
- const ctx_r2 = i0.ɵɵnextContext(5);
401
+ const ctx_r1 = i0.ɵɵnextContext(5);
402
402
  i0.ɵɵclassProp("required", param_r15.IsRequired);
403
403
  i0.ɵɵadvance(4);
404
404
  i0.ɵɵtextInterpolate1(" ", param_r15.Name, " ");
@@ -411,98 +411,98 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4
411
411
  i0.ɵɵadvance();
412
412
  i0.ɵɵconditional(param_r15.DefaultValue ? 14 : -1);
413
413
  i0.ɵɵadvance();
414
- i0.ɵɵconditional(ctx_r2.EditMode ? 15 : -1);
414
+ i0.ɵɵconditional(ctx_r1.EditMode ? 15 : -1);
415
415
  } }
416
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
417
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 91);
418
- i0.ɵɵelementStart(1, "div", 92);
419
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div", 93, _forTrack1);
416
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
417
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 90);
418
+ i0.ɵɵelementStart(1, "div", 91);
419
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div", 92, _forTrack1);
420
420
  i0.ɵɵelementEnd();
421
421
  } if (rf & 2) {
422
- const ctx_r2 = i0.ɵɵnextContext(4);
423
- i0.ɵɵconditional(ctx_r2.EditMode ? 0 : -1);
422
+ const ctx_r1 = i0.ɵɵnextContext(4);
423
+ i0.ɵɵconditional(ctx_r1.EditMode ? 0 : -1);
424
424
  i0.ɵɵadvance(2);
425
- i0.ɵɵrepeater(ctx_r2.queryParameters);
425
+ i0.ɵɵrepeater(ctx_r1.queryParameters);
426
426
  } }
427
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Template(rf, ctx) { if (rf & 1) {
428
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Template, 7, 1, "div", 84)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Template, 4, 1);
427
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Template(rf, ctx) { if (rf & 1) {
428
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Template, 7, 1, "div", 83)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Template, 4, 1);
429
429
  } if (rf & 2) {
430
- const ctx_r2 = i0.ɵɵnextContext(3);
431
- i0.ɵɵconditional(ctx_r2.queryParameters.length === 0 ? 0 : 1);
430
+ const ctx_r1 = i0.ɵɵnextContext(3);
431
+ i0.ɵɵconditional(ctx_r1.queryParameters.length === 0 ? 0 : 1);
432
432
  } }
433
- function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Template(rf, ctx) { if (rf & 1) {
433
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template(rf, ctx) { if (rf & 1) {
434
434
  const _r11 = i0.ɵɵgetCurrentView();
435
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
436
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.parametersPanelExpanded, $event) || (ctx_r2.parametersPanelExpanded = $event); return i0.ɵɵresetView($event); });
437
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template, 4, 1, "ng-template", 26);
438
- i0.ɵɵelementStart(2, "div", 35);
439
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_3_Template, 2, 0, "div", 80)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Template, 2, 1);
435
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
436
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.parametersPanelExpanded, $event) || (ctx_r1.parametersPanelExpanded = $event); return i0.ɵɵresetView($event); });
437
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Template, 4, 1, "ng-template", 25);
438
+ i0.ɵɵelementStart(2, "div", 34);
439
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_3_Template, 2, 0, "div", 79)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Template, 2, 1);
440
440
  i0.ɵɵelementEnd()();
441
441
  } if (rf & 2) {
442
- const ctx_r2 = i0.ɵɵnextContext(2);
443
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.parametersPanelExpanded);
442
+ const ctx_r1 = i0.ɵɵnextContext(2);
443
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.parametersPanelExpanded);
444
444
  i0.ɵɵadvance(3);
445
- i0.ɵɵconditional(ctx_r2.isLoadingParameters ? 3 : 4);
445
+ i0.ɵɵconditional(ctx_r1.isLoadingParameters ? 3 : 4);
446
446
  } }
447
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
448
- i0.ɵɵelementStart(0, "span", 82);
447
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
448
+ i0.ɵɵelementStart(0, "span", 81);
449
449
  i0.ɵɵtext(1);
450
450
  i0.ɵɵelementEnd();
451
451
  } if (rf & 2) {
452
- const ctx_r2 = i0.ɵɵnextContext(4);
452
+ const ctx_r1 = i0.ɵɵnextContext(4);
453
453
  i0.ɵɵadvance();
454
- i0.ɵɵtextInterpolate(ctx_r2.queryFields.length);
454
+ i0.ɵɵtextInterpolate(ctx_r1.queryFields.length);
455
455
  } }
456
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template(rf, ctx) { if (rf & 1) {
457
- i0.ɵɵelementStart(0, "span", 62);
458
- i0.ɵɵelement(1, "i", 111);
456
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Template(rf, ctx) { if (rf & 1) {
457
+ i0.ɵɵelementStart(0, "span", 61);
458
+ i0.ɵɵelement(1, "i", 110);
459
459
  i0.ɵɵtext(2, " Fields ");
460
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Conditional_3_Template, 2, 1, "span", 82);
460
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Conditional_3_Template, 2, 1, "span", 81);
461
461
  i0.ɵɵelementEnd();
462
462
  } if (rf & 2) {
463
- const ctx_r2 = i0.ɵɵnextContext(3);
463
+ const ctx_r1 = i0.ɵɵnextContext(3);
464
464
  i0.ɵɵadvance(3);
465
- i0.ɵɵconditional(ctx_r2.queryFields.length > 0 ? 3 : -1);
465
+ i0.ɵɵconditional(ctx_r1.queryFields.length > 0 ? 3 : -1);
466
466
  } }
467
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_3_Template(rf, ctx) { if (rf & 1) {
468
- i0.ɵɵelementStart(0, "div", 80);
469
- i0.ɵɵelement(1, "mj-loading", 112);
467
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_3_Template(rf, ctx) { if (rf & 1) {
468
+ i0.ɵɵelementStart(0, "div", 79);
469
+ i0.ɵɵelement(1, "mj-loading", 111);
470
470
  i0.ɵɵelementEnd();
471
471
  } }
472
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
472
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
473
473
  const _r18 = i0.ɵɵgetCurrentView();
474
- i0.ɵɵelementStart(0, "button", 89);
475
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addField()); });
476
- i0.ɵɵelement(1, "i", 90);
474
+ i0.ɵɵelementStart(0, "button", 88);
475
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addField()); });
476
+ i0.ɵɵelement(1, "i", 89);
477
477
  i0.ɵɵtext(2, " Add First Field ");
478
478
  i0.ɵɵelementEnd();
479
479
  } }
480
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
481
- i0.ɵɵelementStart(0, "div", 84);
482
- i0.ɵɵelement(1, "i", 113);
483
- i0.ɵɵelementStart(2, "div", 86);
480
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
481
+ i0.ɵɵelementStart(0, "div", 83);
482
+ i0.ɵɵelement(1, "i", 112);
483
+ i0.ɵɵelementStart(2, "div", 85);
484
484
  i0.ɵɵtext(3, "No Fields Defined");
485
485
  i0.ɵɵelementEnd();
486
- i0.ɵɵelementStart(4, "div", 87);
486
+ i0.ɵɵelementStart(4, "div", 86);
487
487
  i0.ɵɵtext(5, " Define output fields for your query results. ");
488
488
  i0.ɵɵelementEnd();
489
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 88);
489
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 87);
490
490
  i0.ɵɵelementEnd();
491
491
  } if (rf & 2) {
492
- const ctx_r2 = i0.ɵɵnextContext(4);
492
+ const ctx_r1 = i0.ɵɵnextContext(4);
493
493
  i0.ɵɵadvance(6);
494
- i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
494
+ i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
495
495
  } }
496
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
496
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
497
497
  const _r19 = i0.ɵɵgetCurrentView();
498
- i0.ɵɵelementStart(0, "div", 91)(1, "button", 89);
499
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addField()); });
500
- i0.ɵɵelement(2, "i", 90);
498
+ i0.ɵɵelementStart(0, "div", 90)(1, "button", 88);
499
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addField()); });
500
+ i0.ɵɵelement(2, "i", 89);
501
501
  i0.ɵɵtext(3, " Add Field ");
502
502
  i0.ɵɵelementEnd()();
503
503
  } }
504
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
505
- i0.ɵɵelementStart(0, "span", 117);
504
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
505
+ i0.ɵɵelementStart(0, "span", 116);
506
506
  i0.ɵɵtext(1);
507
507
  i0.ɵɵelementEnd();
508
508
  } if (rf & 2) {
@@ -510,8 +510,8 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4
510
510
  i0.ɵɵadvance();
511
511
  i0.ɵɵtextInterpolate1("#", field_r20.Sequence);
512
512
  } }
513
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
514
- i0.ɵɵelementStart(0, "div", 101);
513
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
514
+ i0.ɵɵelementStart(0, "div", 100);
515
515
  i0.ɵɵtext(1);
516
516
  i0.ɵɵelementEnd();
517
517
  } if (rf & 2) {
@@ -519,34 +519,34 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4
519
519
  i0.ɵɵadvance();
520
520
  i0.ɵɵtextInterpolate(field_r20.Description);
521
521
  } }
522
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
522
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
523
523
  const _r21 = i0.ɵɵgetCurrentView();
524
- i0.ɵɵelementStart(0, "div", 119)(1, "button", 120);
525
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r21); const field_r20 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteField(field_r20)); });
526
- i0.ɵɵelement(2, "i", 110);
524
+ i0.ɵɵelementStart(0, "div", 118)(1, "button", 119);
525
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r21); const field_r20 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteField(field_r20)); });
526
+ i0.ɵɵelement(2, "i", 109);
527
527
  i0.ɵɵelementEnd()();
528
528
  } }
529
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
530
- i0.ɵɵelementStart(0, "div", 114)(1, "div", 95)(2, "div", 96);
531
- i0.ɵɵelement(3, "i", 115);
529
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
530
+ i0.ɵɵelementStart(0, "div", 113)(1, "div", 94)(2, "div", 95);
531
+ i0.ɵɵelement(3, "i", 114);
532
532
  i0.ɵɵtext(4);
533
533
  i0.ɵɵelementEnd();
534
- i0.ɵɵelementStart(5, "div", 98)(6, "span", 116);
534
+ i0.ɵɵelementStart(5, "div", 97)(6, "span", 115);
535
535
  i0.ɵɵtext(7);
536
536
  i0.ɵɵelementEnd();
537
- i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span", 117);
537
+ i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span", 116);
538
538
  i0.ɵɵelementEnd()();
539
- i0.ɵɵelementStart(9, "div", 100);
540
- i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div", 101);
541
- i0.ɵɵelementStart(11, "div", 102)(12, "span", 103);
542
- i0.ɵɵelement(13, "i", 118);
539
+ i0.ɵɵelementStart(9, "div", 99);
540
+ i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div", 100);
541
+ i0.ɵɵelementStart(11, "div", 101)(12, "span", 102);
542
+ i0.ɵɵelement(13, "i", 117);
543
543
  i0.ɵɵtext(14);
544
544
  i0.ɵɵelementEnd()()();
545
- i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div", 119);
545
+ i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div", 118);
546
546
  i0.ɵɵelementEnd();
547
547
  } if (rf & 2) {
548
548
  const field_r20 = ctx.$implicit;
549
- const ctx_r2 = i0.ɵɵnextContext(5);
549
+ const ctx_r1 = i0.ɵɵnextContext(5);
550
550
  i0.ɵɵadvance(4);
551
551
  i0.ɵɵtextInterpolate1(" ", field_r20.Name, " ");
552
552
  i0.ɵɵadvance(3);
@@ -558,54 +558,54 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4
558
558
  i0.ɵɵadvance(4);
559
559
  i0.ɵɵtextInterpolate1(" ", field_r20.SQLFullType || field_r20.SQLBaseType, " ");
560
560
  i0.ɵɵadvance();
561
- i0.ɵɵconditional(ctx_r2.EditMode ? 15 : -1);
561
+ i0.ɵɵconditional(ctx_r1.EditMode ? 15 : -1);
562
562
  } }
563
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
564
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 91);
565
- i0.ɵɵelementStart(1, "div", 92);
566
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div", 114, _forTrack2);
563
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
564
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 90);
565
+ i0.ɵɵelementStart(1, "div", 91);
566
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div", 113, _forTrack2);
567
567
  i0.ɵɵelementEnd();
568
568
  } if (rf & 2) {
569
- const ctx_r2 = i0.ɵɵnextContext(4);
570
- i0.ɵɵconditional(ctx_r2.EditMode ? 0 : -1);
569
+ const ctx_r1 = i0.ɵɵnextContext(4);
570
+ i0.ɵɵconditional(ctx_r1.EditMode ? 0 : -1);
571
571
  i0.ɵɵadvance(2);
572
- i0.ɵɵrepeater(ctx_r2.queryFields);
572
+ i0.ɵɵrepeater(ctx_r1.queryFields);
573
573
  } }
574
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Template(rf, ctx) { if (rf & 1) {
575
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_0_Template, 7, 1, "div", 84)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Conditional_1_Template, 4, 1);
574
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Template(rf, ctx) { if (rf & 1) {
575
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Template, 7, 1, "div", 83)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Template, 4, 1);
576
576
  } if (rf & 2) {
577
- const ctx_r2 = i0.ɵɵnextContext(3);
578
- i0.ɵɵconditional(ctx_r2.queryFields.length === 0 ? 0 : 1);
577
+ const ctx_r1 = i0.ɵɵnextContext(3);
578
+ i0.ɵɵconditional(ctx_r1.queryFields.length === 0 ? 0 : 1);
579
579
  } }
580
- function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Template(rf, ctx) { if (rf & 1) {
580
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template(rf, ctx) { if (rf & 1) {
581
581
  const _r17 = i0.ɵɵgetCurrentView();
582
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
583
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.fieldsPanelExpanded, $event) || (ctx_r2.fieldsPanelExpanded = $event); return i0.ɵɵresetView($event); });
584
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template, 4, 1, "ng-template", 26);
585
- i0.ɵɵelementStart(2, "div", 35);
586
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_3_Template, 2, 0, "div", 80)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Conditional_4_Template, 2, 1);
582
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
583
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.fieldsPanelExpanded, $event) || (ctx_r1.fieldsPanelExpanded = $event); return i0.ɵɵresetView($event); });
584
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Template, 4, 1, "ng-template", 25);
585
+ i0.ɵɵelementStart(2, "div", 34);
586
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_3_Template, 2, 0, "div", 79)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Template, 2, 1);
587
587
  i0.ɵɵelementEnd()();
588
588
  } if (rf & 2) {
589
- const ctx_r2 = i0.ɵɵnextContext(2);
590
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.fieldsPanelExpanded);
589
+ const ctx_r1 = i0.ɵɵnextContext(2);
590
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.fieldsPanelExpanded);
591
591
  i0.ɵɵadvance(3);
592
- i0.ɵɵconditional(ctx_r2.isLoadingFields ? 3 : 4);
592
+ i0.ɵɵconditional(ctx_r1.isLoadingFields ? 3 : 4);
593
593
  } }
594
- function MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Template(rf, ctx) { if (rf & 1) {
595
- i0.ɵɵelementStart(0, "span", 62);
596
- i0.ɵɵelement(1, "i", 123);
594
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_ng_template_1_Template(rf, ctx) { if (rf & 1) {
595
+ i0.ɵɵelementStart(0, "span", 61);
596
+ i0.ɵɵelement(1, "i", 122);
597
597
  i0.ɵɵtext(2, " Dependent Queries ");
598
- i0.ɵɵelementStart(3, "span", 82);
598
+ i0.ɵɵelementStart(3, "span", 81);
599
599
  i0.ɵɵtext(4);
600
600
  i0.ɵɵelementEnd()();
601
601
  } if (rf & 2) {
602
- const ctx_r2 = i0.ɵɵnextContext(3);
602
+ const ctx_r1 = i0.ɵɵnextContext(3);
603
603
  i0.ɵɵadvance(4);
604
- i0.ɵɵtextInterpolate(ctx_r2.DependentQueries.length);
604
+ i0.ɵɵtextInterpolate(ctx_r1.DependentQueries.length);
605
605
  } }
606
- function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
607
- i0.ɵɵelementStart(0, "div", 102)(1, "span", 103);
608
- i0.ɵɵelement(2, "i", 129);
606
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
607
+ i0.ɵɵelementStart(0, "div", 101)(1, "span", 102);
608
+ i0.ɵɵelement(2, "i", 128);
609
609
  i0.ɵɵtext(3);
610
610
  i0.ɵɵelementEnd()();
611
611
  } if (rf & 2) {
@@ -613,11 +613,11 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Condit
613
613
  i0.ɵɵadvance(3);
614
614
  i0.ɵɵtextInterpolate1(" ", dep_r24.ReferencePath, " ");
615
615
  } }
616
- function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Conditional_7_Template(rf, ctx) { if (rf & 1) {
617
- i0.ɵɵelementStart(0, "div", 102)(1, "span", 103)(2, "strong");
616
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_7_Template(rf, ctx) { if (rf & 1) {
617
+ i0.ɵɵelementStart(0, "div", 101)(1, "span", 102)(2, "strong");
618
618
  i0.ɵɵtext(3, "Alias:");
619
619
  i0.ɵɵelementEnd();
620
- i0.ɵɵelementStart(4, "code", 105);
620
+ i0.ɵɵelementStart(4, "code", 104);
621
621
  i0.ɵɵtext(5);
622
622
  i0.ɵɵelementEnd()()();
623
623
  } if (rf & 2) {
@@ -625,20 +625,20 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Condit
625
625
  i0.ɵɵadvance(5);
626
626
  i0.ɵɵtextInterpolate(dep_r24.Alias);
627
627
  } }
628
- function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Template(rf, ctx) { if (rf & 1) {
628
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template(rf, ctx) { if (rf & 1) {
629
629
  const _r23 = i0.ɵɵgetCurrentView();
630
- i0.ɵɵelementStart(0, "div", 124);
631
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Template_div_click_0_listener() { const dep_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onDependentQueryClick(dep_r24)); });
632
- i0.ɵɵelementStart(1, "div", 95)(2, "div", 96);
633
- i0.ɵɵelement(3, "i", 125);
630
+ i0.ɵɵelementStart(0, "div", 123);
631
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template_div_click_0_listener() { const dep_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onDependentQueryClick(dep_r24)); });
632
+ i0.ɵɵelementStart(1, "div", 94)(2, "div", 95);
633
+ i0.ɵɵelement(3, "i", 124);
634
634
  i0.ɵɵtext(4);
635
635
  i0.ɵɵelementEnd()();
636
- i0.ɵɵelementStart(5, "div", 100);
637
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Conditional_6_Template, 4, 1, "div", 102);
638
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Conditional_7_Template, 6, 1, "div", 102);
636
+ i0.ɵɵelementStart(5, "div", 99);
637
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_6_Template, 4, 1, "div", 101);
638
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_7_Template, 6, 1, "div", 101);
639
639
  i0.ɵɵelementEnd();
640
- i0.ɵɵelementStart(8, "div", 126)(9, "span", 127);
641
- i0.ɵɵelement(10, "i", 128);
640
+ i0.ɵɵelementStart(8, "div", 125)(9, "span", 126);
641
+ i0.ɵɵelement(10, "i", 127);
642
642
  i0.ɵɵtext(11, " Open ");
643
643
  i0.ɵɵelementEnd()()();
644
644
  } if (rf & 2) {
@@ -650,383 +650,383 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Templa
650
650
  i0.ɵɵadvance();
651
651
  i0.ɵɵconditional(dep_r24.Alias ? 7 : -1);
652
652
  } }
653
- function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Template(rf, ctx) { if (rf & 1) {
653
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template(rf, ctx) { if (rf & 1) {
654
654
  const _r22 = i0.ɵɵgetCurrentView();
655
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
656
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.dependentsPanelExpanded, $event) || (ctx_r2.dependentsPanelExpanded = $event); return i0.ɵɵresetView($event); });
657
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Template, 5, 1, "ng-template", 26);
658
- i0.ɵɵelementStart(2, "div", 35)(3, "div", 121);
655
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
656
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.dependentsPanelExpanded, $event) || (ctx_r1.dependentsPanelExpanded = $event); return i0.ɵɵresetView($event); });
657
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_42_ng_template_1_Template, 5, 1, "ng-template", 25);
658
+ i0.ɵɵelementStart(2, "div", 34)(3, "div", 120);
659
659
  i0.ɵɵtext(4, " These queries reference this query via ");
660
660
  i0.ɵɵelementStart(5, "code");
661
661
  i0.ɵɵtext(6);
662
662
  i0.ɵɵelementEnd();
663
663
  i0.ɵɵtext(7, " composition syntax. ");
664
664
  i0.ɵɵelementEnd();
665
- i0.ɵɵelementStart(8, "div", 92);
666
- i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_1_Conditional_42_For_10_Template, 12, 3, "div", 122, _forTrack2);
665
+ i0.ɵɵelementStart(8, "div", 91);
666
+ i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template, 12, 3, "div", 121, _forTrack2);
667
667
  i0.ɵɵelementEnd()()();
668
668
  } if (rf & 2) {
669
- const ctx_r2 = i0.ɵɵnextContext(2);
670
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.dependentsPanelExpanded);
669
+ const ctx_r1 = i0.ɵɵnextContext(2);
670
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.dependentsPanelExpanded);
671
671
  i0.ɵɵadvance(6);
672
672
  i0.ɵɵtextInterpolate1("", "{{query:\"...\"}}", " ");
673
673
  i0.ɵɵadvance(3);
674
- i0.ɵɵrepeater(ctx_r2.DependentQueries);
674
+ i0.ɵɵrepeater(ctx_r1.DependentQueries);
675
675
  } }
676
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
677
- i0.ɵɵelementStart(0, "span", 82);
676
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
677
+ i0.ɵɵelementStart(0, "span", 81);
678
678
  i0.ɵɵtext(1);
679
679
  i0.ɵɵelementEnd();
680
680
  } if (rf & 2) {
681
- const ctx_r2 = i0.ɵɵnextContext(4);
681
+ const ctx_r1 = i0.ɵɵnextContext(4);
682
682
  i0.ɵɵadvance();
683
- i0.ɵɵtextInterpolate(ctx_r2.queryEntities.length);
683
+ i0.ɵɵtextInterpolate(ctx_r1.queryEntities.length);
684
684
  } }
685
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Template(rf, ctx) { if (rf & 1) {
686
- i0.ɵɵelementStart(0, "span", 62);
687
- i0.ɵɵelement(1, "i", 130);
685
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Template(rf, ctx) { if (rf & 1) {
686
+ i0.ɵɵelementStart(0, "span", 61);
687
+ i0.ɵɵelement(1, "i", 129);
688
688
  i0.ɵɵtext(2, " Entities ");
689
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_3_Template, 2, 1, "span", 82);
689
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Conditional_3_Template, 2, 1, "span", 81);
690
690
  i0.ɵɵelementEnd();
691
691
  } if (rf & 2) {
692
- const ctx_r2 = i0.ɵɵnextContext(3);
692
+ const ctx_r1 = i0.ɵɵnextContext(3);
693
693
  i0.ɵɵadvance(3);
694
- i0.ɵɵconditional(ctx_r2.queryEntities.length > 0 ? 3 : -1);
694
+ i0.ɵɵconditional(ctx_r1.queryEntities.length > 0 ? 3 : -1);
695
695
  } }
696
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_3_Template(rf, ctx) { if (rf & 1) {
697
- i0.ɵɵelementStart(0, "div", 80);
698
- i0.ɵɵelement(1, "mj-loading", 131);
696
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_3_Template(rf, ctx) { if (rf & 1) {
697
+ i0.ɵɵelementStart(0, "div", 79);
698
+ i0.ɵɵelement(1, "mj-loading", 130);
699
699
  i0.ɵɵelementEnd();
700
700
  } }
701
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
701
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
702
702
  const _r26 = i0.ɵɵgetCurrentView();
703
- i0.ɵɵelementStart(0, "button", 89);
704
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addEntity()); });
705
- i0.ɵɵelement(1, "i", 90);
703
+ i0.ɵɵelementStart(0, "button", 88);
704
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addEntity()); });
705
+ i0.ɵɵelement(1, "i", 89);
706
706
  i0.ɵɵtext(2, " Add First Entity ");
707
707
  i0.ɵɵelementEnd();
708
708
  } }
709
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
710
- i0.ɵɵelementStart(0, "div", 84);
711
- i0.ɵɵelement(1, "i", 132);
712
- i0.ɵɵelementStart(2, "div", 86);
709
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
710
+ i0.ɵɵelementStart(0, "div", 83);
711
+ i0.ɵɵelement(1, "i", 131);
712
+ i0.ɵɵelementStart(2, "div", 85);
713
713
  i0.ɵɵtext(3, "No Entities Tracked");
714
714
  i0.ɵɵelementEnd();
715
- i0.ɵɵelementStart(4, "div", 87);
715
+ i0.ɵɵelementStart(4, "div", 86);
716
716
  i0.ɵɵtext(5, " Track which entities this query uses for documentation. ");
717
717
  i0.ɵɵelementEnd();
718
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 88);
718
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 87);
719
719
  i0.ɵɵelementEnd();
720
720
  } if (rf & 2) {
721
- const ctx_r2 = i0.ɵɵnextContext(4);
721
+ const ctx_r1 = i0.ɵɵnextContext(4);
722
722
  i0.ɵɵadvance(6);
723
- i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
723
+ i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
724
724
  } }
725
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
725
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
726
726
  const _r27 = i0.ɵɵgetCurrentView();
727
- i0.ɵɵelementStart(0, "div", 91)(1, "button", 89);
728
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addEntity()); });
729
- i0.ɵɵelement(2, "i", 90);
727
+ i0.ɵɵelementStart(0, "div", 90)(1, "button", 88);
728
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addEntity()); });
729
+ i0.ɵɵelement(2, "i", 89);
730
730
  i0.ɵɵtext(3, " Add Entity ");
731
731
  i0.ɵɵelementEnd()();
732
732
  } }
733
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
733
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
734
734
  const _r28 = i0.ɵɵgetCurrentView();
735
- i0.ɵɵelementStart(0, "div", 134)(1, "mj-dropdown", 135);
736
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template_mj_dropdown_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r28); const entity_r29 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(entity_r29.EntityID, $event) || (entity_r29.EntityID = $event); return i0.ɵɵresetView($event); });
735
+ i0.ɵɵelementStart(0, "div", 133)(1, "mj-dropdown", 134);
736
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template_mj_dropdown_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r28); const entity_r29 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(entity_r29.EntityID, $event) || (entity_r29.EntityID = $event); return i0.ɵɵresetView($event); });
737
737
  i0.ɵɵelementEnd()();
738
738
  } if (rf & 2) {
739
739
  const entity_r29 = i0.ɵɵnextContext().$implicit;
740
- const ctx_r2 = i0.ɵɵnextContext(5);
740
+ const ctx_r1 = i0.ɵɵnextContext(5);
741
741
  i0.ɵɵadvance();
742
742
  i0.ɵɵtwoWayProperty("ngModel", entity_r29.EntityID);
743
- i0.ɵɵproperty("name", "entity_" + entity_r29.ID)("Data", ctx_r2.getEntityOptions())("ValuePrimitive", true);
743
+ i0.ɵɵproperty("name", "entity_" + entity_r29.ID)("Data", ctx_r1.getEntityOptions())("ValuePrimitive", true);
744
744
  } }
745
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
746
- i0.ɵɵelementStart(0, "div", 100)(1, "div", 102)(2, "span", 103);
747
- i0.ɵɵelement(3, "i", 136);
745
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
746
+ i0.ɵɵelementStart(0, "div", 99)(1, "div", 101)(2, "span", 102);
747
+ i0.ɵɵelement(3, "i", 135);
748
748
  i0.ɵɵtext(4, " Data Source ");
749
749
  i0.ɵɵelementEnd()()();
750
750
  } }
751
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
751
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
752
752
  const _r30 = i0.ɵɵgetCurrentView();
753
- i0.ɵɵelementStart(0, "div", 119)(1, "button", 137);
754
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r30); const entity_r29 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteEntity(entity_r29)); });
755
- i0.ɵɵelement(2, "i", 110);
753
+ i0.ɵɵelementStart(0, "div", 118)(1, "button", 136);
754
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r30); const entity_r29 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteEntity(entity_r29)); });
755
+ i0.ɵɵelement(2, "i", 109);
756
756
  i0.ɵɵelementEnd()();
757
757
  } }
758
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
759
- i0.ɵɵelementStart(0, "div", 114)(1, "div", 95)(2, "div", 96);
760
- i0.ɵɵelement(3, "i", 133);
758
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
759
+ i0.ɵɵelementStart(0, "div", 113)(1, "div", 94)(2, "div", 95);
760
+ i0.ɵɵelement(3, "i", 132);
761
761
  i0.ɵɵtext(4);
762
762
  i0.ɵɵelementEnd();
763
- i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div", 134);
763
+ i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div", 133);
764
764
  i0.ɵɵelementEnd();
765
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div", 100);
766
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div", 119);
765
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div", 99);
766
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div", 118);
767
767
  i0.ɵɵelementEnd();
768
768
  } if (rf & 2) {
769
769
  const entity_r29 = ctx.$implicit;
770
- const ctx_r2 = i0.ɵɵnextContext(5);
770
+ const ctx_r1 = i0.ɵɵnextContext(5);
771
771
  i0.ɵɵadvance(4);
772
772
  i0.ɵɵtextInterpolate1(" ", entity_r29.Entity || "Select Entity...", " ");
773
773
  i0.ɵɵadvance();
774
- i0.ɵɵconditional(ctx_r2.EditMode ? 5 : -1);
774
+ i0.ɵɵconditional(ctx_r1.EditMode ? 5 : -1);
775
775
  i0.ɵɵadvance();
776
- i0.ɵɵconditional(!ctx_r2.EditMode && entity_r29.Entity ? 6 : -1);
776
+ i0.ɵɵconditional(!ctx_r1.EditMode && entity_r29.Entity ? 6 : -1);
777
777
  i0.ɵɵadvance();
778
- i0.ɵɵconditional(ctx_r2.EditMode ? 7 : -1);
778
+ i0.ɵɵconditional(ctx_r1.EditMode ? 7 : -1);
779
779
  } }
780
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
781
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 91);
782
- i0.ɵɵelementStart(1, "div", 92);
783
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div", 114, _forTrack2);
780
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
781
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 90);
782
+ i0.ɵɵelementStart(1, "div", 91);
783
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div", 113, _forTrack2);
784
784
  i0.ɵɵelementEnd();
785
785
  } if (rf & 2) {
786
- const ctx_r2 = i0.ɵɵnextContext(4);
787
- i0.ɵɵconditional(ctx_r2.EditMode ? 0 : -1);
786
+ const ctx_r1 = i0.ɵɵnextContext(4);
787
+ i0.ɵɵconditional(ctx_r1.EditMode ? 0 : -1);
788
788
  i0.ɵɵadvance(2);
789
- i0.ɵɵrepeater(ctx_r2.queryEntities);
789
+ i0.ɵɵrepeater(ctx_r1.queryEntities);
790
790
  } }
791
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Template(rf, ctx) { if (rf & 1) {
792
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_0_Template, 7, 1, "div", 84)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Conditional_1_Template, 4, 1);
791
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Template(rf, ctx) { if (rf & 1) {
792
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Template, 7, 1, "div", 83)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Template, 4, 1);
793
793
  } if (rf & 2) {
794
- const ctx_r2 = i0.ɵɵnextContext(3);
795
- i0.ɵɵconditional(ctx_r2.queryEntities.length === 0 ? 0 : 1);
794
+ const ctx_r1 = i0.ɵɵnextContext(3);
795
+ i0.ɵɵconditional(ctx_r1.queryEntities.length === 0 ? 0 : 1);
796
796
  } }
797
- function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Template(rf, ctx) { if (rf & 1) {
797
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template(rf, ctx) { if (rf & 1) {
798
798
  const _r25 = i0.ɵɵgetCurrentView();
799
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
800
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_43_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.entitiesPanelExpanded, $event) || (ctx_r2.entitiesPanelExpanded = $event); return i0.ɵɵresetView($event); });
801
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Template, 4, 1, "ng-template", 26);
802
- i0.ɵɵelementStart(2, "div", 35);
803
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_3_Template, 2, 0, "div", 80)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Conditional_4_Template, 2, 1);
799
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
800
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.entitiesPanelExpanded, $event) || (ctx_r1.entitiesPanelExpanded = $event); return i0.ɵɵresetView($event); });
801
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Template, 4, 1, "ng-template", 25);
802
+ i0.ɵɵelementStart(2, "div", 34);
803
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_3_Template, 2, 0, "div", 79)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Template, 2, 1);
804
804
  i0.ɵɵelementEnd()();
805
805
  } if (rf & 2) {
806
- const ctx_r2 = i0.ɵɵnextContext(2);
807
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.entitiesPanelExpanded);
806
+ const ctx_r1 = i0.ɵɵnextContext(2);
807
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.entitiesPanelExpanded);
808
808
  i0.ɵɵadvance(3);
809
- i0.ɵɵconditional(ctx_r2.isLoadingEntities ? 3 : 4);
809
+ i0.ɵɵconditional(ctx_r1.isLoadingEntities ? 3 : 4);
810
810
  } }
811
- function MJQueryFormComponentExtended_Conditional_1_ng_template_45_Template(rf, ctx) { if (rf & 1) {
812
- i0.ɵɵelementStart(0, "span", 62);
813
- i0.ɵɵelement(1, "i", 138);
811
+ function MJQueryFormComponentExtended_Conditional_0_ng_template_45_Template(rf, ctx) { if (rf & 1) {
812
+ i0.ɵɵelementStart(0, "span", 61);
813
+ i0.ɵɵelement(1, "i", 137);
814
814
  i0.ɵɵtext(2, " Details ");
815
815
  i0.ɵɵelementEnd();
816
816
  } }
817
- function MJQueryFormComponentExtended_Conditional_1_Conditional_52_Template(rf, ctx) { if (rf & 1) {
817
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template(rf, ctx) { if (rf & 1) {
818
818
  const _r31 = i0.ɵɵgetCurrentView();
819
- i0.ɵɵelementStart(0, "mj-switch", 139);
820
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_52_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Reusable, $event) || (ctx_r2.record.Reusable = $event); return i0.ɵɵresetView($event); });
819
+ i0.ɵɵelementStart(0, "mj-switch", 138);
820
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Reusable, $event) || (ctx_r1.record.Reusable = $event); return i0.ɵɵresetView($event); });
821
821
  i0.ɵɵelementEnd();
822
- i0.ɵɵelementStart(1, "div", 140);
822
+ i0.ɵɵelementStart(1, "div", 139);
823
823
  i0.ɵɵtext(2, "Allow other queries to reference this query using composition syntax");
824
824
  i0.ɵɵelementEnd();
825
825
  } if (rf & 2) {
826
- const ctx_r2 = i0.ɵɵnextContext(2);
827
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Reusable);
826
+ const ctx_r1 = i0.ɵɵnextContext(2);
827
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Reusable);
828
828
  } }
829
- function MJQueryFormComponentExtended_Conditional_1_Conditional_53_Conditional_1_Template(rf, ctx) { if (rf & 1) {
830
- i0.ɵɵelementStart(0, "span", 141);
831
- i0.ɵɵelement(1, "i", 143);
829
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_1_Template(rf, ctx) { if (rf & 1) {
830
+ i0.ɵɵelementStart(0, "span", 140);
831
+ i0.ɵɵelement(1, "i", 142);
832
832
  i0.ɵɵtext(2, " Reusable");
833
833
  i0.ɵɵelementEnd();
834
834
  } }
835
- function MJQueryFormComponentExtended_Conditional_1_Conditional_53_Conditional_2_Template(rf, ctx) { if (rf & 1) {
836
- i0.ɵɵelementStart(0, "span", 142);
837
- i0.ɵɵelement(1, "i", 144);
835
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_2_Template(rf, ctx) { if (rf & 1) {
836
+ i0.ɵɵelementStart(0, "span", 141);
837
+ i0.ɵɵelement(1, "i", 143);
838
838
  i0.ɵɵtext(2, " Not Reusable");
839
839
  i0.ɵɵelementEnd();
840
840
  } }
841
- function MJQueryFormComponentExtended_Conditional_1_Conditional_53_Template(rf, ctx) { if (rf & 1) {
842
- i0.ɵɵelementStart(0, "div", 40);
843
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_53_Conditional_1_Template, 3, 0, "span", 141)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_53_Conditional_2_Template, 3, 0, "span", 142);
841
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Template(rf, ctx) { if (rf & 1) {
842
+ i0.ɵɵelementStart(0, "div", 39);
843
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_1_Template, 3, 0, "span", 140)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_2_Template, 3, 0, "span", 141);
844
844
  i0.ɵɵelementEnd();
845
845
  } if (rf & 2) {
846
- const ctx_r2 = i0.ɵɵnextContext(2);
846
+ const ctx_r1 = i0.ɵɵnextContext(2);
847
847
  i0.ɵɵadvance();
848
- i0.ɵɵconditional(ctx_r2.record.Reusable ? 1 : 2);
848
+ i0.ɵɵconditional(ctx_r1.record.Reusable ? 1 : 2);
849
849
  } }
850
- function MJQueryFormComponentExtended_Conditional_1_Conditional_58_Template(rf, ctx) { if (rf & 1) {
850
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template(rf, ctx) { if (rf & 1) {
851
851
  const _r32 = i0.ɵɵgetCurrentView();
852
- i0.ɵɵelementStart(0, "mj-switch", 145);
853
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_58_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.CacheEnabled, $event) || (ctx_r2.record.CacheEnabled = $event); return i0.ɵɵresetView($event); });
852
+ i0.ɵɵelementStart(0, "mj-switch", 144);
853
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.CacheEnabled, $event) || (ctx_r1.record.CacheEnabled = $event); return i0.ɵɵresetView($event); });
854
854
  i0.ɵɵelementEnd();
855
- i0.ɵɵelementStart(1, "div", 140);
855
+ i0.ɵɵelementStart(1, "div", 139);
856
856
  i0.ɵɵtext(2, "Cache query results in memory to reduce database load on repeated runs");
857
857
  i0.ɵɵelementEnd();
858
858
  } if (rf & 2) {
859
- const ctx_r2 = i0.ɵɵnextContext(2);
860
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.CacheEnabled);
859
+ const ctx_r1 = i0.ɵɵnextContext(2);
860
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.CacheEnabled);
861
861
  } }
862
- function MJQueryFormComponentExtended_Conditional_1_Conditional_59_Conditional_1_Template(rf, ctx) { if (rf & 1) {
863
- i0.ɵɵelementStart(0, "span", 141);
864
- i0.ɵɵelement(1, "i", 143);
862
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_1_Template(rf, ctx) { if (rf & 1) {
863
+ i0.ɵɵelementStart(0, "span", 140);
864
+ i0.ɵɵelement(1, "i", 142);
865
865
  i0.ɵɵtext(2, " Caching On");
866
866
  i0.ɵɵelementEnd();
867
867
  } }
868
- function MJQueryFormComponentExtended_Conditional_1_Conditional_59_Conditional_2_Template(rf, ctx) { if (rf & 1) {
869
- i0.ɵɵelementStart(0, "span", 142);
870
- i0.ɵɵelement(1, "i", 144);
868
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_2_Template(rf, ctx) { if (rf & 1) {
869
+ i0.ɵɵelementStart(0, "span", 141);
870
+ i0.ɵɵelement(1, "i", 143);
871
871
  i0.ɵɵtext(2, " Caching Off");
872
872
  i0.ɵɵelementEnd();
873
873
  } }
874
- function MJQueryFormComponentExtended_Conditional_1_Conditional_59_Template(rf, ctx) { if (rf & 1) {
875
- i0.ɵɵelementStart(0, "div", 40);
876
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_59_Conditional_1_Template, 3, 0, "span", 141)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_59_Conditional_2_Template, 3, 0, "span", 142);
874
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Template(rf, ctx) { if (rf & 1) {
875
+ i0.ɵɵelementStart(0, "div", 39);
876
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_1_Template, 3, 0, "span", 140)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_2_Template, 3, 0, "span", 141);
877
877
  i0.ɵɵelementEnd();
878
878
  } if (rf & 2) {
879
- const ctx_r2 = i0.ɵɵnextContext(2);
879
+ const ctx_r1 = i0.ɵɵnextContext(2);
880
880
  i0.ɵɵadvance();
881
- i0.ɵɵconditional(ctx_r2.record.CacheEnabled ? 1 : 2);
881
+ i0.ɵɵconditional(ctx_r1.record.CacheEnabled ? 1 : 2);
882
882
  } }
883
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Template(rf, ctx) { if (rf & 1) {
883
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template(rf, ctx) { if (rf & 1) {
884
884
  const _r33 = i0.ɵɵgetCurrentView();
885
- i0.ɵɵelementStart(0, "input", 147);
886
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.CacheTTLMinutes, $event) || (ctx_r2.record.CacheTTLMinutes = $event); return i0.ɵɵresetView($event); });
885
+ i0.ɵɵelementStart(0, "input", 146);
886
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.CacheTTLMinutes, $event) || (ctx_r1.record.CacheTTLMinutes = $event); return i0.ɵɵresetView($event); });
887
887
  i0.ɵɵelementEnd();
888
- i0.ɵɵelementStart(1, "div", 140);
888
+ i0.ɵɵelementStart(1, "div", 139);
889
889
  i0.ɵɵtext(2, "How long cached results remain valid. Leave blank for default TTL.");
890
890
  i0.ɵɵelementEnd();
891
891
  } if (rf & 2) {
892
- const ctx_r2 = i0.ɵɵnextContext(3);
893
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.CacheTTLMinutes);
892
+ const ctx_r1 = i0.ɵɵnextContext(3);
893
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.CacheTTLMinutes);
894
894
  } }
895
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_5_Template(rf, ctx) { if (rf & 1) {
896
- i0.ɵɵelementStart(0, "div", 40);
895
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_5_Template(rf, ctx) { if (rf & 1) {
896
+ i0.ɵɵelementStart(0, "div", 39);
897
897
  i0.ɵɵtext(1);
898
898
  i0.ɵɵelementEnd();
899
899
  } if (rf & 2) {
900
- const ctx_r2 = i0.ɵɵnextContext(3);
900
+ const ctx_r1 = i0.ɵɵnextContext(3);
901
901
  i0.ɵɵadvance();
902
- i0.ɵɵtextInterpolate(ctx_r2.record.CacheTTLMinutes != null ? ctx_r2.record.CacheTTLMinutes + " min" : "Default");
902
+ i0.ɵɵtextInterpolate(ctx_r1.record.CacheTTLMinutes != null ? ctx_r1.record.CacheTTLMinutes + " min" : "Default");
903
903
  } }
904
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Template(rf, ctx) { if (rf & 1) {
905
- i0.ɵɵelementStart(0, "div", 37)(1, "label", 38);
906
- i0.ɵɵelement(2, "i", 146);
904
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Template(rf, ctx) { if (rf & 1) {
905
+ i0.ɵɵelementStart(0, "div", 36)(1, "label", 37);
906
+ i0.ɵɵelement(2, "i", 145);
907
907
  i0.ɵɵtext(3, " Cache TTL (Minutes) ");
908
908
  i0.ɵɵelementEnd();
909
- i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Template, 3, 1)(5, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_5_Template, 2, 1, "div", 40);
909
+ i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template, 3, 1)(5, MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_5_Template, 2, 1, "div", 39);
910
910
  i0.ɵɵelementEnd();
911
911
  } if (rf & 2) {
912
- const ctx_r2 = i0.ɵɵnextContext(2);
912
+ const ctx_r1 = i0.ɵɵnextContext(2);
913
913
  i0.ɵɵadvance(4);
914
- i0.ɵɵconditional(ctx_r2.EditMode ? 4 : 5);
914
+ i0.ɵɵconditional(ctx_r1.EditMode ? 4 : 5);
915
915
  } }
916
- function MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template(rf, ctx) { if (rf & 1) {
916
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template(rf, ctx) { if (rf & 1) {
917
917
  const _r34 = i0.ɵɵgetCurrentView();
918
- i0.ɵɵelementStart(0, "mj-switch", 148);
919
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.AuditQueryRuns, $event) || (ctx_r2.record.AuditQueryRuns = $event); return i0.ɵɵresetView($event); });
918
+ i0.ɵɵelementStart(0, "mj-switch", 147);
919
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.AuditQueryRuns, $event) || (ctx_r1.record.AuditQueryRuns = $event); return i0.ɵɵresetView($event); });
920
920
  i0.ɵɵelementEnd();
921
- i0.ɵɵelementStart(1, "div", 140);
921
+ i0.ɵɵelementStart(1, "div", 139);
922
922
  i0.ɵɵtext(2, "Log all executions of this query to the Audit Log for tracking and compliance");
923
923
  i0.ɵɵelementEnd();
924
924
  } if (rf & 2) {
925
- const ctx_r2 = i0.ɵɵnextContext(2);
926
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.AuditQueryRuns);
925
+ const ctx_r1 = i0.ɵɵnextContext(2);
926
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.AuditQueryRuns);
927
927
  } }
928
- function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_1_Template(rf, ctx) { if (rf & 1) {
929
- i0.ɵɵelementStart(0, "span", 141);
930
- i0.ɵɵelement(1, "i", 143);
928
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_1_Template(rf, ctx) { if (rf & 1) {
929
+ i0.ɵɵelementStart(0, "span", 140);
930
+ i0.ɵɵelement(1, "i", 142);
931
931
  i0.ɵɵtext(2, " Auditing On");
932
932
  i0.ɵɵelementEnd();
933
933
  } }
934
- function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_2_Template(rf, ctx) { if (rf & 1) {
935
- i0.ɵɵelementStart(0, "span", 142);
936
- i0.ɵɵelement(1, "i", 144);
934
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_2_Template(rf, ctx) { if (rf & 1) {
935
+ i0.ɵɵelementStart(0, "span", 141);
936
+ i0.ɵɵelement(1, "i", 143);
937
937
  i0.ɵɵtext(2, " Auditing Off");
938
938
  i0.ɵɵelementEnd();
939
939
  } }
940
- function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template(rf, ctx) { if (rf & 1) {
941
- i0.ɵɵelementStart(0, "div", 40);
942
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_1_Template, 3, 0, "span", 141)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_2_Template, 3, 0, "span", 142);
940
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Template(rf, ctx) { if (rf & 1) {
941
+ i0.ɵɵelementStart(0, "div", 39);
942
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_1_Template, 3, 0, "span", 140)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_2_Template, 3, 0, "span", 141);
943
943
  i0.ɵɵelementEnd();
944
944
  } if (rf & 2) {
945
- const ctx_r2 = i0.ɵɵnextContext(2);
945
+ const ctx_r1 = i0.ɵɵnextContext(2);
946
946
  i0.ɵɵadvance();
947
- i0.ɵɵconditional(ctx_r2.record.AuditQueryRuns ? 1 : 2);
947
+ i0.ɵɵconditional(ctx_r1.record.AuditQueryRuns ? 1 : 2);
948
948
  } }
949
- function MJQueryFormComponentExtended_Conditional_1_Conditional_71_Template(rf, ctx) { if (rf & 1) {
949
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template(rf, ctx) { if (rf & 1) {
950
950
  const _r35 = i0.ɵɵgetCurrentView();
951
- i0.ɵɵelementStart(0, "mj-switch", 149);
952
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_71_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.UsesTemplate, $event) || (ctx_r2.record.UsesTemplate = $event); return i0.ɵɵresetView($event); });
951
+ i0.ɵɵelementStart(0, "mj-switch", 148);
952
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.UsesTemplate, $event) || (ctx_r1.record.UsesTemplate = $event); return i0.ɵɵresetView($event); });
953
953
  i0.ɵɵelementEnd();
954
954
  } if (rf & 2) {
955
- const ctx_r2 = i0.ɵɵnextContext(2);
956
- i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.UsesTemplate);
955
+ const ctx_r1 = i0.ɵɵnextContext(2);
956
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.UsesTemplate);
957
957
  } }
958
- function MJQueryFormComponentExtended_Conditional_1_Conditional_72_Conditional_1_Template(rf, ctx) { if (rf & 1) {
959
- i0.ɵɵelementStart(0, "span", 141);
960
- i0.ɵɵelement(1, "i", 143);
958
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_1_Template(rf, ctx) { if (rf & 1) {
959
+ i0.ɵɵelementStart(0, "span", 140);
960
+ i0.ɵɵelement(1, "i", 142);
961
961
  i0.ɵɵtext(2, " Uses Templates");
962
962
  i0.ɵɵelementEnd();
963
963
  } }
964
- function MJQueryFormComponentExtended_Conditional_1_Conditional_72_Conditional_2_Template(rf, ctx) { if (rf & 1) {
965
- i0.ɵɵelementStart(0, "span", 142);
966
- i0.ɵɵelement(1, "i", 144);
964
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_2_Template(rf, ctx) { if (rf & 1) {
965
+ i0.ɵɵelementStart(0, "span", 141);
966
+ i0.ɵɵelement(1, "i", 143);
967
967
  i0.ɵɵtext(2, " No Templates");
968
968
  i0.ɵɵelementEnd();
969
969
  } }
970
- function MJQueryFormComponentExtended_Conditional_1_Conditional_72_Template(rf, ctx) { if (rf & 1) {
971
- i0.ɵɵelementStart(0, "div", 40);
972
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_72_Conditional_1_Template, 3, 0, "span", 141)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_72_Conditional_2_Template, 3, 0, "span", 142);
970
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Template(rf, ctx) { if (rf & 1) {
971
+ i0.ɵɵelementStart(0, "div", 39);
972
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_1_Template, 3, 0, "span", 140)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_2_Template, 3, 0, "span", 141);
973
973
  i0.ɵɵelementEnd();
974
974
  } if (rf & 2) {
975
- const ctx_r2 = i0.ɵɵnextContext(2);
975
+ const ctx_r1 = i0.ɵɵnextContext(2);
976
976
  i0.ɵɵadvance();
977
- i0.ɵɵconditional(ctx_r2.record.UsesTemplate ? 1 : 2);
977
+ i0.ɵɵconditional(ctx_r1.record.UsesTemplate ? 1 : 2);
978
978
  } }
979
- function MJQueryFormComponentExtended_Conditional_1_Conditional_85_Template(rf, ctx) { if (rf & 1) {
980
- i0.ɵɵelementStart(0, "div", 37)(1, "label", 38);
981
- i0.ɵɵelement(2, "i", 150);
979
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_85_Template(rf, ctx) { if (rf & 1) {
980
+ i0.ɵɵelementStart(0, "div", 36)(1, "label", 37);
981
+ i0.ɵɵelement(2, "i", 149);
982
982
  i0.ɵɵtext(3, " Quality Rank ");
983
983
  i0.ɵɵelementEnd();
984
- i0.ɵɵelementStart(4, "div", 40);
984
+ i0.ɵɵelementStart(4, "div", 39);
985
985
  i0.ɵɵtext(5);
986
986
  i0.ɵɵelementEnd()();
987
987
  } if (rf & 2) {
988
- const ctx_r2 = i0.ɵɵnextContext(2);
988
+ const ctx_r1 = i0.ɵɵnextContext(2);
989
989
  i0.ɵɵadvance(5);
990
- i0.ɵɵtextInterpolate1("", ctx_r2.record.QualityRank, "/10");
990
+ i0.ɵɵtextInterpolate1("", ctx_r1.record.QualityRank, "/10");
991
991
  } }
992
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_ng_template_1_Template(rf, ctx) { if (rf & 1) {
993
- i0.ɵɵelementStart(0, "span", 62);
994
- i0.ɵɵelement(1, "i", 151);
992
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_ng_template_1_Template(rf, ctx) { if (rf & 1) {
993
+ i0.ɵɵelementStart(0, "span", 61);
994
+ i0.ɵɵelement(1, "i", 150);
995
995
  i0.ɵɵtext(2, " Permissions ");
996
996
  i0.ɵɵelementEnd();
997
997
  } }
998
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_3_Template(rf, ctx) { if (rf & 1) {
999
- i0.ɵɵelementStart(0, "div", 80);
1000
- i0.ɵɵelement(1, "mj-loading", 152);
998
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_3_Template(rf, ctx) { if (rf & 1) {
999
+ i0.ɵɵelementStart(0, "div", 79);
1000
+ i0.ɵɵelement(1, "mj-loading", 151);
1001
1001
  i0.ɵɵelementEnd();
1002
1002
  } }
1003
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1004
- i0.ɵɵelementStart(0, "div", 84);
1005
- i0.ɵɵelement(1, "i", 153);
1006
- i0.ɵɵelementStart(2, "div", 86);
1003
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1004
+ i0.ɵɵelementStart(0, "div", 83);
1005
+ i0.ɵɵelement(1, "i", 152);
1006
+ i0.ɵɵelementStart(2, "div", 85);
1007
1007
  i0.ɵɵtext(3, "No Permissions Set");
1008
1008
  i0.ɵɵelementEnd();
1009
- i0.ɵɵelementStart(4, "div", 87);
1009
+ i0.ɵɵelementStart(4, "div", 86);
1010
1010
  i0.ɵɵtext(5, " This query uses default permissions. ");
1011
1011
  i0.ɵɵelementEnd()();
1012
1012
  } }
1013
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1014
- i0.ɵɵelement(0, "mj-explorer-entity-data-grid", 154);
1013
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1014
+ i0.ɵɵelement(0, "mj-explorer-entity-data-grid", 153);
1015
1015
  } if (rf & 2) {
1016
- const ctx_r2 = i0.ɵɵnextContext(5);
1017
- i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("MJ: Query Permissions", "QueryID"))("NewRecordValues", ctx_r2.NewRecordValues("MJ: Query Permissions"))("AllowLoad", true)("ShowToolbar", false);
1016
+ const ctx_r1 = i0.ɵɵnextContext(5);
1017
+ i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Query Permissions", "QueryID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Query Permissions"))("AllowLoad", true)("ShowToolbar", false);
1018
1018
  } }
1019
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
1020
- i0.ɵɵelementStart(0, "div", 156);
1021
- i0.ɵɵelement(1, "i", 157);
1022
- i0.ɵɵelementStart(2, "div", 158)(3, "div", 159);
1019
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
1020
+ i0.ɵɵelementStart(0, "div", 155);
1021
+ i0.ɵɵelement(1, "i", 156);
1022
+ i0.ɵɵelementStart(2, "div", 157)(3, "div", 158);
1023
1023
  i0.ɵɵtext(4);
1024
1024
  i0.ɵɵelementEnd();
1025
- i0.ɵɵelementStart(5, "div", 160);
1025
+ i0.ɵɵelementStart(5, "div", 159);
1026
1026
  i0.ɵɵtext(6, "Role Permission");
1027
1027
  i0.ɵɵelementEnd()();
1028
- i0.ɵɵelementStart(7, "span", 161);
1029
- i0.ɵɵelement(8, "i", 52);
1028
+ i0.ɵɵelementStart(7, "span", 160);
1029
+ i0.ɵɵelement(8, "i", 51);
1030
1030
  i0.ɵɵtext(9, " Can Execute ");
1031
1031
  i0.ɵɵelementEnd()();
1032
1032
  } if (rf & 2) {
@@ -1034,206 +1034,206 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4
1034
1034
  i0.ɵɵadvance(4);
1035
1035
  i0.ɵɵtextInterpolate(permission_r37.Role);
1036
1036
  } }
1037
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1038
- i0.ɵɵelementStart(0, "div", 155);
1039
- i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div", 156, _forTrack2);
1037
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1038
+ i0.ɵɵelementStart(0, "div", 154);
1039
+ i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div", 155, _forTrack2);
1040
1040
  i0.ɵɵelementEnd();
1041
1041
  } if (rf & 2) {
1042
- const ctx_r2 = i0.ɵɵnextContext(5);
1042
+ const ctx_r1 = i0.ɵɵnextContext(5);
1043
1043
  i0.ɵɵadvance();
1044
- i0.ɵɵrepeater(ctx_r2.queryPermissions);
1044
+ i0.ɵɵrepeater(ctx_r1.queryPermissions);
1045
1045
  } }
1046
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1047
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid", 154)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template, 3, 0, "div", 155);
1046
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1047
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid", 153)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template, 3, 0, "div", 154);
1048
1048
  } if (rf & 2) {
1049
- const ctx_r2 = i0.ɵɵnextContext(4);
1050
- i0.ɵɵconditional(ctx_r2.EditMode ? 0 : 1);
1049
+ const ctx_r1 = i0.ɵɵnextContext(4);
1050
+ i0.ɵɵconditional(ctx_r1.EditMode ? 0 : 1);
1051
1051
  } }
1052
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1053
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_0_Template, 6, 0, "div", 84)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Conditional_1_Template, 2, 1);
1052
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1053
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_0_Template, 6, 0, "div", 83)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Template, 2, 1);
1054
1054
  } if (rf & 2) {
1055
- const ctx_r2 = i0.ɵɵnextContext(3);
1056
- i0.ɵɵconditional(ctx_r2.queryPermissions.length === 0 && !ctx_r2.EditMode ? 0 : 1);
1055
+ const ctx_r1 = i0.ɵɵnextContext(3);
1056
+ i0.ɵɵconditional(ctx_r1.queryPermissions.length === 0 && !ctx_r1.EditMode ? 0 : 1);
1057
1057
  } }
1058
- function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Template(rf, ctx) { if (rf & 1) {
1058
+ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template(rf, ctx) { if (rf & 1) {
1059
1059
  const _r36 = i0.ɵɵgetCurrentView();
1060
- i0.ɵɵelementStart(0, "mj-accordion-panel", 25);
1061
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_86_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.permissionsPanelExpanded, $event) || (ctx_r2.permissionsPanelExpanded = $event); return i0.ɵɵresetView($event); });
1062
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_86_ng_template_1_Template, 3, 0, "ng-template", 26);
1063
- i0.ɵɵelementStart(2, "div", 35);
1064
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_3_Template, 2, 0, "div", 80)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Conditional_4_Template, 2, 1);
1060
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
1061
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.permissionsPanelExpanded, $event) || (ctx_r1.permissionsPanelExpanded = $event); return i0.ɵɵresetView($event); });
1062
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_ng_template_1_Template, 3, 0, "ng-template", 25);
1063
+ i0.ɵɵelementStart(2, "div", 34);
1064
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_3_Template, 2, 0, "div", 79)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Template, 2, 1);
1065
1065
  i0.ɵɵelementEnd()();
1066
1066
  } if (rf & 2) {
1067
- const ctx_r2 = i0.ɵɵnextContext(2);
1068
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.permissionsPanelExpanded);
1067
+ const ctx_r1 = i0.ɵɵnextContext(2);
1068
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.permissionsPanelExpanded);
1069
1069
  i0.ɵɵadvance(3);
1070
- i0.ɵɵconditional(ctx_r2.isLoadingPermissions ? 3 : 4);
1070
+ i0.ɵɵconditional(ctx_r1.isLoadingPermissions ? 3 : 4);
1071
1071
  } }
1072
- function MJQueryFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1072
+ function MJQueryFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1073
1073
  const _r1 = i0.ɵɵgetCurrentView();
1074
- i0.ɵɵelementStart(0, "form", 3, 0);
1075
- i0.ɵɵelement(2, "mj-form-toolbar", 4);
1076
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_3_Template, 4, 0, "div", 5);
1077
- i0.ɵɵelementStart(4, "div", 6)(5, "div", 7)(6, "div", 8)(7, "div", 9);
1078
- i0.ɵɵelement(8, "i", 10);
1079
- i0.ɵɵconditionalCreate(9, MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template, 1, 1, "input", 11)(10, MJQueryFormComponentExtended_Conditional_1_Conditional_10_Template, 2, 1, "h4", 12);
1080
- i0.ɵɵelementEnd();
1081
- i0.ɵɵelementStart(11, "div", 13);
1082
- i0.ɵɵconditionalCreate(12, MJQueryFormComponentExtended_Conditional_1_Conditional_12_Template, 3, 1, "button", 14);
1074
+ i0.ɵɵelementStart(0, "mj-record-form-container", 2);
1075
+ i0.ɵɵlistener("Navigate", function MJQueryFormComponentExtended_Conditional_0_Template_mj_record_form_container_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("DeleteRequested", function MJQueryFormComponentExtended_Conditional_0_Template_mj_record_form_container_DeleteRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDeleteRequested()); })("FavoriteToggled", function MJQueryFormComponentExtended_Conditional_0_Template_mj_record_form_container_FavoriteToggled_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFavoriteToggled()); })("HistoryRequested", function MJQueryFormComponentExtended_Conditional_0_Template_mj_record_form_container_HistoryRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnHistoryRequested()); })("ListManagementRequested", function MJQueryFormComponentExtended_Conditional_0_Template_mj_record_form_container_ListManagementRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementRequested()); });
1076
+ i0.ɵɵelementStart(1, "form", 3, 0);
1077
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_3_Template, 4, 0, "div", 4);
1078
+ i0.ɵɵelementStart(4, "div", 5)(5, "div", 6)(6, "div", 7)(7, "div", 8);
1079
+ i0.ɵɵelement(8, "i", 9);
1080
+ i0.ɵɵconditionalCreate(9, MJQueryFormComponentExtended_Conditional_0_Conditional_9_Template, 1, 1, "input", 10)(10, MJQueryFormComponentExtended_Conditional_0_Conditional_10_Template, 2, 1, "h4", 11);
1081
+ i0.ɵɵelementEnd();
1082
+ i0.ɵɵelementStart(11, "div", 12);
1083
+ i0.ɵɵconditionalCreate(12, MJQueryFormComponentExtended_Conditional_0_Conditional_12_Template, 3, 1, "button", 13);
1083
1084
  i0.ɵɵelementEnd()();
1084
- i0.ɵɵelementStart(13, "div", 15)(14, "div", 16)(15, "label", 17);
1085
+ i0.ɵɵelementStart(13, "div", 14)(14, "div", 15)(15, "label", 16);
1085
1086
  i0.ɵɵtext(16, "Category");
1086
1087
  i0.ɵɵelementEnd();
1087
- i0.ɵɵconditionalCreate(17, MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template, 1, 7, "mj-tree-dropdown", 18)(18, MJQueryFormComponentExtended_Conditional_1_Conditional_18_Template, 2, 1, "span", 19);
1088
+ i0.ɵɵconditionalCreate(17, MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template, 1, 7, "mj-tree-dropdown", 17)(18, MJQueryFormComponentExtended_Conditional_0_Conditional_18_Template, 2, 1, "span", 18);
1088
1089
  i0.ɵɵelementEnd();
1089
- i0.ɵɵelementStart(19, "div", 16)(20, "label", 17);
1090
+ i0.ɵɵelementStart(19, "div", 15)(20, "label", 16);
1090
1091
  i0.ɵɵtext(21, "Status");
1091
1092
  i0.ɵɵelementEnd();
1092
- i0.ɵɵconditionalCreate(22, MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template, 1, 3, "mj-dropdown", 20)(23, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Template, 3, 5, "span", 21);
1093
+ i0.ɵɵconditionalCreate(22, MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template, 1, 3, "mj-dropdown", 19)(23, MJQueryFormComponentExtended_Conditional_0_Conditional_23_Template, 3, 5, "span", 20);
1093
1094
  i0.ɵɵelementEnd()();
1094
- i0.ɵɵconditionalCreate(24, MJQueryFormComponentExtended_Conditional_1_Conditional_24_Template, 3, 1, "div", 22);
1095
+ i0.ɵɵconditionalCreate(24, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Template, 3, 1, "div", 21);
1095
1096
  i0.ɵɵelementEnd()();
1096
- i0.ɵɵconditionalCreate(25, MJQueryFormComponentExtended_Conditional_1_Conditional_25_Template, 7, 8, "div", 23);
1097
- i0.ɵɵelementStart(26, "div", 24)(27, "mj-accordion-panel", 25);
1098
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_27_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.sqlPanelExpanded, $event) || (ctx_r2.sqlPanelExpanded = $event); return i0.ɵɵresetView($event); });
1099
- i0.ɵɵtemplate(28, MJQueryFormComponentExtended_Conditional_1_ng_template_28_Template, 5, 1, "ng-template", 26);
1100
- i0.ɵɵelementStart(29, "div", 27)(30, "button", 28);
1101
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleFiltersHelp()); });
1102
- i0.ɵɵelement(31, "i", 29);
1097
+ i0.ɵɵconditionalCreate(25, MJQueryFormComponentExtended_Conditional_0_Conditional_25_Template, 7, 8, "div", 22);
1098
+ i0.ɵɵelementStart(26, "div", 23)(27, "mj-accordion-panel", 24);
1099
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_accordion_panel_ExpandedChange_27_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.sqlPanelExpanded, $event) || (ctx_r1.sqlPanelExpanded = $event); return i0.ɵɵresetView($event); });
1100
+ i0.ɵɵtemplate(28, MJQueryFormComponentExtended_Conditional_0_ng_template_28_Template, 5, 1, "ng-template", 25);
1101
+ i0.ɵɵelementStart(29, "div", 26)(30, "button", 27);
1102
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleFiltersHelp()); });
1103
+ i0.ɵɵelement(31, "i", 28);
1103
1104
  i0.ɵɵelementStart(32, "span");
1104
1105
  i0.ɵɵtext(33, "Filters Help");
1105
1106
  i0.ɵɵelementEnd();
1106
- i0.ɵɵelement(34, "i", 30);
1107
+ i0.ɵɵelement(34, "i", 29);
1107
1108
  i0.ɵɵelementEnd()();
1108
- i0.ɵɵelementStart(35, "div", 31)(36, "mj-code-editor", 32, 1);
1109
- i0.ɵɵlistener("change", function MJQueryFormComponentExtended_Conditional_1_Template_mj_code_editor_change_36_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSQLChange($event)); })("CompositionTokenClick", function MJQueryFormComponentExtended_Conditional_1_Template_mj_code_editor_CompositionTokenClick_36_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCompositionTokenClick($event)); });
1109
+ i0.ɵɵelementStart(35, "div", 30)(36, "mj-code-editor", 31, 1);
1110
+ i0.ɵɵlistener("change", function MJQueryFormComponentExtended_Conditional_0_Template_mj_code_editor_change_36_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSQLChange($event)); })("CompositionTokenClick", function MJQueryFormComponentExtended_Conditional_0_Template_mj_code_editor_CompositionTokenClick_36_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCompositionTokenClick($event)); });
1110
1111
  i0.ɵɵelementEnd();
1111
- i0.ɵɵconditionalCreate(38, MJQueryFormComponentExtended_Conditional_1_Conditional_38_Template, 7, 0, "div", 33);
1112
+ i0.ɵɵconditionalCreate(38, MJQueryFormComponentExtended_Conditional_0_Conditional_38_Template, 7, 0, "div", 32);
1112
1113
  i0.ɵɵelementEnd()();
1113
- i0.ɵɵconditionalCreate(39, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Template, 5, 2, "mj-accordion-panel", 34);
1114
- i0.ɵɵconditionalCreate(40, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Template, 5, 2, "mj-accordion-panel", 34);
1115
- i0.ɵɵconditionalCreate(41, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Template, 5, 2, "mj-accordion-panel", 34);
1116
- i0.ɵɵconditionalCreate(42, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Template, 11, 2, "mj-accordion-panel", 34);
1117
- i0.ɵɵconditionalCreate(43, MJQueryFormComponentExtended_Conditional_1_Conditional_43_Template, 5, 2, "mj-accordion-panel", 34);
1118
- i0.ɵɵelementStart(44, "mj-accordion-panel", 25);
1119
- i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_44_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.detailsPanelExpanded, $event) || (ctx_r2.detailsPanelExpanded = $event); return i0.ɵɵresetView($event); });
1120
- i0.ɵɵtemplate(45, MJQueryFormComponentExtended_Conditional_1_ng_template_45_Template, 3, 0, "ng-template", 26);
1121
- i0.ɵɵelementStart(46, "div", 35)(47, "div", 36)(48, "div", 37)(49, "label", 38);
1122
- i0.ɵɵelement(50, "i", 39);
1114
+ i0.ɵɵconditionalCreate(39, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template, 5, 2, "mj-accordion-panel", 33);
1115
+ i0.ɵɵconditionalCreate(40, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template, 5, 2, "mj-accordion-panel", 33);
1116
+ i0.ɵɵconditionalCreate(41, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template, 5, 2, "mj-accordion-panel", 33);
1117
+ i0.ɵɵconditionalCreate(42, MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template, 11, 2, "mj-accordion-panel", 33);
1118
+ i0.ɵɵconditionalCreate(43, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template, 5, 2, "mj-accordion-panel", 33);
1119
+ i0.ɵɵelementStart(44, "mj-accordion-panel", 24);
1120
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_accordion_panel_ExpandedChange_44_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.detailsPanelExpanded, $event) || (ctx_r1.detailsPanelExpanded = $event); return i0.ɵɵresetView($event); });
1121
+ i0.ɵɵtemplate(45, MJQueryFormComponentExtended_Conditional_0_ng_template_45_Template, 3, 0, "ng-template", 25);
1122
+ i0.ɵɵelementStart(46, "div", 34)(47, "div", 35)(48, "div", 36)(49, "label", 37);
1123
+ i0.ɵɵelement(50, "i", 38);
1123
1124
  i0.ɵɵtext(51, " Reusable ");
1124
1125
  i0.ɵɵelementEnd();
1125
- i0.ɵɵconditionalCreate(52, MJQueryFormComponentExtended_Conditional_1_Conditional_52_Template, 3, 1)(53, MJQueryFormComponentExtended_Conditional_1_Conditional_53_Template, 3, 1, "div", 40);
1126
+ i0.ɵɵconditionalCreate(52, MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template, 3, 1)(53, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Template, 3, 1, "div", 39);
1126
1127
  i0.ɵɵelementEnd();
1127
- i0.ɵɵelementStart(54, "div", 37)(55, "label", 38);
1128
- i0.ɵɵelement(56, "i", 41);
1128
+ i0.ɵɵelementStart(54, "div", 36)(55, "label", 37);
1129
+ i0.ɵɵelement(56, "i", 40);
1129
1130
  i0.ɵɵtext(57, " Cache Enabled ");
1130
1131
  i0.ɵɵelementEnd();
1131
- i0.ɵɵconditionalCreate(58, MJQueryFormComponentExtended_Conditional_1_Conditional_58_Template, 3, 1)(59, MJQueryFormComponentExtended_Conditional_1_Conditional_59_Template, 3, 1, "div", 40);
1132
+ i0.ɵɵconditionalCreate(58, MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template, 3, 1)(59, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Template, 3, 1, "div", 39);
1132
1133
  i0.ɵɵelementEnd();
1133
- i0.ɵɵconditionalCreate(60, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Template, 6, 1, "div", 37);
1134
- i0.ɵɵelementStart(61, "div", 37)(62, "label", 38);
1135
- i0.ɵɵelement(63, "i", 42);
1134
+ i0.ɵɵconditionalCreate(60, MJQueryFormComponentExtended_Conditional_0_Conditional_60_Template, 6, 1, "div", 36);
1135
+ i0.ɵɵelementStart(61, "div", 36)(62, "label", 37);
1136
+ i0.ɵɵelement(63, "i", 41);
1136
1137
  i0.ɵɵtext(64, " Audit Runs ");
1137
1138
  i0.ɵɵelementEnd();
1138
- i0.ɵɵconditionalCreate(65, MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template, 3, 1)(66, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template, 3, 1, "div", 40);
1139
+ i0.ɵɵconditionalCreate(65, MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template, 3, 1)(66, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Template, 3, 1, "div", 39);
1139
1140
  i0.ɵɵelementEnd();
1140
- i0.ɵɵelementStart(67, "div", 37)(68, "label", 38);
1141
- i0.ɵɵelement(69, "i", 43);
1141
+ i0.ɵɵelementStart(67, "div", 36)(68, "label", 37);
1142
+ i0.ɵɵelement(69, "i", 42);
1142
1143
  i0.ɵɵtext(70, " Template Usage ");
1143
1144
  i0.ɵɵelementEnd();
1144
- i0.ɵɵconditionalCreate(71, MJQueryFormComponentExtended_Conditional_1_Conditional_71_Template, 1, 1, "mj-switch", 44)(72, MJQueryFormComponentExtended_Conditional_1_Conditional_72_Template, 3, 1, "div", 40);
1145
+ i0.ɵɵconditionalCreate(71, MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template, 1, 1, "mj-switch", 43)(72, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Template, 3, 1, "div", 39);
1145
1146
  i0.ɵɵelementEnd();
1146
- i0.ɵɵelementStart(73, "div", 37)(74, "label", 38);
1147
- i0.ɵɵelement(75, "i", 45);
1147
+ i0.ɵɵelementStart(73, "div", 36)(74, "label", 37);
1148
+ i0.ɵɵelement(75, "i", 44);
1148
1149
  i0.ɵɵtext(76, " Created ");
1149
1150
  i0.ɵɵelementEnd();
1150
- i0.ɵɵelementStart(77, "div", 40);
1151
+ i0.ɵɵelementStart(77, "div", 39);
1151
1152
  i0.ɵɵtext(78);
1152
1153
  i0.ɵɵelementEnd()();
1153
- i0.ɵɵelementStart(79, "div", 37)(80, "label", 38);
1154
- i0.ɵɵelement(81, "i", 46);
1154
+ i0.ɵɵelementStart(79, "div", 36)(80, "label", 37);
1155
+ i0.ɵɵelement(81, "i", 45);
1155
1156
  i0.ɵɵtext(82, " Last Updated ");
1156
1157
  i0.ɵɵelementEnd();
1157
- i0.ɵɵelementStart(83, "div", 40);
1158
+ i0.ɵɵelementStart(83, "div", 39);
1158
1159
  i0.ɵɵtext(84);
1159
1160
  i0.ɵɵelementEnd()();
1160
- i0.ɵɵconditionalCreate(85, MJQueryFormComponentExtended_Conditional_1_Conditional_85_Template, 6, 1, "div", 37);
1161
+ i0.ɵɵconditionalCreate(85, MJQueryFormComponentExtended_Conditional_0_Conditional_85_Template, 6, 1, "div", 36);
1161
1162
  i0.ɵɵelementEnd()()();
1162
- i0.ɵɵconditionalCreate(86, MJQueryFormComponentExtended_Conditional_1_Conditional_86_Template, 5, 2, "mj-accordion-panel", 34);
1163
- i0.ɵɵelementEnd()();
1164
- i0.ɵɵelementStart(87, "mj-query-run-dialog", 47);
1165
- i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_isVisibleChange_87_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showRunDialog, $event) || (ctx_r2.showRunDialog = $event); return i0.ɵɵresetView($event); });
1166
- i0.ɵɵlistener("onClose", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_onClose_87_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRunDialogClose()); });
1163
+ i0.ɵɵconditionalCreate(86, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template, 5, 2, "mj-accordion-panel", 33);
1164
+ i0.ɵɵelementEnd()()();
1165
+ i0.ɵɵelementStart(87, "mj-query-run-dialog", 46);
1166
+ i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_run_dialog_isVisibleChange_87_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.showRunDialog, $event) || (ctx_r1.showRunDialog = $event); return i0.ɵɵresetView($event); });
1167
+ i0.ɵɵlistener("onClose", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_run_dialog_onClose_87_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRunDialogClose()); });
1167
1168
  i0.ɵɵelementEnd();
1168
- i0.ɵɵelementStart(88, "mj-query-category-dialog", 48);
1169
- i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_isVisibleChange_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showCategoryDialog, $event) || (ctx_r2.showCategoryDialog = $event); return i0.ɵɵresetView($event); });
1170
- i0.ɵɵlistener("onCategoryCreated", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_onCategoryCreated_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCategoryCreated($event)); });
1169
+ i0.ɵɵelementStart(88, "mj-query-category-dialog", 47);
1170
+ i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_category_dialog_isVisibleChange_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.showCategoryDialog, $event) || (ctx_r1.showCategoryDialog = $event); return i0.ɵɵresetView($event); });
1171
+ i0.ɵɵlistener("onCategoryCreated", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_category_dialog_onCategoryCreated_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCategoryCreated($event)); });
1171
1172
  i0.ɵɵelementEnd();
1172
1173
  } if (rf & 2) {
1173
- const ctx_r2 = i0.ɵɵnextContext();
1174
- i0.ɵɵadvance(2);
1175
- i0.ɵɵproperty("Form", ctx_r2)("Config", ctx_r2.ToolbarConfig)("IsSaving", ctx_r2.IsSaving);
1176
- i0.ɵɵadvance();
1177
- i0.ɵɵconditional(ctx_r2.IsSaving ? 3 : -1);
1174
+ const ctx_r1 = i0.ɵɵnextContext();
1175
+ i0.ɵɵproperty("Record", ctx_r1.record)("FormComponent", ctx_r1)("ToolbarConfig", ctx_r1.ToolbarConfig)("IsSaving", ctx_r1.IsSaving)("WidthMode", "full-width");
1176
+ i0.ɵɵadvance(3);
1177
+ i0.ɵɵconditional(ctx_r1.IsSaving ? 3 : -1);
1178
1178
  i0.ɵɵadvance();
1179
- i0.ɵɵclassProp("content-saving", ctx_r2.IsSaving);
1179
+ i0.ɵɵclassProp("content-saving", ctx_r1.IsSaving);
1180
1180
  i0.ɵɵadvance(5);
1181
- i0.ɵɵconditional(ctx_r2.EditMode ? 9 : 10);
1181
+ i0.ɵɵconditional(ctx_r1.EditMode ? 9 : 10);
1182
1182
  i0.ɵɵadvance(3);
1183
- i0.ɵɵconditional(ctx_r2.record.ID ? 12 : -1);
1183
+ i0.ɵɵconditional(ctx_r1.record.ID ? 12 : -1);
1184
1184
  i0.ɵɵadvance(5);
1185
- i0.ɵɵconditional(ctx_r2.EditMode ? 17 : 18);
1185
+ i0.ɵɵconditional(ctx_r1.EditMode ? 17 : 18);
1186
1186
  i0.ɵɵadvance(5);
1187
- i0.ɵɵconditional(ctx_r2.EditMode ? 22 : 23);
1187
+ i0.ɵɵconditional(ctx_r1.EditMode ? 22 : 23);
1188
1188
  i0.ɵɵadvance(2);
1189
- i0.ɵɵconditional(ctx_r2.EditMode || ctx_r2.record.Description ? 24 : -1);
1189
+ i0.ɵɵconditional(ctx_r1.EditMode || ctx_r1.record.Description ? 24 : -1);
1190
1190
  i0.ɵɵadvance();
1191
- i0.ɵɵconditional(ctx_r2.record.Status && ctx_r2.record.Status !== "Approved" && !ctx_r2.EditMode ? 25 : -1);
1191
+ i0.ɵɵconditional(ctx_r1.record.Status && ctx_r1.record.Status !== "Approved" && !ctx_r1.EditMode ? 25 : -1);
1192
1192
  i0.ɵɵadvance();
1193
- i0.ɵɵclassProp("content-saving", ctx_r2.IsSaving);
1193
+ i0.ɵɵclassProp("content-saving", ctx_r1.IsSaving);
1194
1194
  i0.ɵɵadvance();
1195
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.sqlPanelExpanded);
1195
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.sqlPanelExpanded);
1196
1196
  i0.ɵɵadvance(7);
1197
- i0.ɵɵproperty("ngClass", ctx_r2.showFiltersHelp ? "fa-chevron-up" : "fa-chevron-down");
1197
+ i0.ɵɵproperty("ngClass", ctx_r1.showFiltersHelp ? "fa-chevron-up" : "fa-chevron-down");
1198
1198
  i0.ɵɵadvance(2);
1199
1199
  i0.ɵɵproperty("language", "sql");
1200
1200
  i0.ɵɵadvance(2);
1201
- i0.ɵɵconditional(ctx_r2.showFiltersHelp ? 38 : -1);
1201
+ i0.ɵɵconditional(ctx_r1.showFiltersHelp ? 38 : -1);
1202
1202
  i0.ɵɵadvance();
1203
- i0.ɵɵconditional(ctx_r2.record.TechnicalDescription || ctx_r2.EditMode ? 39 : -1);
1203
+ i0.ɵɵconditional(ctx_r1.record.TechnicalDescription || ctx_r1.EditMode ? 39 : -1);
1204
1204
  i0.ɵɵadvance();
1205
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 40 : -1);
1205
+ i0.ɵɵconditional(ctx_r1.record.IsSaved ? 40 : -1);
1206
1206
  i0.ɵɵadvance();
1207
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 41 : -1);
1207
+ i0.ɵɵconditional(ctx_r1.record.IsSaved ? 41 : -1);
1208
1208
  i0.ɵɵadvance();
1209
- i0.ɵɵconditional(ctx_r2.record.IsSaved && ctx_r2.DependentQueries.length > 0 ? 42 : -1);
1209
+ i0.ɵɵconditional(ctx_r1.record.IsSaved && ctx_r1.DependentQueries.length > 0 ? 42 : -1);
1210
1210
  i0.ɵɵadvance();
1211
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 43 : -1);
1211
+ i0.ɵɵconditional(ctx_r1.record.IsSaved ? 43 : -1);
1212
1212
  i0.ɵɵadvance();
1213
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.detailsPanelExpanded);
1213
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r1.detailsPanelExpanded);
1214
1214
  i0.ɵɵadvance(8);
1215
- i0.ɵɵconditional(ctx_r2.EditMode ? 52 : 53);
1215
+ i0.ɵɵconditional(ctx_r1.EditMode ? 52 : 53);
1216
1216
  i0.ɵɵadvance(6);
1217
- i0.ɵɵconditional(ctx_r2.EditMode ? 58 : 59);
1217
+ i0.ɵɵconditional(ctx_r1.EditMode ? 58 : 59);
1218
1218
  i0.ɵɵadvance(2);
1219
- i0.ɵɵconditional(ctx_r2.record.CacheEnabled ? 60 : -1);
1219
+ i0.ɵɵconditional(ctx_r1.record.CacheEnabled ? 60 : -1);
1220
1220
  i0.ɵɵadvance(5);
1221
- i0.ɵɵconditional(ctx_r2.EditMode ? 65 : 66);
1221
+ i0.ɵɵconditional(ctx_r1.EditMode ? 65 : 66);
1222
1222
  i0.ɵɵadvance(6);
1223
- i0.ɵɵconditional(ctx_r2.EditMode ? 71 : 72);
1223
+ i0.ɵɵconditional(ctx_r1.EditMode ? 71 : 72);
1224
1224
  i0.ɵɵadvance(7);
1225
- i0.ɵɵtextInterpolate(ctx_r2.formatDate(ctx_r2.record.__mj_CreatedAt));
1225
+ i0.ɵɵtextInterpolate(ctx_r1.formatDate(ctx_r1.record.__mj_CreatedAt));
1226
1226
  i0.ɵɵadvance(6);
1227
- i0.ɵɵtextInterpolate(ctx_r2.formatDate(ctx_r2.record.__mj_UpdatedAt));
1227
+ i0.ɵɵtextInterpolate(ctx_r1.formatDate(ctx_r1.record.__mj_UpdatedAt));
1228
1228
  i0.ɵɵadvance();
1229
- i0.ɵɵconditional(ctx_r2.record.QualityRank != null ? 85 : -1);
1229
+ i0.ɵɵconditional(ctx_r1.record.QualityRank != null ? 85 : -1);
1230
1230
  i0.ɵɵadvance();
1231
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 86 : -1);
1231
+ i0.ɵɵconditional(ctx_r1.record.IsSaved ? 86 : -1);
1232
1232
  i0.ɵɵadvance();
1233
- i0.ɵɵproperty("query", ctx_r2.record)("parameters", ctx_r2.queryParameters);
1234
- i0.ɵɵtwoWayProperty("isVisible", ctx_r2.showRunDialog);
1233
+ i0.ɵɵproperty("query", ctx_r1.record)("parameters", ctx_r1.queryParameters);
1234
+ i0.ɵɵtwoWayProperty("isVisible", ctx_r1.showRunDialog);
1235
1235
  i0.ɵɵadvance();
1236
- i0.ɵɵtwoWayProperty("isVisible", ctx_r2.showCategoryDialog);
1236
+ i0.ɵɵtwoWayProperty("isVisible", ctx_r1.showCategoryDialog);
1237
1237
  } }
1238
1238
  let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJQueryFormComponent {
1239
1239
  constructor() {
@@ -1284,19 +1284,10 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
1284
1284
  { text: 'Rejected', value: 'Rejected' },
1285
1285
  { text: 'Expired', value: 'Expired' }
1286
1286
  ];
1287
- // Toolbar config: hide non-functional buttons (delete/favorite/history are not wired
1288
- // in legacy [Form] mode) and section controls (custom form uses its own panel state).
1289
- this.ToolbarConfig = {
1290
- ...DEFAULT_TOOLBAR_CONFIG,
1291
- ShowDeleteButton: false,
1292
- ShowFavoriteButton: false,
1293
- ShowHistoryButton: false,
1294
- ShowListButton: false,
1295
- ShowSectionControls: false,
1296
- ShowSectionFilter: false,
1297
- AllowSectionReorder: false,
1298
- ShowSectionManager: false,
1299
- };
1287
+ // Toolbar config: custom layout hides the right-hand section-controls
1288
+ // group, keeps all left-side action buttons (delete/favorite/history/list)
1289
+ // since they're now wired through `<mj-record-form-container>`.
1290
+ this.ToolbarConfig = CUSTOM_LAYOUT_TOOLBAR_CONFIG;
1300
1291
  this.sqlEditor = null;
1301
1292
  // SQL Filters for help display
1302
1293
  this.sqlFilters = RUN_QUERY_SQL_FILTERS;
@@ -1321,6 +1312,8 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
1321
1312
  }
1322
1313
  this.updateCategoryPathDisplay();
1323
1314
  }
1315
+ /** Custom-layout Query form looks best full-width on first open. */
1316
+ getDefaultFormWidthMode() { return 'full-width'; }
1324
1317
  /**
1325
1318
  * Gets the QueryInfo metadata object for the current record, used to access Dependents.
1326
1319
  */
@@ -2047,14 +2040,11 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
2047
2040
  } if (rf & 2) {
2048
2041
  let _t;
2049
2042
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sqlEditor = _t.first);
2050
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [["form", "ngForm"], ["sqlEditor", ""], [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", "Config", "IsSaving"], [1, "saving-overlay"], [1, "query-header"], [1, "query-header-content"], [1, "query-header-top"], [1, "query-name-section"], [1, "fa-solid", "fa-database", "query-title-icon"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModel"], [1, "query-name-display"], [1, "query-header-actions"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "disabled"], [1, "query-meta-row"], [1, "query-meta-item"], [1, "meta-label"], [1, "meta-dropdown", 3, "BranchConfig", "Value", "SelectableTypes", "SelectionMode", "Placeholder", "EnableSearch", "Clearable"], [1, "meta-value"], ["name", "status", "TextField", "text", "ValueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "status-pill", 3, "background"], [1, "query-description-row"], [1, "status-warning-banner", 3, "border-left-color"], [1, "query-content"], [1, "query-panel", 3, "ExpandedChange", "Expanded"], ["mjAccordionTitle", ""], [1, "sql-panel-toolbar", 2, "display", "flex", "justify-content", "flex-end", "padding", "4px 0 8px"], ["type", "button", "mjButton", "", "variant", "flat", "title", "Show/hide SQL filters help", 1, "filters-help-btn", 3, "click"], [1, "fa-solid", "fa-question-circle"], [1, "fa-solid", 3, "ngClass"], [1, "sql-panel-content"], [1, "sql-editor", 3, "change", "CompositionTokenClick", "language"], [1, "filters-help"], [1, "query-panel", 3, "Expanded"], [1, "panel-body"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "fa-solid", "fa-puzzle-piece"], [1, "detail-value"], [1, "fa-solid", "fa-bolt"], [1, "fa-solid", "fa-clipboard-list"], [1, "fa-solid", "fa-file-code"], ["name", "usesTemplate", 3, "ngModel"], [1, "fa-solid", "fa-calendar-plus"], [1, "fa-solid", "fa-calendar-check"], [3, "isVisibleChange", "onClose", "query", "parameters", "isVisible"], [3, "isVisibleChange", "onCategoryCreated", "isVisible"], [1, "fa-solid", "fa-spinner", "fa-spin", "saving-spinner"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModelChange", "ngModel"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], [1, "meta-dropdown", 3, "ValueChange", "BranchConfig", "Value", "SelectableTypes", "SelectionMode", "Placeholder", "EnableSearch", "Clearable"], ["name", "status", "TextField", "text", "ValueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], [1, "status-pill"], [1, "fa-solid"], ["name", "description", "rows", "2", "placeholder", "Enter query description...", 1, "mj-input", "query-description-input", 3, "ngModel"], [1, "query-description-text"], ["name", "description", "rows", "2", "placeholder", "Enter query description...", 1, "mj-input", "query-description-input", 3, "ngModelChange", "ngModel"], [1, "status-warning-banner"], [1, "panel-title-row"], [1, "panel-title"], [1, "fa-solid", "fa-code", "panel-icon", "sql-icon"], [1, "panel-badge", "defined"], [1, "filters-help-title"], [1, "fa-solid", "fa-filter"], [1, "filters-grid"], [1, "filter-card"], [1, "filter-name"], [1, "filter-description"], [1, "filter-syntax"], [1, "filter-notes"], [1, "technical-description-view"], [1, "fa-solid", "fa-book", "panel-icon"], ["name", "technicalDescription", "rows", "8", "placeholder", "Technical documentation of the query logic, performance considerations, and parameter usage. Supports markdown and mermaid diagrams.", 1, "mj-input", "technical-description-textarea", 3, "ngModelChange", "ngModel"], [1, "technical-description-preview"], [1, "preview-label"], [1, "fa-solid", "fa-eye"], [3, "data", "enableMermaid", "enableHighlight", "enableCollapsibleHeadings", "enableSmartypants"], [1, "panel-loading"], [1, "fa-solid", "fa-sliders", "panel-icon"], [1, "panel-badge", "count"], ["text", "Loading parameters..."], [1, "empty-state"], [1, "fa-solid", "fa-sliders", "empty-state-icon"], [1, "empty-state-title"], [1, "empty-state-text"], ["type", "button", 1, "add-item-btn"], ["type", "button", 1, "add-item-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "panel-toolbar"], [1, "card-grid"], [1, "item-card", 3, "required"], [1, "item-card", 3, "click"], [1, "item-card-header"], [1, "item-name"], [1, "fa-solid", "fa-at", "item-name-icon", "param-icon"], [1, "item-badges"], [1, "item-badge", "required"], [1, "item-card-body"], [1, "item-description"], [1, "item-meta"], [1, "meta-tag"], [1, "item-actions"], [1, "meta-code"], [1, "item-actions", 3, "click"], ["type", "button", "title", "Edit parameter", 1, "item-action-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["type", "button", "title", "Delete parameter", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-table", "panel-icon"], ["text", "Loading fields..."], [1, "fa-solid", "fa-table", "empty-state-icon"], [1, "item-card"], [1, "fa-solid", "fa-columns", "item-name-icon", "field-icon"], [1, "item-badge", "type"], [1, "item-badge", "sequence"], [1, "fa-solid", "fa-code"], [1, "item-card-actions"], ["type", "button", "title", "Delete field", 1, "item-action-btn", "delete", 3, "click"], [1, "dependents-description"], [1, "item-card", "dependent-card"], [1, "fa-solid", "fa-arrow-left", "panel-icon", "dependents-icon"], [1, "item-card", "dependent-card", 3, "click"], [1, "fa-solid", "fa-arrow-left", "item-name-icon", "dependent-query-icon"], [1, "item-card-footer"], [1, "open-link"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-database", "panel-icon"], ["text", "Loading entities..."], [1, "fa-solid", "fa-database", "empty-state-icon"], [1, "fa-solid", "fa-table", "item-name-icon", "entity-icon"], [1, "entity-dropdown-wrapper"], ["TextField", "text", "ValueField", "id", "Placeholder", "Select entity...", 1, "entity-dropdown", 3, "ngModelChange", "ngModel", "name", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-database"], ["type", "button", "title", "Delete entity", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-info-circle", "panel-icon"], ["name", "reusable", 3, "ngModelChange", "ngModel"], [1, "detail-hint"], [1, "detail-tag", "positive"], [1, "detail-tag", "neutral"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-times"], ["name", "cacheEnabled", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-clock"], ["type", "number", "name", "cacheTTLMinutes", "min", "1", "placeholder", "Default", 1, "mj-input", "detail-input-narrow", 3, "ngModelChange", "ngModel"], ["name", "auditQueryRuns", 3, "ngModelChange", "ngModel"], ["name", "usesTemplate", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-shield-alt", "panel-icon"], ["text", "Loading permissions..."], [1, "fa-solid", "fa-shield-alt", "empty-state-icon"], [3, "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], [1, "permissions-list"], [1, "permission-card"], [1, "fa-solid", "fa-users", "permission-icon"], [1, "permission-info"], [1, "permission-role"], [1, "permission-type"], [1, "permission-badge"]], template: function MJQueryFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2051
- i0.ɵɵelementStart(0, "div", 2);
2052
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Template, 89, 37);
2053
- i0.ɵɵelementEnd();
2043
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["form", "ngForm"], ["sqlEditor", ""], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent", "ToolbarConfig", "IsSaving", "WidthMode"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "saving-overlay"], [1, "query-header"], [1, "query-header-content"], [1, "query-header-top"], [1, "query-name-section"], [1, "fa-solid", "fa-database", "query-title-icon"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModel"], [1, "query-name-display"], [1, "query-header-actions"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "disabled"], [1, "query-meta-row"], [1, "query-meta-item"], [1, "meta-label"], [1, "meta-dropdown", 3, "BranchConfig", "Value", "SelectableTypes", "SelectionMode", "Placeholder", "EnableSearch", "Clearable"], [1, "meta-value"], ["name", "status", "TextField", "text", "ValueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "status-pill", 3, "background"], [1, "query-description-row"], [1, "status-warning-banner", 3, "border-left-color"], [1, "query-content"], [1, "query-panel", 3, "ExpandedChange", "Expanded"], ["mjAccordionTitle", ""], [1, "sql-panel-toolbar", 2, "display", "flex", "justify-content", "flex-end", "padding", "4px 0 8px"], ["type", "button", "mjButton", "", "variant", "flat", "title", "Show/hide SQL filters help", 1, "filters-help-btn", 3, "click"], [1, "fa-solid", "fa-question-circle"], [1, "fa-solid", 3, "ngClass"], [1, "sql-panel-content"], [1, "sql-editor", 3, "change", "CompositionTokenClick", "language"], [1, "filters-help"], [1, "query-panel", 3, "Expanded"], [1, "panel-body"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "fa-solid", "fa-puzzle-piece"], [1, "detail-value"], [1, "fa-solid", "fa-bolt"], [1, "fa-solid", "fa-clipboard-list"], [1, "fa-solid", "fa-file-code"], ["name", "usesTemplate", 3, "ngModel"], [1, "fa-solid", "fa-calendar-plus"], [1, "fa-solid", "fa-calendar-check"], [3, "isVisibleChange", "onClose", "query", "parameters", "isVisible"], [3, "isVisibleChange", "onCategoryCreated", "isVisible"], [1, "fa-solid", "fa-spinner", "fa-spin", "saving-spinner"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModelChange", "ngModel"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], [1, "meta-dropdown", 3, "ValueChange", "BranchConfig", "Value", "SelectableTypes", "SelectionMode", "Placeholder", "EnableSearch", "Clearable"], ["name", "status", "TextField", "text", "ValueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], [1, "status-pill"], [1, "fa-solid"], ["name", "description", "rows", "2", "placeholder", "Enter query description...", 1, "mj-input", "query-description-input", 3, "ngModel"], [1, "query-description-text"], ["name", "description", "rows", "2", "placeholder", "Enter query description...", 1, "mj-input", "query-description-input", 3, "ngModelChange", "ngModel"], [1, "status-warning-banner"], [1, "panel-title-row"], [1, "panel-title"], [1, "fa-solid", "fa-code", "panel-icon", "sql-icon"], [1, "panel-badge", "defined"], [1, "filters-help-title"], [1, "fa-solid", "fa-filter"], [1, "filters-grid"], [1, "filter-card"], [1, "filter-name"], [1, "filter-description"], [1, "filter-syntax"], [1, "filter-notes"], [1, "technical-description-view"], [1, "fa-solid", "fa-book", "panel-icon"], ["name", "technicalDescription", "rows", "8", "placeholder", "Technical documentation of the query logic, performance considerations, and parameter usage. Supports markdown and mermaid diagrams.", 1, "mj-input", "technical-description-textarea", 3, "ngModelChange", "ngModel"], [1, "technical-description-preview"], [1, "preview-label"], [1, "fa-solid", "fa-eye"], [3, "data", "enableMermaid", "enableHighlight", "enableCollapsibleHeadings", "enableSmartypants"], [1, "panel-loading"], [1, "fa-solid", "fa-sliders", "panel-icon"], [1, "panel-badge", "count"], ["text", "Loading parameters..."], [1, "empty-state"], [1, "fa-solid", "fa-sliders", "empty-state-icon"], [1, "empty-state-title"], [1, "empty-state-text"], ["type", "button", 1, "add-item-btn"], ["type", "button", 1, "add-item-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "panel-toolbar"], [1, "card-grid"], [1, "item-card", 3, "required"], [1, "item-card", 3, "click"], [1, "item-card-header"], [1, "item-name"], [1, "fa-solid", "fa-at", "item-name-icon", "param-icon"], [1, "item-badges"], [1, "item-badge", "required"], [1, "item-card-body"], [1, "item-description"], [1, "item-meta"], [1, "meta-tag"], [1, "item-actions"], [1, "meta-code"], [1, "item-actions", 3, "click"], ["type", "button", "title", "Edit parameter", 1, "item-action-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["type", "button", "title", "Delete parameter", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-table", "panel-icon"], ["text", "Loading fields..."], [1, "fa-solid", "fa-table", "empty-state-icon"], [1, "item-card"], [1, "fa-solid", "fa-columns", "item-name-icon", "field-icon"], [1, "item-badge", "type"], [1, "item-badge", "sequence"], [1, "fa-solid", "fa-code"], [1, "item-card-actions"], ["type", "button", "title", "Delete field", 1, "item-action-btn", "delete", 3, "click"], [1, "dependents-description"], [1, "item-card", "dependent-card"], [1, "fa-solid", "fa-arrow-left", "panel-icon", "dependents-icon"], [1, "item-card", "dependent-card", 3, "click"], [1, "fa-solid", "fa-arrow-left", "item-name-icon", "dependent-query-icon"], [1, "item-card-footer"], [1, "open-link"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-database", "panel-icon"], ["text", "Loading entities..."], [1, "fa-solid", "fa-database", "empty-state-icon"], [1, "fa-solid", "fa-table", "item-name-icon", "entity-icon"], [1, "entity-dropdown-wrapper"], ["TextField", "text", "ValueField", "id", "Placeholder", "Select entity...", 1, "entity-dropdown", 3, "ngModelChange", "ngModel", "name", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-database"], ["type", "button", "title", "Delete entity", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-info-circle", "panel-icon"], ["name", "reusable", 3, "ngModelChange", "ngModel"], [1, "detail-hint"], [1, "detail-tag", "positive"], [1, "detail-tag", "neutral"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-times"], ["name", "cacheEnabled", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-clock"], ["type", "number", "name", "cacheTTLMinutes", "min", "1", "placeholder", "Default", 1, "mj-input", "detail-input-narrow", 3, "ngModelChange", "ngModel"], ["name", "auditQueryRuns", 3, "ngModelChange", "ngModel"], ["name", "usesTemplate", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-shield-alt", "panel-icon"], ["text", "Loading permissions..."], [1, "fa-solid", "fa-shield-alt", "empty-state-icon"], [3, "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], [1, "permissions-list"], [1, "permission-card"], [1, "fa-solid", "fa-users", "permission-icon"], [1, "permission-info"], [1, "permission-role"], [1, "permission-type"], [1, "permission-badge"]], template: function MJQueryFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2044
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Template, 89, 39);
2054
2045
  } if (rf & 2) {
2055
- i0.ɵɵadvance();
2056
- i0.ɵɵconditional(ctx.record ? 1 : -1);
2057
- } }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinValidator, i2.NgModel, i2.NgForm, i3.MJButtonDirective, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i3.MJDropdownComponent, i3.MJSwitchComponent, i4.MjFormToolbarComponent, i4.ExplorerEntityDataGridComponent, i5.CodeEditorComponent, i6.LoadingComponent, i7.MarkdownComponent, i8.TreeDropdownComponent, i9.QueryRunDialogComponent, i10.QueryCategoryDialogComponent], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\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: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\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.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@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: var(--mj-bg-surface);\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: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\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: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\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: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\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: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\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 var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\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 var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\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: var(--mj-status-warning);\n color: var(--mj-text-primary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-text-muted);\n}", "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.record-form[_ngcontent-%COMP%] {\n min-height: 0 !important;\n}\n\n\n\n\n\n\n.saving-overlay[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.6;\n}\n\n\n\n\n\n\n.query-header[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input[_ngcontent-%COMP%] {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n\n\n.query-meta-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown[_ngcontent-%COMP%] {\n min-width: 200px;\n}\n\n.status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n}\n\n\n\n.query-description-row[_ngcontent-%COMP%] {\n margin-top: 2px;\n}\n\n.query-description-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.query-description-text[_ngcontent-%COMP%] {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n\n\n\n\n\n.status-warning-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n\n\n\n.query-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n\n\n\n.query-panel[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n\n\n\n\n\n.panel-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 16px 0;\n}\n\n.panel-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n\n\n\n\n\n.sql-panel-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor[_ngcontent-%COMP%] {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n\n\n.filters-help[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n\n\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.item-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n}\n\n.item-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n\n\n.item-actions[_ngcontent-%COMP%] {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.item-card-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n\n\n.entity-dropdown-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow[_ngcontent-%COMP%] {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.permissions-list[_ngcontent-%COMP%] {\n padding: 0 20px;\n}\n\n.permission-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon[_ngcontent-%COMP%] {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.permission-role[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n\n\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n\n\n\n\n\n.add-item-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n\n\n\n\n\n.badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n\n\n\n.technical-description-textarea[_ngcontent-%COMP%] {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n\n\n.dependents-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.dependents-description[_ngcontent-%COMP%] {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card[_ngcontent-%COMP%] {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer[_ngcontent-%COMP%] {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover .open-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary-hover);\n}"] }); }
2046
+ i0.ɵɵconditional(ctx.record ? 0 : -1);
2047
+ } }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinValidator, i2.NgModel, i2.NgForm, i3.MJButtonDirective, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i3.MJDropdownComponent, i3.MJSwitchComponent, i4.MjRecordFormContainerComponent, i4.ExplorerEntityDataGridComponent, i5.CodeEditorComponent, i6.LoadingComponent, i7.MarkdownComponent, i8.TreeDropdownComponent, i9.QueryRunDialogComponent, i10.QueryCategoryDialogComponent], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\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: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\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.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@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: var(--mj-bg-surface);\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: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\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: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\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: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\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: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\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 var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\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 var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\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: var(--mj-status-warning);\n color: var(--mj-text-primary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-text-muted);\n}", "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.record-form[_ngcontent-%COMP%] {\n min-height: 0 !important;\n}\n\n\n\n\n\n\n.saving-overlay[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.6;\n}\n\n\n\n\n\n\n.query-header[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input[_ngcontent-%COMP%] {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n\n\n.query-meta-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown[_ngcontent-%COMP%] {\n min-width: 200px;\n}\n\n.status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n}\n\n\n\n.query-description-row[_ngcontent-%COMP%] {\n margin-top: 2px;\n}\n\n.query-description-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.query-description-text[_ngcontent-%COMP%] {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n\n\n\n\n\n.status-warning-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n\n\n\n.query-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n\n\n\n.query-panel[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n\n\n\n\n\n.panel-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 16px 0;\n}\n\n.panel-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n\n\n\n\n\n.sql-panel-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor[_ngcontent-%COMP%] {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n\n\n.filters-help[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n\n\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.item-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n}\n\n.item-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n\n\n.item-actions[_ngcontent-%COMP%] {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.item-card-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n\n\n.entity-dropdown-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow[_ngcontent-%COMP%] {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.permissions-list[_ngcontent-%COMP%] {\n padding: 0 20px;\n}\n\n.permission-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon[_ngcontent-%COMP%] {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.permission-role[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n\n\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n\n\n\n\n\n.add-item-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n\n\n\n\n\n.badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n\n\n\n.technical-description-textarea[_ngcontent-%COMP%] {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n\n\n.dependents-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.dependents-description[_ngcontent-%COMP%] {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card[_ngcontent-%COMP%] {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer[_ngcontent-%COMP%] {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover .open-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary-hover);\n}"] }); }
2058
2048
  };
2059
2049
  MJQueryFormComponentExtended = __decorate([
2060
2050
  RegisterClass(BaseFormComponent, 'MJ: Queries')
@@ -2062,7 +2052,7 @@ MJQueryFormComponentExtended = __decorate([
2062
2052
  export { MJQueryFormComponentExtended };
2063
2053
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJQueryFormComponentExtended, [{
2064
2054
  type: Component,
2065
- args: [{ standalone: false, selector: 'mj-query-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\" [Config]=\"ToolbarConfig\" [IsSaving]=\"IsSaving\"></mj-form-toolbar>\n\n <!-- Saving Overlay -->\n @if (IsSaving) {\n <div class=\"saving-overlay\">\n <i class=\"fa-solid fa-spinner fa-spin saving-spinner\"></i>\n <span>Saving...</span>\n </div>\n }\n\n <!-- Header Section -->\n <div class=\"query-header\" [class.content-saving]=\"IsSaving\">\n <div class=\"query-header-content\">\n <!-- Top Row: Name and Run Button -->\n <div class=\"query-header-top\">\n <!-- Left: Query Name -->\n <div class=\"query-name-section\">\n <i class=\"fa-solid fa-database query-title-icon\"></i>\n @if (EditMode) {\n <input class=\"mj-input query-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\" />\n } @else {\n <h4 class=\"query-name-display\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"query-header-actions\">\n @if (record.ID) {\n <button mjButton\n variant=\"primary\"\n [disabled]=\"EditMode || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\"\n class=\"run-query-btn\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n }\n </div>\n </div>\n\n <!-- Second Row: Category and Status -->\n <div class=\"query-meta-row\">\n <!-- Category -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Category</label>\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"CategoryIDAsKey\"\n [SelectableTypes]=\"'branch'\"\n [SelectionMode]=\"'single'\"\n [Placeholder]=\"'Select category...'\"\n [EnableSearch]=\"true\"\n [Clearable]=\"true\"\n (ValueChange)=\"OnCategoryTreeChange($event)\"\n class=\"meta-dropdown\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"meta-value\">{{ categoryPathDisplay || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Status</label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"meta-dropdown status-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"status-pill\"\n [style.background]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"></i>\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div class=\"query-description-row\">\n @if (EditMode) {\n <textarea class=\"mj-input query-description-input\"\n [(ngModel)]=\"record.Description\"\n name=\"description\"\n rows=\"2\"\n placeholder=\"Enter query description...\">\n </textarea>\n } @else {\n <p class=\"query-description-text\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Status Warning Banner for Non-Approved Queries -->\n @if (record.Status && record.Status !== 'Approved' && !EditMode) {\n <div class=\"status-warning-banner\" [style.border-left-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"\n [style.color]=\"getStatusBadgeColor()\"></i>\n <span>\n This query has status <strong>{{ record.Status }}</strong>. {{ getStatusBannerMessage() }}\n </span>\n </div>\n }\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" [class.content-saving]=\"IsSaving\">\n\n <!-- SQL Query Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"sqlPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title-row\">\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-code panel-icon sql-icon\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"panel-badge defined\">&mdash; Defined</span>\n }\n </span>\n </span>\n </ng-template>\n\n <div class=\"sql-panel-toolbar\" style=\"display: flex; justify-content: flex-end; padding: 4px 0 8px;\">\n <button type=\"button\"\n mjButton\n variant=\"flat\"\n (click)=\"toggleFiltersHelp()\"\n title=\"Show/hide SQL filters help\"\n class=\"filters-help-btn\">\n <i class=\"fa-solid fa-question-circle\"></i>\n <span>Filters Help</span>\n <i class=\"fa-solid\" [ngClass]=\"showFiltersHelp ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n </div>\n\n <div class=\"sql-panel-content\">\n <!-- Code Editor -->\n <mj-code-editor #sqlEditor\n (change)=\"onSQLChange($event)\"\n (CompositionTokenClick)=\"onCompositionTokenClick($event)\"\n [language]=\"'sql'\"\n class=\"sql-editor\">\n </mj-code-editor>\n\n <!-- SQL Filters Help (Below Editor) -->\n @if (showFiltersHelp) {\n <div class=\"filters-help\">\n <h6 class=\"filters-help-title\">\n <i class=\"fa-solid fa-filter\"></i> Available SQL Filters for Parameterized Queries\n </h6>\n <div class=\"filters-grid\">\n @for (filter of sqlFilters; track filter.name) {\n <div class=\"filter-card\">\n <div class=\"filter-name\">{{ filter.name }}</div>\n <div class=\"filter-description\">{{ filter.description }}</div>\n <div class=\"filter-syntax\">{{ filter.exampleSyntax }}</div>\n @if (filter.notes) {\n <div class=\"filter-notes\">{{ filter.notes }}</div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Technical Description Panel -->\n @if (record.TechnicalDescription || EditMode) {\n <mj-accordion-panel\n [(Expanded)]=\"technicalDescriptionPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-book panel-icon\"></i>\n Technical Description\n @if (record.TechnicalDescription) {\n <span class=\"panel-badge defined\">&mdash; Documented</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (EditMode) {\n <textarea class=\"mj-input technical-description-textarea\"\n [(ngModel)]=\"record.TechnicalDescription\"\n name=\"technicalDescription\"\n rows=\"8\"\n placeholder=\"Technical documentation of the query logic, performance considerations, and parameter usage. Supports markdown and mermaid diagrams.\">\n </textarea>\n @if (record.TechnicalDescription) {\n <div class=\"technical-description-preview\">\n <div class=\"preview-label\">\n <i class=\"fa-solid fa-eye\"></i> Preview\n </div>\n <mj-markdown\n [data]=\"record.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n }\n } @else {\n <div class=\"technical-description-view\">\n <mj-markdown\n [data]=\"record.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Parameters Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"parametersPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sliders panel-icon\"></i>\n Parameters\n @if (queryParameters.length > 0) {\n <span class=\"panel-badge count\">{{ queryParameters.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingParameters) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading parameters...\"></mj-loading>\n </div>\n } @else {\n @if (queryParameters.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sliders empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Parameters Defined</div>\n <div class=\"empty-state-text\">\n Add parameters to make your query dynamic and reusable.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Parameter\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add Parameter\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (param of queryParameters; track param.ID || $index) {\n <div class=\"item-card\" [class.required]=\"param.IsRequired\" (click)=\"editParameter(param)\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-at item-name-icon param-icon\"></i>\n {{ param.Name }}\n </div>\n <div class=\"item-badges\">\n @if (param.IsRequired) {\n <span class=\"item-badge required\">Required</span>\n }\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (param.Description) {\n <div class=\"item-description\">{{ param.Description }}</div>\n }\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <strong>Type:</strong> {{ param.Type || 'Text' }}\n </span>\n @if (param.DefaultValue) {\n <span class=\"meta-tag\">\n <strong>Default:</strong>\n <code class=\"meta-code\">{{ param.DefaultValue }}</code>\n </span>\n }\n </div>\n </div>\n @if (EditMode) {\n <div class=\"item-actions\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"item-action-btn\" (click)=\"editParameter(param)\" title=\"Edit parameter\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteParameter(param)\" title=\"Delete parameter\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Query Fields Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"fieldsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-table panel-icon\"></i>\n Fields\n @if (queryFields.length > 0) {\n <span class=\"panel-badge count\">{{ queryFields.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingFields) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading fields...\"></mj-loading>\n </div>\n } @else {\n @if (queryFields.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-table empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Fields Defined</div>\n <div class=\"empty-state-text\">\n Define output fields for your query results.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Field\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (field of queryFields; track field.ID) {\n <div class=\"item-card\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-columns item-name-icon field-icon\"></i>\n {{ field.Name }}\n </div>\n <div class=\"item-badges\">\n <span class=\"item-badge type\">{{ field.SQLBaseType }}</span>\n @if (field.Sequence) {\n <span class=\"item-badge sequence\">#{{ field.Sequence }}</span>\n }\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (field.Description) {\n <div class=\"item-description\">{{ field.Description }}</div>\n }\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-code\"></i> {{ field.SQLFullType || field.SQLBaseType }}\n </span>\n </div>\n </div>\n @if (EditMode) {\n <div class=\"item-card-actions\">\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteField(field)\" title=\"Delete field\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Dependent Queries Panel -->\n @if (record.IsSaved && DependentQueries.length > 0) {\n <mj-accordion-panel\n [(Expanded)]=\"dependentsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-arrow-left panel-icon dependents-icon\"></i>\n Dependent Queries\n <span class=\"panel-badge count\">{{ DependentQueries.length }}</span>\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n <div class=\"dependents-description\">\n These queries reference this query via <code>{{\"{{query:\\\"...\\\"}}\"}} </code> composition syntax.\n </div>\n <div class=\"card-grid\">\n @for (dep of DependentQueries; track dep.ID) {\n <div class=\"item-card dependent-card\" (click)=\"onDependentQueryClick(dep)\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-arrow-left item-name-icon dependent-query-icon\"></i>\n {{ dep.Query }}\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (dep.ReferencePath) {\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-link\"></i> {{ dep.ReferencePath }}\n </span>\n </div>\n }\n @if (dep.Alias) {\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <strong>Alias:</strong> <code class=\"meta-code\">{{ dep.Alias }}</code>\n </span>\n </div>\n }\n </div>\n <div class=\"item-card-footer\">\n <span class=\"open-link\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Query Entities Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"entitiesPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-database panel-icon\"></i>\n Entities\n @if (queryEntities.length > 0) {\n <span class=\"panel-badge count\">{{ queryEntities.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingEntities) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading entities...\"></mj-loading>\n </div>\n } @else {\n @if (queryEntities.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Entities Tracked</div>\n <div class=\"empty-state-text\">\n Track which entities this query uses for documentation.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Entity\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add Entity\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (entity of queryEntities; track entity.ID) {\n <div class=\"item-card\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-table item-name-icon entity-icon\"></i>\n {{ entity.Entity || 'Select Entity...' }}\n </div>\n @if (EditMode) {\n <div class=\"entity-dropdown-wrapper\">\n <mj-dropdown\n [(ngModel)]=\"entity.EntityID\"\n [name]=\"'entity_' + entity.ID\"\n [Data]=\"getEntityOptions()\"\n TextField=\"text\"\n ValueField=\"id\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"Select entity...\"\n class=\"entity-dropdown\">\n </mj-dropdown>\n </div>\n }\n </div>\n @if (!EditMode && entity.Entity) {\n <div class=\"item-card-body\">\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-database\"></i> Data Source\n </span>\n </div>\n </div>\n }\n @if (EditMode) {\n <div class=\"item-card-actions\">\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteEntity(entity)\" title=\"Delete entity\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Details Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"detailsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle panel-icon\"></i>\n Details\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n <div class=\"details-grid\">\n <!-- Reusable -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-puzzle-piece\"></i> Reusable\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.Reusable\" name=\"reusable\"></mj-switch>\n <div class=\"detail-hint\">Allow other queries to reference this query using composition syntax</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.Reusable) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Reusable</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Not Reusable</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache Enabled -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-bolt\"></i> Cache Enabled\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.CacheEnabled\" name=\"cacheEnabled\"></mj-switch>\n <div class=\"detail-hint\">Cache query results in memory to reduce database load on repeated runs</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.CacheEnabled) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Caching On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Caching Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache TTL -->\n @if (record.CacheEnabled) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clock\"></i> Cache TTL (Minutes)\n </label>\n @if (EditMode) {\n <input class=\"mj-input detail-input-narrow\"\n type=\"number\"\n [(ngModel)]=\"record.CacheTTLMinutes\"\n name=\"cacheTTLMinutes\"\n min=\"1\"\n placeholder=\"Default\" />\n <div class=\"detail-hint\">How long cached results remain valid. Leave blank for default TTL.</div>\n } @else {\n <div class=\"detail-value\">{{ record.CacheTTLMinutes != null ? record.CacheTTLMinutes + ' min' : 'Default' }}</div>\n }\n </div>\n }\n\n <!-- Audit Query Runs -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clipboard-list\"></i> Audit Runs\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.AuditQueryRuns\" name=\"auditQueryRuns\"></mj-switch>\n <div class=\"detail-hint\">Log all executions of this query to the Audit Log for tracking and compliance</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.AuditQueryRuns) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Auditing On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Auditing Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></mj-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"permissionsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-alt panel-icon\"></i>\n Permissions\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingPermissions) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading permissions...\"></mj-loading>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Permissions Set</div>\n <div class=\"empty-state-text\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Query Permissions','QueryID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Query Permissions')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"permissions-list\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\">\n <i class=\"fa-solid fa-users permission-icon\"></i>\n <div class=\"permission-info\">\n <div class=\"permission-role\">{{ permission.Role }}</div>\n <div class=\"permission-type\">Role Permission</div>\n </div>\n <span class=\"permission-badge\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n </div>\n </form>\n\n <!-- Query Run Dialog -->\n <mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n </mj-query-run-dialog>\n\n <!-- Category Creation Dialog -->\n <mj-query-category-dialog\n [(isVisible)]=\"showCategoryDialog\"\n (onCategoryCreated)=\"onCategoryCreated($event)\">\n </mj-query-category-dialog>\n }\n</div>\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\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: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\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.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@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: var(--mj-bg-surface);\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: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\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: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\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: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\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: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\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 var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\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 var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\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: var(--mj-status-warning);\n color: var(--mj-text-primary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-text-muted);\n}\n", "/* Override shared form-styles to enable flex layout */\n:host {\n display: block;\n height: 100%;\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/* ========================================\n Saving Overlay\n ======================================== */\n\n.saving-overlay {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving {\n pointer-events: none;\n opacity: 0.6;\n}\n\n/* ========================================\n Header Section \u2014 matches Query Browser gradient\n ======================================== */\n\n.query-header {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn {\n white-space: nowrap;\n}\n\n/* Meta row (category + status) */\n.query-meta-row {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown {\n min-width: 200px;\n}\n\n.status-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill i {\n font-size: var(--mj-text-xs);\n}\n\n/* Description row */\n.query-description-row {\n margin-top: 2px;\n}\n\n.query-description-input {\n width: 100%;\n}\n\n.query-description-text {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n/* ========================================\n Status Warning Banner\n ======================================== */\n\n.status-warning-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner i {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner strong {\n font-weight: 600;\n}\n\n/* ========================================\n Main Content Area\n ======================================== */\n\n.query-content {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n/* ========================================\n Accordion Panel Overrides \u2014 Modern Style\n ======================================== */\n\n.query-panel {\n margin-bottom: 12px;\n}\n\n::ng-deep .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n::ng-deep .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n::ng-deep .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n::ng-deep .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n::ng-deep .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n/* ========================================\n Panel Title & Badges\n ======================================== */\n\n.panel-title-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon {\n color: var(--mj-brand-primary);\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n/* ========================================\n Panel Body & Loading\n ======================================== */\n\n.panel-body {\n padding: 16px 0;\n}\n\n.panel-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n/* ========================================\n SQL Panel\n ======================================== */\n\n.sql-panel-content {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n/* Filters Help */\n.filters-help {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n/* ========================================\n Card Grid (Parameters, Fields, Entities)\n ======================================== */\n\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon {\n color: var(--mj-status-success);\n}\n\n.item-badges {\n display: flex;\n gap: 6px;\n}\n\n.item-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description {\n margin-bottom: 8px;\n}\n\n.item-meta {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n/* Card actions (edit/delete) */\n.item-actions {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card:hover .item-actions {\n opacity: 1;\n}\n\n.item-card-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n/* Entity dropdown in card */\n.entity-dropdown-wrapper {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown {\n width: 100%;\n}\n\n/* ========================================\n Details Grid\n ======================================== */\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Permissions\n ======================================== */\n\n.permissions-list {\n padding: 0 20px;\n}\n\n.permission-card {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info {\n flex: 1;\n}\n\n.permission-role {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n/* ========================================\n Buttons\n ======================================== */\n\n.add-item-btn {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n/* ========================================\n Badge (reused across components)\n ======================================== */\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* ========================================\n Technical Description Panel\n ======================================== */\n\n.technical-description-textarea {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n/* Dependent Queries */\n.dependents-icon {\n color: var(--mj-status-warning);\n}\n\n.dependents-description {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description code {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card:hover .open-link {\n color: var(--mj-brand-primary-hover);\n}\n"] }]
2055
+ args: [{ standalone: false, selector: 'mj-query-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"ToolbarConfig\"\n [IsSaving]=\"IsSaving\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n\n <!-- Saving Overlay -->\n @if (IsSaving) {\n <div class=\"saving-overlay\">\n <i class=\"fa-solid fa-spinner fa-spin saving-spinner\"></i>\n <span>Saving...</span>\n </div>\n }\n\n <!-- Header Section -->\n <div class=\"query-header\" [class.content-saving]=\"IsSaving\">\n <div class=\"query-header-content\">\n <!-- Top Row: Name and Run Button -->\n <div class=\"query-header-top\">\n <!-- Left: Query Name -->\n <div class=\"query-name-section\">\n <i class=\"fa-solid fa-database query-title-icon\"></i>\n @if (EditMode) {\n <input class=\"mj-input query-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\" />\n } @else {\n <h4 class=\"query-name-display\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"query-header-actions\">\n @if (record.ID) {\n <button mjButton\n variant=\"primary\"\n [disabled]=\"EditMode || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\"\n class=\"run-query-btn\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n }\n </div>\n </div>\n\n <!-- Second Row: Category and Status -->\n <div class=\"query-meta-row\">\n <!-- Category -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Category</label>\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"CategoryIDAsKey\"\n [SelectableTypes]=\"'branch'\"\n [SelectionMode]=\"'single'\"\n [Placeholder]=\"'Select category...'\"\n [EnableSearch]=\"true\"\n [Clearable]=\"true\"\n (ValueChange)=\"OnCategoryTreeChange($event)\"\n class=\"meta-dropdown\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"meta-value\">{{ categoryPathDisplay || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Status</label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"meta-dropdown status-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"status-pill\"\n [style.background]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"></i>\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div class=\"query-description-row\">\n @if (EditMode) {\n <textarea class=\"mj-input query-description-input\"\n [(ngModel)]=\"record.Description\"\n name=\"description\"\n rows=\"2\"\n placeholder=\"Enter query description...\">\n </textarea>\n } @else {\n <p class=\"query-description-text\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Status Warning Banner for Non-Approved Queries -->\n @if (record.Status && record.Status !== 'Approved' && !EditMode) {\n <div class=\"status-warning-banner\" [style.border-left-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"\n [style.color]=\"getStatusBadgeColor()\"></i>\n <span>\n This query has status <strong>{{ record.Status }}</strong>. {{ getStatusBannerMessage() }}\n </span>\n </div>\n }\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" [class.content-saving]=\"IsSaving\">\n\n <!-- SQL Query Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"sqlPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title-row\">\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-code panel-icon sql-icon\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"panel-badge defined\">&mdash; Defined</span>\n }\n </span>\n </span>\n </ng-template>\n\n <div class=\"sql-panel-toolbar\" style=\"display: flex; justify-content: flex-end; padding: 4px 0 8px;\">\n <button type=\"button\"\n mjButton\n variant=\"flat\"\n (click)=\"toggleFiltersHelp()\"\n title=\"Show/hide SQL filters help\"\n class=\"filters-help-btn\">\n <i class=\"fa-solid fa-question-circle\"></i>\n <span>Filters Help</span>\n <i class=\"fa-solid\" [ngClass]=\"showFiltersHelp ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n </div>\n\n <div class=\"sql-panel-content\">\n <!-- Code Editor -->\n <mj-code-editor #sqlEditor\n (change)=\"onSQLChange($event)\"\n (CompositionTokenClick)=\"onCompositionTokenClick($event)\"\n [language]=\"'sql'\"\n class=\"sql-editor\">\n </mj-code-editor>\n\n <!-- SQL Filters Help (Below Editor) -->\n @if (showFiltersHelp) {\n <div class=\"filters-help\">\n <h6 class=\"filters-help-title\">\n <i class=\"fa-solid fa-filter\"></i> Available SQL Filters for Parameterized Queries\n </h6>\n <div class=\"filters-grid\">\n @for (filter of sqlFilters; track filter.name) {\n <div class=\"filter-card\">\n <div class=\"filter-name\">{{ filter.name }}</div>\n <div class=\"filter-description\">{{ filter.description }}</div>\n <div class=\"filter-syntax\">{{ filter.exampleSyntax }}</div>\n @if (filter.notes) {\n <div class=\"filter-notes\">{{ filter.notes }}</div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n\n <!-- Technical Description Panel -->\n @if (record.TechnicalDescription || EditMode) {\n <mj-accordion-panel\n [(Expanded)]=\"technicalDescriptionPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-book panel-icon\"></i>\n Technical Description\n @if (record.TechnicalDescription) {\n <span class=\"panel-badge defined\">&mdash; Documented</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (EditMode) {\n <textarea class=\"mj-input technical-description-textarea\"\n [(ngModel)]=\"record.TechnicalDescription\"\n name=\"technicalDescription\"\n rows=\"8\"\n placeholder=\"Technical documentation of the query logic, performance considerations, and parameter usage. Supports markdown and mermaid diagrams.\">\n </textarea>\n @if (record.TechnicalDescription) {\n <div class=\"technical-description-preview\">\n <div class=\"preview-label\">\n <i class=\"fa-solid fa-eye\"></i> Preview\n </div>\n <mj-markdown\n [data]=\"record.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n }\n } @else {\n <div class=\"technical-description-view\">\n <mj-markdown\n [data]=\"record.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Parameters Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"parametersPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sliders panel-icon\"></i>\n Parameters\n @if (queryParameters.length > 0) {\n <span class=\"panel-badge count\">{{ queryParameters.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingParameters) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading parameters...\"></mj-loading>\n </div>\n } @else {\n @if (queryParameters.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sliders empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Parameters Defined</div>\n <div class=\"empty-state-text\">\n Add parameters to make your query dynamic and reusable.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Parameter\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add Parameter\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (param of queryParameters; track param.ID || $index) {\n <div class=\"item-card\" [class.required]=\"param.IsRequired\" (click)=\"editParameter(param)\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-at item-name-icon param-icon\"></i>\n {{ param.Name }}\n </div>\n <div class=\"item-badges\">\n @if (param.IsRequired) {\n <span class=\"item-badge required\">Required</span>\n }\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (param.Description) {\n <div class=\"item-description\">{{ param.Description }}</div>\n }\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <strong>Type:</strong> {{ param.Type || 'Text' }}\n </span>\n @if (param.DefaultValue) {\n <span class=\"meta-tag\">\n <strong>Default:</strong>\n <code class=\"meta-code\">{{ param.DefaultValue }}</code>\n </span>\n }\n </div>\n </div>\n @if (EditMode) {\n <div class=\"item-actions\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"item-action-btn\" (click)=\"editParameter(param)\" title=\"Edit parameter\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteParameter(param)\" title=\"Delete parameter\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Query Fields Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"fieldsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-table panel-icon\"></i>\n Fields\n @if (queryFields.length > 0) {\n <span class=\"panel-badge count\">{{ queryFields.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingFields) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading fields...\"></mj-loading>\n </div>\n } @else {\n @if (queryFields.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-table empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Fields Defined</div>\n <div class=\"empty-state-text\">\n Define output fields for your query results.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Field\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (field of queryFields; track field.ID) {\n <div class=\"item-card\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-columns item-name-icon field-icon\"></i>\n {{ field.Name }}\n </div>\n <div class=\"item-badges\">\n <span class=\"item-badge type\">{{ field.SQLBaseType }}</span>\n @if (field.Sequence) {\n <span class=\"item-badge sequence\">#{{ field.Sequence }}</span>\n }\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (field.Description) {\n <div class=\"item-description\">{{ field.Description }}</div>\n }\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-code\"></i> {{ field.SQLFullType || field.SQLBaseType }}\n </span>\n </div>\n </div>\n @if (EditMode) {\n <div class=\"item-card-actions\">\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteField(field)\" title=\"Delete field\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Dependent Queries Panel -->\n @if (record.IsSaved && DependentQueries.length > 0) {\n <mj-accordion-panel\n [(Expanded)]=\"dependentsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-arrow-left panel-icon dependents-icon\"></i>\n Dependent Queries\n <span class=\"panel-badge count\">{{ DependentQueries.length }}</span>\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n <div class=\"dependents-description\">\n These queries reference this query via <code>{{\"{{query:\\\"...\\\"}}\"}} </code> composition syntax.\n </div>\n <div class=\"card-grid\">\n @for (dep of DependentQueries; track dep.ID) {\n <div class=\"item-card dependent-card\" (click)=\"onDependentQueryClick(dep)\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-arrow-left item-name-icon dependent-query-icon\"></i>\n {{ dep.Query }}\n </div>\n </div>\n <div class=\"item-card-body\">\n @if (dep.ReferencePath) {\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-link\"></i> {{ dep.ReferencePath }}\n </span>\n </div>\n }\n @if (dep.Alias) {\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <strong>Alias:</strong> <code class=\"meta-code\">{{ dep.Alias }}</code>\n </span>\n </div>\n }\n </div>\n <div class=\"item-card-footer\">\n <span class=\"open-link\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Query Entities Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"entitiesPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-database panel-icon\"></i>\n Entities\n @if (queryEntities.length > 0) {\n <span class=\"panel-badge count\">{{ queryEntities.length }}</span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingEntities) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading entities...\"></mj-loading>\n </div>\n } @else {\n @if (queryEntities.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Entities Tracked</div>\n <div class=\"empty-state-text\">\n Track which entities this query uses for documentation.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Entity\n </button>\n }\n </div>\n } @else {\n @if (EditMode) {\n <div class=\"panel-toolbar\">\n <button type=\"button\" class=\"add-item-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add Entity\n </button>\n </div>\n }\n <div class=\"card-grid\">\n @for (entity of queryEntities; track entity.ID) {\n <div class=\"item-card\">\n <div class=\"item-card-header\">\n <div class=\"item-name\">\n <i class=\"fa-solid fa-table item-name-icon entity-icon\"></i>\n {{ entity.Entity || 'Select Entity...' }}\n </div>\n @if (EditMode) {\n <div class=\"entity-dropdown-wrapper\">\n <mj-dropdown\n [(ngModel)]=\"entity.EntityID\"\n [name]=\"'entity_' + entity.ID\"\n [Data]=\"getEntityOptions()\"\n TextField=\"text\"\n ValueField=\"id\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"Select entity...\"\n class=\"entity-dropdown\">\n </mj-dropdown>\n </div>\n }\n </div>\n @if (!EditMode && entity.Entity) {\n <div class=\"item-card-body\">\n <div class=\"item-meta\">\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-database\"></i> Data Source\n </span>\n </div>\n </div>\n }\n @if (EditMode) {\n <div class=\"item-card-actions\">\n <button type=\"button\" class=\"item-action-btn delete\" (click)=\"deleteEntity(entity)\" title=\"Delete entity\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Details Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"detailsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle panel-icon\"></i>\n Details\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n <div class=\"details-grid\">\n <!-- Reusable -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-puzzle-piece\"></i> Reusable\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.Reusable\" name=\"reusable\"></mj-switch>\n <div class=\"detail-hint\">Allow other queries to reference this query using composition syntax</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.Reusable) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Reusable</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Not Reusable</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache Enabled -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-bolt\"></i> Cache Enabled\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.CacheEnabled\" name=\"cacheEnabled\"></mj-switch>\n <div class=\"detail-hint\">Cache query results in memory to reduce database load on repeated runs</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.CacheEnabled) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Caching On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Caching Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache TTL -->\n @if (record.CacheEnabled) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clock\"></i> Cache TTL (Minutes)\n </label>\n @if (EditMode) {\n <input class=\"mj-input detail-input-narrow\"\n type=\"number\"\n [(ngModel)]=\"record.CacheTTLMinutes\"\n name=\"cacheTTLMinutes\"\n min=\"1\"\n placeholder=\"Default\" />\n <div class=\"detail-hint\">How long cached results remain valid. Leave blank for default TTL.</div>\n } @else {\n <div class=\"detail-value\">{{ record.CacheTTLMinutes != null ? record.CacheTTLMinutes + ' min' : 'Default' }}</div>\n }\n </div>\n }\n\n <!-- Audit Query Runs -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clipboard-list\"></i> Audit Runs\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.AuditQueryRuns\" name=\"auditQueryRuns\"></mj-switch>\n <div class=\"detail-hint\">Log all executions of this query to the Audit Log for tracking and compliance</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.AuditQueryRuns) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Auditing On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Auditing Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></mj-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"permissionsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-alt panel-icon\"></i>\n Permissions\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingPermissions) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading permissions...\"></mj-loading>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Permissions Set</div>\n <div class=\"empty-state-text\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Query Permissions','QueryID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Query Permissions')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"permissions-list\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\">\n <i class=\"fa-solid fa-users permission-icon\"></i>\n <div class=\"permission-info\">\n <div class=\"permission-role\">{{ permission.Role }}</div>\n <div class=\"permission-type\">Role Permission</div>\n </div>\n <span class=\"permission-badge\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n </div>\n </form>\n</mj-record-form-container>\n\n<!-- Query Run Dialog -->\n<mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n</mj-query-run-dialog>\n\n<!-- Category Creation Dialog -->\n<mj-query-category-dialog\n [(isVisible)]=\"showCategoryDialog\"\n (onCategoryCreated)=\"onCategoryCreated($event)\">\n</mj-query-category-dialog>\n}\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\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: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\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.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@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: var(--mj-bg-surface);\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: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\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: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\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: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\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: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\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 var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\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 var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\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: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\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: var(--mj-status-warning);\n color: var(--mj-text-primary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-text-muted);\n}\n", "/* Override shared form-styles to enable flex layout */\n:host {\n display: block;\n height: 100%;\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/* ========================================\n Saving Overlay\n ======================================== */\n\n.saving-overlay {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving {\n pointer-events: none;\n opacity: 0.6;\n}\n\n/* ========================================\n Header Section \u2014 matches Query Browser gradient\n ======================================== */\n\n.query-header {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn {\n white-space: nowrap;\n}\n\n/* Meta row (category + status) */\n.query-meta-row {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown {\n min-width: 200px;\n}\n\n.status-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill i {\n font-size: var(--mj-text-xs);\n}\n\n/* Description row */\n.query-description-row {\n margin-top: 2px;\n}\n\n.query-description-input {\n width: 100%;\n}\n\n.query-description-text {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n/* ========================================\n Status Warning Banner\n ======================================== */\n\n.status-warning-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner i {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner strong {\n font-weight: 600;\n}\n\n/* ========================================\n Main Content Area\n ======================================== */\n\n.query-content {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n/* ========================================\n Accordion Panel Overrides \u2014 Modern Style\n ======================================== */\n\n.query-panel {\n margin-bottom: 12px;\n}\n\n::ng-deep .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n::ng-deep .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n::ng-deep .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n::ng-deep .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n::ng-deep .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n/* ========================================\n Panel Title & Badges\n ======================================== */\n\n.panel-title-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon {\n color: var(--mj-brand-primary);\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n/* ========================================\n Panel Body & Loading\n ======================================== */\n\n.panel-body {\n padding: 16px 0;\n}\n\n.panel-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n/* ========================================\n SQL Panel\n ======================================== */\n\n.sql-panel-content {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n/* Filters Help */\n.filters-help {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n/* ========================================\n Card Grid (Parameters, Fields, Entities)\n ======================================== */\n\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon {\n color: var(--mj-status-success);\n}\n\n.item-badges {\n display: flex;\n gap: 6px;\n}\n\n.item-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description {\n margin-bottom: 8px;\n}\n\n.item-meta {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n/* Card actions (edit/delete) */\n.item-actions {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card:hover .item-actions {\n opacity: 1;\n}\n\n.item-card-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n/* Entity dropdown in card */\n.entity-dropdown-wrapper {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown {\n width: 100%;\n}\n\n/* ========================================\n Details Grid\n ======================================== */\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Permissions\n ======================================== */\n\n.permissions-list {\n padding: 0 20px;\n}\n\n.permission-card {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info {\n flex: 1;\n}\n\n.permission-role {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n/* ========================================\n Buttons\n ======================================== */\n\n.add-item-btn {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n/* ========================================\n Badge (reused across components)\n ======================================== */\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* ========================================\n Technical Description Panel\n ======================================== */\n\n.technical-description-textarea {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n/* Dependent Queries */\n.dependents-icon {\n color: var(--mj-status-warning);\n}\n\n.dependents-description {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description code {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card:hover .open-link {\n color: var(--mj-brand-primary-hover);\n}\n"] }]
2066
2056
  }], null, { sqlEditor: [{
2067
2057
  type: ViewChild,
2068
2058
  args: ['sqlEditor']