@memberjunction/ng-core-entity-forms 5.22.0 → 5.24.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 (215) hide show
  1. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +4 -5
  2. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +55 -59
  4. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  5. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +0 -1
  6. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
  7. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +4 -5
  8. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +54 -71
  10. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  12. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1053 -1096
  13. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  14. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +2 -3
  15. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  16. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +39 -82
  17. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  18. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +4 -5
  19. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  20. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +28 -31
  21. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  22. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +4 -5
  23. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  24. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +15 -14
  25. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  26. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +4 -7
  27. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  28. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +77 -124
  29. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  30. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +2 -2
  31. package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
  32. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +10 -11
  33. package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
  34. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +4 -5
  35. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  36. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +18 -18
  37. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  38. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +4 -5
  39. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  40. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +59 -80
  41. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  42. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +4 -5
  43. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  44. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +23 -24
  45. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  46. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  47. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +862 -906
  48. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  49. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +4 -5
  50. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  51. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +448 -499
  52. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  53. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +2 -2
  54. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
  55. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +6 -11
  56. package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
  57. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +4 -5
  58. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
  59. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +16 -15
  60. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  61. package/dist/lib/custom/Actions/action-execution-log-form.component.js +160 -166
  62. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  63. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  64. package/dist/lib/custom/Actions/action-form.component.js +93 -94
  65. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  66. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +22 -0
  67. package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +1 -0
  68. package/dist/lib/custom/ContentSources/content-source-form.component.js +165 -0
  69. package/dist/lib/custom/ContentSources/content-source-form.component.js.map +1 -0
  70. package/dist/lib/custom/Entities/entity-form.component.js +2 -2
  71. package/dist/lib/custom/Lists/list-form.component.js +61 -63
  72. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  73. package/dist/lib/custom/Queries/query-category-dialog.component.js +33 -59
  74. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  75. package/dist/lib/custom/Queries/query-form.component.js +354 -360
  76. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  77. package/dist/lib/custom/Queries/query-run-dialog.component.js +62 -71
  78. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  79. package/dist/lib/custom/Templates/template-param-dialog.component.js +128 -124
  80. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  81. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +45 -22
  82. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Templates/template-params-grid.component.js +380 -384
  84. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  85. package/dist/lib/custom/Templates/templates-form.component.js +34 -36
  86. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  87. package/dist/lib/custom/Tests/test-form.component.js +8 -9
  88. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  89. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +4 -4
  90. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  91. package/dist/lib/custom/Tests/test-run-form.component.js +7 -7
  92. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  93. package/dist/lib/custom/Tests/test-suite-form.component.js +6 -7
  94. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  95. package/dist/lib/custom/Tests/test-suite-run-form.component.js +6 -7
  96. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  97. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -409
  98. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  99. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  100. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +1 -1
  101. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  102. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  103. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +74 -63
  104. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  105. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +10 -10
  106. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  107. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  108. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +352 -332
  109. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  110. package/dist/lib/custom/custom-forms.module.d.ts +25 -29
  111. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  112. package/dist/lib/custom/custom-forms.module.js +57 -82
  113. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  114. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +4 -5
  115. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  116. package/dist/lib/custom/shared/entity-selector-dialog.component.js +59 -66
  117. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  118. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  119. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +176 -156
  120. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  121. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts +10 -0
  122. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts.map +1 -0
  123. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +65 -0
  124. package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -0
  125. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts +10 -0
  126. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts.map +1 -0
  127. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +89 -0
  128. package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -0
  129. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
  130. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +98 -44
  131. package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
  132. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  133. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +35 -17
  134. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.d.ts.map +1 -1
  136. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +79 -20
  137. package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
  138. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts +10 -0
  139. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts.map +1 -0
  140. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +73 -0
  141. package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -0
  142. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -6
  143. package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
  144. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.d.ts.map +1 -1
  145. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +49 -8
  146. package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts +10 -0
  148. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts.map +1 -0
  149. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +107 -0
  150. package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -0
  151. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts +10 -0
  152. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts.map +1 -0
  153. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +57 -0
  154. package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -0
  155. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
  156. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +71 -24
  157. package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.d.ts.map +1 -1
  159. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +43 -15
  160. package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
  161. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.d.ts.map +1 -1
  162. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +43 -17
  163. package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
  164. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +21 -11
  165. package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
  166. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +19 -13
  167. package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
  168. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.d.ts.map +1 -1
  169. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +7 -9
  170. package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  172. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +78 -60
  173. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  174. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.d.ts.map +1 -1
  175. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +24 -6
  176. package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
  177. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
  178. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +21 -9
  179. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
  180. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.d.ts.map +1 -1
  181. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +23 -5
  182. package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts +10 -0
  184. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts.map +1 -0
  185. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +77 -0
  186. package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -0
  187. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.d.ts.map +1 -1
  188. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +22 -4
  189. package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
  190. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
  191. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +139 -19
  192. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  193. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts +10 -0
  194. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts.map +1 -0
  195. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +67 -0
  196. package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -0
  197. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts +10 -0
  198. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts.map +1 -0
  199. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +65 -0
  200. package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -0
  201. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +10 -8
  202. package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  204. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +226 -154
  205. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  206. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
  207. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +41 -5
  208. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
  209. package/dist/lib/generated/generated-forms.module.d.ts +286 -279
  210. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  211. package/dist/lib/generated/generated-forms.module.js +192 -214
  212. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  213. package/dist/lib/shared/components/template-editor.component.js +14 -15
  214. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  215. package/package.json +34 -41
@@ -15,24 +15,21 @@ import { Subject } from 'rxjs';
15
15
  import * as i0 from "@angular/core";
16
16
  import * as i1 from "@angular/common";
17
17
  import * as i2 from "@angular/forms";
18
- import * as i3 from "@progress/kendo-angular-layout";
19
- import * as i4 from "@progress/kendo-angular-inputs";
20
- import * as i5 from "@progress/kendo-angular-dropdowns";
21
- import * as i6 from "@progress/kendo-angular-buttons";
22
- import * as i7 from "@memberjunction/ng-base-forms";
23
- import * as i8 from "@memberjunction/ng-code-editor";
24
- import * as i9 from "@memberjunction/ng-shared-generic";
25
- import * as i10 from "@memberjunction/ng-markdown";
26
- import * as i11 from "./query-run-dialog.component";
27
- import * as i12 from "./query-category-dialog.component";
18
+ import * as i3 from "@memberjunction/ng-ui-components";
19
+ import * as i4 from "@memberjunction/ng-base-forms";
20
+ import * as i5 from "@memberjunction/ng-code-editor";
21
+ import * as i6 from "@memberjunction/ng-shared-generic";
22
+ import * as i7 from "@memberjunction/ng-markdown";
23
+ import * as i8 from "./query-run-dialog.component";
24
+ import * as i9 from "./query-category-dialog.component";
28
25
  const _c0 = ["sqlEditor"];
29
26
  const _forTrack0 = ($index, $item) => $item.name;
30
27
  const _forTrack1 = ($index, $item) => $item.ID || $index;
31
28
  const _forTrack2 = ($index, $item) => $item.ID;
32
29
  function MJQueryFormComponentExtended_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
33
30
  const _r2 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "kendo-textbox", 41);
35
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_8_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.Name, $event) || (ctx_r2.record.Name = $event); return i0.ɵɵresetView($event); });
31
+ i0.ɵɵelementStart(0, "input", 45);
32
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_8_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); });
36
33
  i0.ɵɵelementEnd();
37
34
  } if (rf & 2) {
38
35
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -49,24 +46,24 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template(rf, c
49
46
  } }
50
47
  function MJQueryFormComponentExtended_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
51
48
  const _r4 = i0.ɵɵgetCurrentView();
52
- i0.ɵɵelementStart(0, "button", 42);
49
+ i0.ɵɵelementStart(0, "button", 46);
53
50
  i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.runQuery()); });
54
- i0.ɵɵelement(1, "i", 43);
51
+ i0.ɵɵelement(1, "i", 47);
55
52
  i0.ɵɵtext(2, " Run ");
56
53
  i0.ɵɵelementEnd();
57
54
  } if (rf & 2) {
58
55
  const ctx_r2 = i0.ɵɵnextContext(2);
59
- i0.ɵɵproperty("themeColor", "primary")("size", "large")("disabled", ctx_r2.EditMode || !ctx_r2.record.SQL || ctx_r2.record.SQL.trim().length === 0);
56
+ i0.ɵɵproperty("disabled", ctx_r2.EditMode || !ctx_r2.record.SQL || ctx_r2.record.SQL.trim().length === 0);
60
57
  } }
61
58
  function MJQueryFormComponentExtended_Conditional_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
62
59
  const _r5 = i0.ɵɵgetCurrentView();
63
- i0.ɵɵelementStart(0, "kendo-dropdownlist", 44);
64
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_16_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.CategoryID, $event) || (ctx_r2.record.CategoryID = $event); return i0.ɵɵresetView($event); });
60
+ i0.ɵɵelementStart(0, "mj-dropdown", 48);
61
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_16_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.CategoryID, $event) || (ctx_r2.record.CategoryID = $event); return i0.ɵɵresetView($event); });
65
62
  i0.ɵɵelementEnd();
66
63
  } if (rf & 2) {
67
64
  const ctx_r2 = i0.ɵɵnextContext(2);
68
65
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.CategoryID);
69
- i0.ɵɵproperty("data", ctx_r2.categoryOptions)("valuePrimitive", true);
66
+ i0.ɵɵproperty("Data", ctx_r2.categoryOptions)("ValuePrimitive", true);
70
67
  } }
71
68
  function MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
72
69
  i0.ɵɵelementStart(0, "span", 18);
@@ -79,17 +76,17 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template(rf,
79
76
  } }
80
77
  function MJQueryFormComponentExtended_Conditional_1_Conditional_21_Template(rf, ctx) { if (rf & 1) {
81
78
  const _r6 = i0.ɵɵgetCurrentView();
82
- i0.ɵɵelementStart(0, "kendo-dropdownlist", 45);
83
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_21_Template_kendo_dropdownlist_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); });
79
+ i0.ɵɵelementStart(0, "mj-dropdown", 49);
80
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_21_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); });
84
81
  i0.ɵɵelementEnd();
85
82
  } if (rf & 2) {
86
83
  const ctx_r2 = i0.ɵɵnextContext(2);
87
84
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Status);
88
- i0.ɵɵproperty("data", ctx_r2.statusOptions)("valuePrimitive", true);
85
+ i0.ɵɵproperty("Data", ctx_r2.statusOptions)("ValuePrimitive", true);
89
86
  } }
90
87
  function MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "span", 46);
92
- i0.ɵɵelement(1, "i", 47);
88
+ i0.ɵɵelementStart(0, "span", 50);
89
+ i0.ɵɵelement(1, "i", 51);
93
90
  i0.ɵɵtext(2);
94
91
  i0.ɵɵelementEnd();
95
92
  } if (rf & 2) {
@@ -102,16 +99,16 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template(rf,
102
99
  } }
103
100
  function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_1_Template(rf, ctx) { if (rf & 1) {
104
101
  const _r7 = i0.ɵɵgetCurrentView();
105
- i0.ɵɵelementStart(0, "kendo-textarea", 50);
106
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_1_Template_kendo_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); });
102
+ i0.ɵɵelementStart(0, "textarea", 54);
103
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_23_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); });
104
+ i0.ɵɵtext(1, " ");
107
105
  i0.ɵɵelementEnd();
108
106
  } if (rf & 2) {
109
107
  const ctx_r2 = i0.ɵɵnextContext(3);
110
108
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.Description);
111
- i0.ɵɵproperty("rows", 2);
112
109
  } }
113
110
  function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_2_Template(rf, ctx) { if (rf & 1) {
114
- i0.ɵɵelementStart(0, "p", 49);
111
+ i0.ɵɵelementStart(0, "p", 53);
115
112
  i0.ɵɵtext(1);
116
113
  i0.ɵɵelementEnd();
117
114
  } if (rf & 2) {
@@ -121,7 +118,7 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_2
121
118
  } }
122
119
  function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
123
120
  i0.ɵɵelementStart(0, "div", 21);
124
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_1_Template, 1, 2, "kendo-textarea", 48)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_2_Template, 2, 1, "p", 49);
121
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_1_Template, 2, 1, "textarea", 52)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Conditional_2_Template, 2, 1, "p", 53);
125
122
  i0.ɵɵelementEnd();
126
123
  } if (rf & 2) {
127
124
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -129,8 +126,8 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_23_Template(rf,
129
126
  i0.ɵɵconditional(ctx_r2.EditMode ? 1 : 2);
130
127
  } }
131
128
  function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Template(rf, ctx) { if (rf & 1) {
132
- i0.ɵɵelementStart(0, "div", 51);
133
- i0.ɵɵelement(1, "i", 47);
129
+ i0.ɵɵelementStart(0, "div", 55);
130
+ i0.ɵɵelement(1, "i", 51);
134
131
  i0.ɵɵelementStart(2, "span");
135
132
  i0.ɵɵtext(3, " This query has status ");
136
133
  i0.ɵɵelementStart(4, "strong");
@@ -150,43 +147,31 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_24_Template(rf,
150
147
  i0.ɵɵtextInterpolate1(". ", ctx_r2.getStatusBannerMessage(), " ");
151
148
  } }
152
149
  function MJQueryFormComponentExtended_Conditional_1_ng_template_27_Conditional_4_Template(rf, ctx) { if (rf & 1) {
153
- i0.ɵɵelementStart(0, "span", 55);
154
- i0.ɵɵelement(1, "i", 59);
155
- i0.ɵɵtext(2, " Defined ");
150
+ i0.ɵɵelementStart(0, "span", 59);
151
+ i0.ɵɵtext(1, "\u2014 Defined");
156
152
  i0.ɵɵelementEnd();
157
153
  } }
158
154
  function MJQueryFormComponentExtended_Conditional_1_ng_template_27_Template(rf, ctx) { if (rf & 1) {
159
- const _r8 = i0.ɵɵgetCurrentView();
160
- i0.ɵɵelementStart(0, "span", 52)(1, "span", 53);
161
- i0.ɵɵelement(2, "i", 54);
155
+ i0.ɵɵelementStart(0, "span", 56)(1, "span", 57);
156
+ i0.ɵɵelement(2, "i", 58);
162
157
  i0.ɵɵtext(3, " SQL ");
163
- i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_1_ng_template_27_Conditional_4_Template, 3, 0, "span", 55);
164
- i0.ɵɵelementEnd();
165
- i0.ɵɵelementStart(5, "button", 56);
166
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_ng_template_27_Template_button_click_5_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.toggleFiltersHelp(); return i0.ɵɵresetView($event.stopPropagation()); });
167
- i0.ɵɵelement(6, "i", 57);
168
- i0.ɵɵelementStart(7, "span");
169
- i0.ɵɵtext(8, "Filters Help");
170
- i0.ɵɵelementEnd();
171
- i0.ɵɵelement(9, "i", 58);
158
+ i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_1_ng_template_27_Conditional_4_Template, 2, 0, "span", 59);
172
159
  i0.ɵɵelementEnd()();
173
160
  } if (rf & 2) {
174
161
  const ctx_r2 = i0.ɵɵnextContext(2);
175
162
  i0.ɵɵadvance(4);
176
163
  i0.ɵɵconditional(ctx_r2.record.SQL ? 4 : -1);
177
- i0.ɵɵadvance(5);
178
- i0.ɵɵproperty("ngClass", ctx_r2.showFiltersHelp ? "fa-chevron-up" : "fa-chevron-down");
179
164
  } }
180
- function MJQueryFormComponentExtended_Conditional_1_Conditional_31_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
165
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_37_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
181
166
  i0.ɵɵelementStart(0, "div", 67);
182
167
  i0.ɵɵtext(1);
183
168
  i0.ɵɵelementEnd();
184
169
  } if (rf & 2) {
185
- const filter_r9 = i0.ɵɵnextContext().$implicit;
170
+ const filter_r8 = i0.ɵɵnextContext().$implicit;
186
171
  i0.ɵɵadvance();
187
- i0.ɵɵtextInterpolate(filter_r9.notes);
172
+ i0.ɵɵtextInterpolate(filter_r8.notes);
188
173
  } }
189
- function MJQueryFormComponentExtended_Conditional_1_Conditional_31_For_6_Template(rf, ctx) { if (rf & 1) {
174
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_37_For_6_Template(rf, ctx) { if (rf & 1) {
190
175
  i0.ɵɵelementStart(0, "div", 63)(1, "div", 64);
191
176
  i0.ɵɵtext(2);
192
177
  i0.ɵɵelementEnd();
@@ -196,50 +181,49 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_31_For_6_Templat
196
181
  i0.ɵɵelementStart(5, "div", 66);
197
182
  i0.ɵɵtext(6);
198
183
  i0.ɵɵelementEnd();
199
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_31_For_6_Conditional_7_Template, 2, 1, "div", 67);
184
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_37_For_6_Conditional_7_Template, 2, 1, "div", 67);
200
185
  i0.ɵɵelementEnd();
201
186
  } if (rf & 2) {
202
- const filter_r9 = ctx.$implicit;
187
+ const filter_r8 = ctx.$implicit;
203
188
  i0.ɵɵadvance(2);
204
- i0.ɵɵtextInterpolate(filter_r9.name);
189
+ i0.ɵɵtextInterpolate(filter_r8.name);
205
190
  i0.ɵɵadvance(2);
206
- i0.ɵɵtextInterpolate(filter_r9.description);
191
+ i0.ɵɵtextInterpolate(filter_r8.description);
207
192
  i0.ɵɵadvance(2);
208
- i0.ɵɵtextInterpolate(filter_r9.exampleSyntax);
193
+ i0.ɵɵtextInterpolate(filter_r8.exampleSyntax);
209
194
  i0.ɵɵadvance();
210
- i0.ɵɵconditional(filter_r9.notes ? 7 : -1);
195
+ i0.ɵɵconditional(filter_r8.notes ? 7 : -1);
211
196
  } }
212
- function MJQueryFormComponentExtended_Conditional_1_Conditional_31_Template(rf, ctx) { if (rf & 1) {
213
- i0.ɵɵelementStart(0, "div", 28)(1, "h6", 60);
197
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_37_Template(rf, ctx) { if (rf & 1) {
198
+ i0.ɵɵelementStart(0, "div", 32)(1, "h6", 60);
214
199
  i0.ɵɵelement(2, "i", 61);
215
200
  i0.ɵɵtext(3, " Available SQL Filters for Parameterized Queries ");
216
201
  i0.ɵɵelementEnd();
217
202
  i0.ɵɵelementStart(4, "div", 62);
218
- i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_31_For_6_Template, 8, 4, "div", 63, _forTrack0);
203
+ i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_37_For_6_Template, 8, 4, "div", 63, _forTrack0);
219
204
  i0.ɵɵelementEnd()();
220
205
  } if (rf & 2) {
221
206
  const ctx_r2 = i0.ɵɵnextContext(2);
222
207
  i0.ɵɵadvance(5);
223
208
  i0.ɵɵrepeater(ctx_r2.sqlFilters);
224
209
  } }
225
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
226
- i0.ɵɵelementStart(0, "span", 55);
227
- i0.ɵɵelement(1, "i", 59);
228
- i0.ɵɵtext(2, " Documented ");
210
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
211
+ i0.ɵɵelementStart(0, "span", 59);
212
+ i0.ɵɵtext(1, "\u2014 Documented");
229
213
  i0.ɵɵelementEnd();
230
214
  } }
231
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_ng_template_1_Template(rf, ctx) { if (rf & 1) {
232
- i0.ɵɵelementStart(0, "span", 53);
215
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_ng_template_1_Template(rf, ctx) { if (rf & 1) {
216
+ i0.ɵɵelementStart(0, "span", 57);
233
217
  i0.ɵɵelement(1, "i", 69);
234
218
  i0.ɵɵtext(2, " Technical Description ");
235
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_32_ng_template_1_Conditional_3_Template, 3, 0, "span", 55);
219
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_38_ng_template_1_Conditional_3_Template, 2, 0, "span", 59);
236
220
  i0.ɵɵelementEnd();
237
221
  } if (rf & 2) {
238
222
  const ctx_r2 = i0.ɵɵnextContext(3);
239
223
  i0.ɵɵadvance(3);
240
224
  i0.ɵɵconditional(ctx_r2.record.TechnicalDescription ? 3 : -1);
241
225
  } }
242
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
226
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
243
227
  i0.ɵɵelementStart(0, "div", 71)(1, "div", 72);
244
228
  i0.ɵɵelement(2, "i", 73);
245
229
  i0.ɵɵtext(3, " Preview ");
@@ -251,20 +235,20 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3
251
235
  i0.ɵɵadvance(4);
252
236
  i0.ɵɵproperty("data", ctx_r2.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
253
237
  } }
254
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
255
- const _r11 = i0.ɵɵgetCurrentView();
256
- i0.ɵɵelementStart(0, "kendo-textarea", 70);
257
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3_Template_kendo_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.record.TechnicalDescription, $event) || (ctx_r2.record.TechnicalDescription = $event); return i0.ɵɵresetView($event); });
238
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_3_Template(rf, ctx) { if (rf & 1) {
239
+ const _r10 = i0.ɵɵgetCurrentView();
240
+ i0.ɵɵelementStart(0, "textarea", 70);
241
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_38_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); });
242
+ i0.ɵɵtext(1, " ");
258
243
  i0.ɵɵelementEnd();
259
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3_Conditional_1_Template, 5, 5, "div", 71);
244
+ i0.ɵɵconditionalCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_3_Conditional_2_Template, 5, 5, "div", 71);
260
245
  } if (rf & 2) {
261
246
  const ctx_r2 = i0.ɵɵnextContext(3);
262
247
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.TechnicalDescription);
263
- i0.ɵɵproperty("rows", 8);
264
- i0.ɵɵadvance();
265
- i0.ɵɵconditional(ctx_r2.record.TechnicalDescription ? 1 : -1);
248
+ i0.ɵɵadvance(2);
249
+ i0.ɵɵconditional(ctx_r2.record.TechnicalDescription ? 2 : -1);
266
250
  } }
267
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_4_Template(rf, ctx) { if (rf & 1) {
251
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_4_Template(rf, ctx) { if (rf & 1) {
268
252
  i0.ɵɵelementStart(0, "div", 68);
269
253
  i0.ɵɵelement(1, "mj-markdown", 74);
270
254
  i0.ɵɵelementEnd();
@@ -273,21 +257,21 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_4
273
257
  i0.ɵɵadvance();
274
258
  i0.ɵɵproperty("data", ctx_r2.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
275
259
  } }
276
- function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Template(rf, ctx) { if (rf & 1) {
277
- const _r10 = i0.ɵɵgetCurrentView();
278
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
279
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_32_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.technicalDescriptionPanelExpanded, $event) || (ctx_r2.technicalDescriptionPanelExpanded = $event); return i0.ɵɵresetView($event); });
280
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_32_ng_template_1_Template, 4, 1, "ng-template", 25);
281
- i0.ɵɵelementStart(2, "div", 30);
282
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_3_Template, 2, 3)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_32_Conditional_4_Template, 2, 5, "div", 68);
260
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_38_Template(rf, ctx) { if (rf & 1) {
261
+ const _r9 = i0.ɵɵgetCurrentView();
262
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
263
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_38_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); });
264
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_38_ng_template_1_Template, 4, 1, "ng-template", 25);
265
+ i0.ɵɵelementStart(2, "div", 34);
266
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_3_Template, 3, 2)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_38_Conditional_4_Template, 2, 5, "div", 68);
283
267
  i0.ɵɵelementEnd()();
284
268
  } if (rf & 2) {
285
269
  const ctx_r2 = i0.ɵɵnextContext(2);
286
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.technicalDescriptionPanelExpanded);
270
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.technicalDescriptionPanelExpanded);
287
271
  i0.ɵɵadvance(3);
288
272
  i0.ɵɵconditional(ctx_r2.EditMode ? 3 : 4);
289
273
  } }
290
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
274
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
291
275
  i0.ɵɵelementStart(0, "span", 77);
292
276
  i0.ɵɵtext(1);
293
277
  i0.ɵɵelementEnd();
@@ -296,31 +280,31 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_33_ng_template_1
296
280
  i0.ɵɵadvance();
297
281
  i0.ɵɵtextInterpolate(ctx_r2.queryParameters.length);
298
282
  } }
299
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_ng_template_1_Template(rf, ctx) { if (rf & 1) {
300
- i0.ɵɵelementStart(0, "span", 53);
283
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Template(rf, ctx) { if (rf & 1) {
284
+ i0.ɵɵelementStart(0, "span", 57);
301
285
  i0.ɵɵelement(1, "i", 76);
302
286
  i0.ɵɵtext(2, " Parameters ");
303
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_33_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
287
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
304
288
  i0.ɵɵelementEnd();
305
289
  } if (rf & 2) {
306
290
  const ctx_r2 = i0.ɵɵnextContext(3);
307
291
  i0.ɵɵadvance(3);
308
292
  i0.ɵɵconditional(ctx_r2.queryParameters.length > 0 ? 3 : -1);
309
293
  } }
310
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
294
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
311
295
  i0.ɵɵelementStart(0, "div", 75);
312
296
  i0.ɵɵelement(1, "mj-loading", 78);
313
297
  i0.ɵɵelementEnd();
314
298
  } }
315
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
316
- const _r13 = i0.ɵɵgetCurrentView();
299
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
300
+ const _r12 = i0.ɵɵgetCurrentView();
317
301
  i0.ɵɵelementStart(0, "button", 84);
318
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addParameter()); });
302
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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()); });
319
303
  i0.ɵɵelement(1, "i", 85);
320
304
  i0.ɵɵtext(2, " Add First Parameter ");
321
305
  i0.ɵɵelementEnd();
322
306
  } }
323
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
307
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
324
308
  i0.ɵɵelementStart(0, "div", 79);
325
309
  i0.ɵɵelement(1, "i", 80);
326
310
  i0.ɵɵelementStart(2, "div", 81);
@@ -329,36 +313,36 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4
329
313
  i0.ɵɵelementStart(4, "div", 82);
330
314
  i0.ɵɵtext(5, " Add parameters to make your query dynamic and reusable. ");
331
315
  i0.ɵɵelementEnd();
332
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
316
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
333
317
  i0.ɵɵelementEnd();
334
318
  } if (rf & 2) {
335
319
  const ctx_r2 = i0.ɵɵnextContext(4);
336
320
  i0.ɵɵadvance(6);
337
321
  i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
338
322
  } }
339
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
340
- const _r14 = i0.ɵɵgetCurrentView();
323
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
324
+ const _r13 = i0.ɵɵgetCurrentView();
341
325
  i0.ɵɵelementStart(0, "div", 86)(1, "button", 84);
342
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addParameter()); });
326
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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()); });
343
327
  i0.ɵɵelement(2, "i", 85);
344
328
  i0.ɵɵtext(3, " Add Parameter ");
345
329
  i0.ɵɵelementEnd()();
346
330
  } }
347
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
331
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
348
332
  i0.ɵɵelementStart(0, "span", 94);
349
333
  i0.ɵɵtext(1, "Required");
350
334
  i0.ɵɵelementEnd();
351
335
  } }
352
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
336
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
353
337
  i0.ɵɵelementStart(0, "div", 96);
354
338
  i0.ɵɵtext(1);
355
339
  i0.ɵɵelementEnd();
356
340
  } if (rf & 2) {
357
- const param_r16 = i0.ɵɵnextContext().$implicit;
341
+ const param_r15 = i0.ɵɵnextContext().$implicit;
358
342
  i0.ɵɵadvance();
359
- i0.ɵɵtextInterpolate(param_r16.Description);
343
+ i0.ɵɵtextInterpolate(param_r15.Description);
360
344
  } }
361
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
345
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
362
346
  i0.ɵɵelementStart(0, "span", 98)(1, "strong");
363
347
  i0.ɵɵtext(2, "Default:");
364
348
  i0.ɵɵelementEnd();
@@ -366,66 +350,66 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4
366
350
  i0.ɵɵtext(4);
367
351
  i0.ɵɵelementEnd()();
368
352
  } if (rf & 2) {
369
- const param_r16 = i0.ɵɵnextContext().$implicit;
353
+ const param_r15 = i0.ɵɵnextContext().$implicit;
370
354
  i0.ɵɵadvance(4);
371
- i0.ɵɵtextInterpolate(param_r16.DefaultValue);
355
+ i0.ɵɵtextInterpolate(param_r15.DefaultValue);
372
356
  } }
373
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
374
- const _r17 = i0.ɵɵgetCurrentView();
357
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
358
+ const _r16 = i0.ɵɵgetCurrentView();
375
359
  i0.ɵɵelementStart(0, "div", 101);
376
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r17); return i0.ɵɵresetView($event.stopPropagation()); });
360
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r16); return i0.ɵɵresetView($event.stopPropagation()); });
377
361
  i0.ɵɵelementStart(1, "button", 102);
378
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const param_r16 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.editParameter(param_r16)); });
362
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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)); });
379
363
  i0.ɵɵelement(2, "i", 103);
380
364
  i0.ɵɵelementEnd();
381
365
  i0.ɵɵelementStart(3, "button", 104);
382
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r17); const param_r16 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteParameter(param_r16)); });
366
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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)); });
383
367
  i0.ɵɵelement(4, "i", 105);
384
368
  i0.ɵɵelementEnd()();
385
369
  } }
386
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
387
- const _r15 = i0.ɵɵgetCurrentView();
370
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
371
+ const _r14 = i0.ɵɵgetCurrentView();
388
372
  i0.ɵɵelementStart(0, "div", 89);
389
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Template_div_click_0_listener() { const param_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.editParameter(param_r16)); });
373
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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)); });
390
374
  i0.ɵɵelementStart(1, "div", 90)(2, "div", 91);
391
375
  i0.ɵɵelement(3, "i", 92);
392
376
  i0.ɵɵtext(4);
393
377
  i0.ɵɵelementEnd();
394
378
  i0.ɵɵelementStart(5, "div", 93);
395
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span", 94);
379
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span", 94);
396
380
  i0.ɵɵelementEnd()();
397
381
  i0.ɵɵelementStart(7, "div", 95);
398
- i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div", 96);
382
+ i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div", 96);
399
383
  i0.ɵɵelementStart(9, "div", 97)(10, "span", 98)(11, "strong");
400
384
  i0.ɵɵtext(12, "Type:");
401
385
  i0.ɵɵelementEnd();
402
386
  i0.ɵɵtext(13);
403
387
  i0.ɵɵelementEnd();
404
- i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span", 98);
388
+ i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span", 98);
405
389
  i0.ɵɵelementEnd()();
406
- i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div", 99);
390
+ i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div", 99);
407
391
  i0.ɵɵelementEnd();
408
392
  } if (rf & 2) {
409
- const param_r16 = ctx.$implicit;
393
+ const param_r15 = ctx.$implicit;
410
394
  const ctx_r2 = i0.ɵɵnextContext(5);
411
- i0.ɵɵclassProp("required", param_r16.IsRequired);
395
+ i0.ɵɵclassProp("required", param_r15.IsRequired);
412
396
  i0.ɵɵadvance(4);
413
- i0.ɵɵtextInterpolate1(" ", param_r16.Name, " ");
397
+ i0.ɵɵtextInterpolate1(" ", param_r15.Name, " ");
414
398
  i0.ɵɵadvance(2);
415
- i0.ɵɵconditional(param_r16.IsRequired ? 6 : -1);
399
+ i0.ɵɵconditional(param_r15.IsRequired ? 6 : -1);
416
400
  i0.ɵɵadvance(2);
417
- i0.ɵɵconditional(param_r16.Description ? 8 : -1);
401
+ i0.ɵɵconditional(param_r15.Description ? 8 : -1);
418
402
  i0.ɵɵadvance(5);
419
- i0.ɵɵtextInterpolate1(" ", param_r16.Type || "Text", " ");
403
+ i0.ɵɵtextInterpolate1(" ", param_r15.Type || "Text", " ");
420
404
  i0.ɵɵadvance();
421
- i0.ɵɵconditional(param_r16.DefaultValue ? 14 : -1);
405
+ i0.ɵɵconditional(param_r15.DefaultValue ? 14 : -1);
422
406
  i0.ɵɵadvance();
423
407
  i0.ɵɵconditional(ctx_r2.EditMode ? 15 : -1);
424
408
  } }
425
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
426
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
409
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
410
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
427
411
  i0.ɵɵelementStart(1, "div", 87);
428
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div", 88, _forTrack1);
412
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div", 88, _forTrack1);
429
413
  i0.ɵɵelementEnd();
430
414
  } if (rf & 2) {
431
415
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -433,27 +417,27 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4
433
417
  i0.ɵɵadvance(2);
434
418
  i0.ɵɵrepeater(ctx_r2.queryParameters);
435
419
  } }
436
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Template(rf, ctx) { if (rf & 1) {
437
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Conditional_1_Template, 4, 1);
420
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Template(rf, ctx) { if (rf & 1) {
421
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Conditional_1_Template, 4, 1);
438
422
  } if (rf & 2) {
439
423
  const ctx_r2 = i0.ɵɵnextContext(3);
440
424
  i0.ɵɵconditional(ctx_r2.queryParameters.length === 0 ? 0 : 1);
441
425
  } }
442
- function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Template(rf, ctx) { if (rf & 1) {
443
- const _r12 = i0.ɵɵgetCurrentView();
444
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
445
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_33_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.parametersPanelExpanded, $event) || (ctx_r2.parametersPanelExpanded = $event); return i0.ɵɵresetView($event); });
446
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_33_ng_template_1_Template, 4, 1, "ng-template", 25);
447
- i0.ɵɵelementStart(2, "div", 30);
448
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Conditional_4_Template, 2, 1);
426
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_39_Template(rf, ctx) { if (rf & 1) {
427
+ const _r11 = i0.ɵɵgetCurrentView();
428
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
429
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_39_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); });
430
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_39_ng_template_1_Template, 4, 1, "ng-template", 25);
431
+ i0.ɵɵelementStart(2, "div", 34);
432
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Conditional_4_Template, 2, 1);
449
433
  i0.ɵɵelementEnd()();
450
434
  } if (rf & 2) {
451
435
  const ctx_r2 = i0.ɵɵnextContext(2);
452
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.parametersPanelExpanded);
436
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.parametersPanelExpanded);
453
437
  i0.ɵɵadvance(3);
454
438
  i0.ɵɵconditional(ctx_r2.isLoadingParameters ? 3 : 4);
455
439
  } }
456
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
440
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
457
441
  i0.ɵɵelementStart(0, "span", 77);
458
442
  i0.ɵɵtext(1);
459
443
  i0.ɵɵelementEnd();
@@ -462,31 +446,31 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_34_ng_template_1
462
446
  i0.ɵɵadvance();
463
447
  i0.ɵɵtextInterpolate(ctx_r2.queryFields.length);
464
448
  } }
465
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_ng_template_1_Template(rf, ctx) { if (rf & 1) {
466
- i0.ɵɵelementStart(0, "span", 53);
449
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template(rf, ctx) { if (rf & 1) {
450
+ i0.ɵɵelementStart(0, "span", 57);
467
451
  i0.ɵɵelement(1, "i", 106);
468
452
  i0.ɵɵtext(2, " Fields ");
469
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_34_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
453
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
470
454
  i0.ɵɵelementEnd();
471
455
  } if (rf & 2) {
472
456
  const ctx_r2 = i0.ɵɵnextContext(3);
473
457
  i0.ɵɵadvance(3);
474
458
  i0.ɵɵconditional(ctx_r2.queryFields.length > 0 ? 3 : -1);
475
459
  } }
476
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_3_Template(rf, ctx) { if (rf & 1) {
460
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_3_Template(rf, ctx) { if (rf & 1) {
477
461
  i0.ɵɵelementStart(0, "div", 75);
478
462
  i0.ɵɵelement(1, "mj-loading", 107);
479
463
  i0.ɵɵelementEnd();
480
464
  } }
481
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
482
- const _r19 = i0.ɵɵgetCurrentView();
465
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
466
+ const _r18 = i0.ɵɵgetCurrentView();
483
467
  i0.ɵɵelementStart(0, "button", 84);
484
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addField()); });
468
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_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()); });
485
469
  i0.ɵɵelement(1, "i", 85);
486
470
  i0.ɵɵtext(2, " Add First Field ");
487
471
  i0.ɵɵelementEnd();
488
472
  } }
489
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
473
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
490
474
  i0.ɵɵelementStart(0, "div", 79);
491
475
  i0.ɵɵelement(1, "i", 108);
492
476
  i0.ɵɵelementStart(2, "div", 81);
@@ -495,47 +479,47 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4
495
479
  i0.ɵɵelementStart(4, "div", 82);
496
480
  i0.ɵɵtext(5, " Define output fields for your query results. ");
497
481
  i0.ɵɵelementEnd();
498
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
482
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
499
483
  i0.ɵɵelementEnd();
500
484
  } if (rf & 2) {
501
485
  const ctx_r2 = i0.ɵɵnextContext(4);
502
486
  i0.ɵɵadvance(6);
503
487
  i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
504
488
  } }
505
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
506
- const _r20 = i0.ɵɵgetCurrentView();
489
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
490
+ const _r19 = i0.ɵɵgetCurrentView();
507
491
  i0.ɵɵelementStart(0, "div", 86)(1, "button", 84);
508
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addField()); });
492
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_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()); });
509
493
  i0.ɵɵelement(2, "i", 85);
510
494
  i0.ɵɵtext(3, " Add Field ");
511
495
  i0.ɵɵelementEnd()();
512
496
  } }
513
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
497
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
514
498
  i0.ɵɵelementStart(0, "span", 112);
515
499
  i0.ɵɵtext(1);
516
500
  i0.ɵɵelementEnd();
517
501
  } if (rf & 2) {
518
- const field_r21 = i0.ɵɵnextContext().$implicit;
502
+ const field_r20 = i0.ɵɵnextContext().$implicit;
519
503
  i0.ɵɵadvance();
520
- i0.ɵɵtextInterpolate1("#", field_r21.Sequence);
504
+ i0.ɵɵtextInterpolate1("#", field_r20.Sequence);
521
505
  } }
522
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
506
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
523
507
  i0.ɵɵelementStart(0, "div", 96);
524
508
  i0.ɵɵtext(1);
525
509
  i0.ɵɵelementEnd();
526
510
  } if (rf & 2) {
527
- const field_r21 = i0.ɵɵnextContext().$implicit;
511
+ const field_r20 = i0.ɵɵnextContext().$implicit;
528
512
  i0.ɵɵadvance();
529
- i0.ɵɵtextInterpolate(field_r21.Description);
513
+ i0.ɵɵtextInterpolate(field_r20.Description);
530
514
  } }
531
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
532
- const _r22 = i0.ɵɵgetCurrentView();
515
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
516
+ const _r21 = i0.ɵɵgetCurrentView();
533
517
  i0.ɵɵelementStart(0, "div", 114)(1, "button", 115);
534
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r22); const field_r21 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteField(field_r21)); });
518
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_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)); });
535
519
  i0.ɵɵelement(2, "i", 105);
536
520
  i0.ɵɵelementEnd()();
537
521
  } }
538
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
522
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
539
523
  i0.ɵɵelementStart(0, "div", 109)(1, "div", 90)(2, "div", 91);
540
524
  i0.ɵɵelement(3, "i", 110);
541
525
  i0.ɵɵtext(4);
@@ -543,36 +527,36 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4
543
527
  i0.ɵɵelementStart(5, "div", 93)(6, "span", 111);
544
528
  i0.ɵɵtext(7);
545
529
  i0.ɵɵelementEnd();
546
- i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span", 112);
530
+ i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span", 112);
547
531
  i0.ɵɵelementEnd()();
548
532
  i0.ɵɵelementStart(9, "div", 95);
549
- i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div", 96);
533
+ i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div", 96);
550
534
  i0.ɵɵelementStart(11, "div", 97)(12, "span", 98);
551
535
  i0.ɵɵelement(13, "i", 113);
552
536
  i0.ɵɵtext(14);
553
537
  i0.ɵɵelementEnd()()();
554
- i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div", 114);
538
+ i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div", 114);
555
539
  i0.ɵɵelementEnd();
556
540
  } if (rf & 2) {
557
- const field_r21 = ctx.$implicit;
541
+ const field_r20 = ctx.$implicit;
558
542
  const ctx_r2 = i0.ɵɵnextContext(5);
559
543
  i0.ɵɵadvance(4);
560
- i0.ɵɵtextInterpolate1(" ", field_r21.Name, " ");
544
+ i0.ɵɵtextInterpolate1(" ", field_r20.Name, " ");
561
545
  i0.ɵɵadvance(3);
562
- i0.ɵɵtextInterpolate(field_r21.SQLBaseType);
546
+ i0.ɵɵtextInterpolate(field_r20.SQLBaseType);
563
547
  i0.ɵɵadvance();
564
- i0.ɵɵconditional(field_r21.Sequence ? 8 : -1);
548
+ i0.ɵɵconditional(field_r20.Sequence ? 8 : -1);
565
549
  i0.ɵɵadvance(2);
566
- i0.ɵɵconditional(field_r21.Description ? 10 : -1);
550
+ i0.ɵɵconditional(field_r20.Description ? 10 : -1);
567
551
  i0.ɵɵadvance(4);
568
- i0.ɵɵtextInterpolate1(" ", field_r21.SQLFullType || field_r21.SQLBaseType, " ");
552
+ i0.ɵɵtextInterpolate1(" ", field_r20.SQLFullType || field_r20.SQLBaseType, " ");
569
553
  i0.ɵɵadvance();
570
554
  i0.ɵɵconditional(ctx_r2.EditMode ? 15 : -1);
571
555
  } }
572
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
573
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
556
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
557
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
574
558
  i0.ɵɵelementStart(1, "div", 87);
575
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div", 109, _forTrack2);
559
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div", 109, _forTrack2);
576
560
  i0.ɵɵelementEnd();
577
561
  } if (rf & 2) {
578
562
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -580,28 +564,28 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4
580
564
  i0.ɵɵadvance(2);
581
565
  i0.ɵɵrepeater(ctx_r2.queryFields);
582
566
  } }
583
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Template(rf, ctx) { if (rf & 1) {
584
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Conditional_1_Template, 4, 1);
567
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Template(rf, ctx) { if (rf & 1) {
568
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Conditional_1_Template, 4, 1);
585
569
  } if (rf & 2) {
586
570
  const ctx_r2 = i0.ɵɵnextContext(3);
587
571
  i0.ɵɵconditional(ctx_r2.queryFields.length === 0 ? 0 : 1);
588
572
  } }
589
- function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Template(rf, ctx) { if (rf & 1) {
590
- const _r18 = i0.ɵɵgetCurrentView();
591
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
592
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_34_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.fieldsPanelExpanded, $event) || (ctx_r2.fieldsPanelExpanded = $event); return i0.ɵɵresetView($event); });
593
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_34_ng_template_1_Template, 4, 1, "ng-template", 25);
594
- i0.ɵɵelementStart(2, "div", 30);
595
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Conditional_4_Template, 2, 1);
573
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_40_Template(rf, ctx) { if (rf & 1) {
574
+ const _r17 = i0.ɵɵgetCurrentView();
575
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
576
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_40_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); });
577
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template, 4, 1, "ng-template", 25);
578
+ i0.ɵɵelementStart(2, "div", 34);
579
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Conditional_4_Template, 2, 1);
596
580
  i0.ɵɵelementEnd()();
597
581
  } if (rf & 2) {
598
582
  const ctx_r2 = i0.ɵɵnextContext(2);
599
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.fieldsPanelExpanded);
583
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.fieldsPanelExpanded);
600
584
  i0.ɵɵadvance(3);
601
585
  i0.ɵɵconditional(ctx_r2.isLoadingFields ? 3 : 4);
602
586
  } }
603
- function MJQueryFormComponentExtended_Conditional_1_Conditional_35_ng_template_1_Template(rf, ctx) { if (rf & 1) {
604
- i0.ɵɵelementStart(0, "span", 53);
587
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template(rf, ctx) { if (rf & 1) {
588
+ i0.ɵɵelementStart(0, "span", 57);
605
589
  i0.ɵɵelement(1, "i", 118);
606
590
  i0.ɵɵtext(2, " Dependent Queries ");
607
591
  i0.ɵɵelementStart(3, "span", 77);
@@ -612,17 +596,17 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_35_ng_template_1
612
596
  i0.ɵɵadvance(4);
613
597
  i0.ɵɵtextInterpolate(ctx_r2.DependentQueries.length);
614
598
  } }
615
- function MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
599
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
616
600
  i0.ɵɵelementStart(0, "div", 97)(1, "span", 98);
617
601
  i0.ɵɵelement(2, "i", 124);
618
602
  i0.ɵɵtext(3);
619
603
  i0.ɵɵelementEnd()();
620
604
  } if (rf & 2) {
621
- const dep_r25 = i0.ɵɵnextContext().$implicit;
605
+ const dep_r24 = i0.ɵɵnextContext().$implicit;
622
606
  i0.ɵɵadvance(3);
623
- i0.ɵɵtextInterpolate1(" ", dep_r25.ReferencePath, " ");
607
+ i0.ɵɵtextInterpolate1(" ", dep_r24.ReferencePath, " ");
624
608
  } }
625
- function MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Conditional_7_Template(rf, ctx) { if (rf & 1) {
609
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Conditional_7_Template(rf, ctx) { if (rf & 1) {
626
610
  i0.ɵɵelementStart(0, "div", 97)(1, "span", 98)(2, "strong");
627
611
  i0.ɵɵtext(3, "Alias:");
628
612
  i0.ɵɵelementEnd();
@@ -630,41 +614,41 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Condit
630
614
  i0.ɵɵtext(5);
631
615
  i0.ɵɵelementEnd()()();
632
616
  } if (rf & 2) {
633
- const dep_r25 = i0.ɵɵnextContext().$implicit;
617
+ const dep_r24 = i0.ɵɵnextContext().$implicit;
634
618
  i0.ɵɵadvance(5);
635
- i0.ɵɵtextInterpolate(dep_r25.Alias);
619
+ i0.ɵɵtextInterpolate(dep_r24.Alias);
636
620
  } }
637
- function MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Template(rf, ctx) { if (rf & 1) {
638
- const _r24 = i0.ɵɵgetCurrentView();
621
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Template(rf, ctx) { if (rf & 1) {
622
+ const _r23 = i0.ɵɵgetCurrentView();
639
623
  i0.ɵɵelementStart(0, "div", 119);
640
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Template_div_click_0_listener() { const dep_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onDependentQueryClick(dep_r25)); });
624
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_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)); });
641
625
  i0.ɵɵelementStart(1, "div", 90)(2, "div", 91);
642
626
  i0.ɵɵelement(3, "i", 120);
643
627
  i0.ɵɵtext(4);
644
628
  i0.ɵɵelementEnd()();
645
629
  i0.ɵɵelementStart(5, "div", 95);
646
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Conditional_6_Template, 4, 1, "div", 97);
647
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Conditional_7_Template, 6, 1, "div", 97);
630
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Conditional_6_Template, 4, 1, "div", 97);
631
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Conditional_7_Template, 6, 1, "div", 97);
648
632
  i0.ɵɵelementEnd();
649
633
  i0.ɵɵelementStart(8, "div", 121)(9, "span", 122);
650
634
  i0.ɵɵelement(10, "i", 123);
651
635
  i0.ɵɵtext(11, " Open ");
652
636
  i0.ɵɵelementEnd()()();
653
637
  } if (rf & 2) {
654
- const dep_r25 = ctx.$implicit;
638
+ const dep_r24 = ctx.$implicit;
655
639
  i0.ɵɵadvance(4);
656
- i0.ɵɵtextInterpolate1(" ", dep_r25.Query, " ");
640
+ i0.ɵɵtextInterpolate1(" ", dep_r24.Query, " ");
657
641
  i0.ɵɵadvance(2);
658
- i0.ɵɵconditional(dep_r25.ReferencePath ? 6 : -1);
642
+ i0.ɵɵconditional(dep_r24.ReferencePath ? 6 : -1);
659
643
  i0.ɵɵadvance();
660
- i0.ɵɵconditional(dep_r25.Alias ? 7 : -1);
644
+ i0.ɵɵconditional(dep_r24.Alias ? 7 : -1);
661
645
  } }
662
- function MJQueryFormComponentExtended_Conditional_1_Conditional_35_Template(rf, ctx) { if (rf & 1) {
663
- const _r23 = i0.ɵɵgetCurrentView();
664
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
665
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_35_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.dependentsPanelExpanded, $event) || (ctx_r2.dependentsPanelExpanded = $event); return i0.ɵɵresetView($event); });
666
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_35_ng_template_1_Template, 5, 1, "ng-template", 25);
667
- i0.ɵɵelementStart(2, "div", 30)(3, "div", 116);
646
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_41_Template(rf, ctx) { if (rf & 1) {
647
+ const _r22 = i0.ɵɵgetCurrentView();
648
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
649
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_41_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); });
650
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template, 5, 1, "ng-template", 25);
651
+ i0.ɵɵelementStart(2, "div", 34)(3, "div", 116);
668
652
  i0.ɵɵtext(4, " These queries reference this query via ");
669
653
  i0.ɵɵelementStart(5, "code");
670
654
  i0.ɵɵtext(6);
@@ -672,17 +656,17 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_35_Template(rf,
672
656
  i0.ɵɵtext(7, " composition syntax. ");
673
657
  i0.ɵɵelementEnd();
674
658
  i0.ɵɵelementStart(8, "div", 87);
675
- i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_1_Conditional_35_For_10_Template, 12, 3, "div", 117, _forTrack2);
659
+ i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_1_Conditional_41_For_10_Template, 12, 3, "div", 117, _forTrack2);
676
660
  i0.ɵɵelementEnd()()();
677
661
  } if (rf & 2) {
678
662
  const ctx_r2 = i0.ɵɵnextContext(2);
679
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.dependentsPanelExpanded);
663
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.dependentsPanelExpanded);
680
664
  i0.ɵɵadvance(6);
681
665
  i0.ɵɵtextInterpolate1("", "{{query:\"...\"}}", " ");
682
666
  i0.ɵɵadvance(3);
683
667
  i0.ɵɵrepeater(ctx_r2.DependentQueries);
684
668
  } }
685
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
669
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
686
670
  i0.ɵɵelementStart(0, "span", 77);
687
671
  i0.ɵɵtext(1);
688
672
  i0.ɵɵelementEnd();
@@ -691,31 +675,31 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_36_ng_template_1
691
675
  i0.ɵɵadvance();
692
676
  i0.ɵɵtextInterpolate(ctx_r2.queryEntities.length);
693
677
  } }
694
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_ng_template_1_Template(rf, ctx) { if (rf & 1) {
695
- i0.ɵɵelementStart(0, "span", 53);
678
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Template(rf, ctx) { if (rf & 1) {
679
+ i0.ɵɵelementStart(0, "span", 57);
696
680
  i0.ɵɵelement(1, "i", 125);
697
681
  i0.ɵɵtext(2, " Entities ");
698
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_36_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
682
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Conditional_3_Template, 2, 1, "span", 77);
699
683
  i0.ɵɵelementEnd();
700
684
  } if (rf & 2) {
701
685
  const ctx_r2 = i0.ɵɵnextContext(3);
702
686
  i0.ɵɵadvance(3);
703
687
  i0.ɵɵconditional(ctx_r2.queryEntities.length > 0 ? 3 : -1);
704
688
  } }
705
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_3_Template(rf, ctx) { if (rf & 1) {
689
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_3_Template(rf, ctx) { if (rf & 1) {
706
690
  i0.ɵɵelementStart(0, "div", 75);
707
691
  i0.ɵɵelement(1, "mj-loading", 126);
708
692
  i0.ɵɵelementEnd();
709
693
  } }
710
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
711
- const _r27 = i0.ɵɵgetCurrentView();
694
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
695
+ const _r26 = i0.ɵɵgetCurrentView();
712
696
  i0.ɵɵelementStart(0, "button", 84);
713
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addEntity()); });
697
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_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()); });
714
698
  i0.ɵɵelement(1, "i", 85);
715
699
  i0.ɵɵtext(2, " Add First Entity ");
716
700
  i0.ɵɵelementEnd();
717
701
  } }
718
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
702
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
719
703
  i0.ɵɵelementStart(0, "div", 79);
720
704
  i0.ɵɵelement(1, "i", 127);
721
705
  i0.ɵɵelementStart(2, "div", 81);
@@ -724,72 +708,72 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4
724
708
  i0.ɵɵelementStart(4, "div", 82);
725
709
  i0.ɵɵtext(5, " Track which entities this query uses for documentation. ");
726
710
  i0.ɵɵelementEnd();
727
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
711
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 83);
728
712
  i0.ɵɵelementEnd();
729
713
  } if (rf & 2) {
730
714
  const ctx_r2 = i0.ɵɵnextContext(4);
731
715
  i0.ɵɵadvance(6);
732
716
  i0.ɵɵconditional(ctx_r2.EditMode ? 6 : -1);
733
717
  } }
734
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
735
- const _r28 = i0.ɵɵgetCurrentView();
718
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
719
+ const _r27 = i0.ɵɵgetCurrentView();
736
720
  i0.ɵɵelementStart(0, "div", 86)(1, "button", 84);
737
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.addEntity()); });
721
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_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()); });
738
722
  i0.ɵɵelement(2, "i", 85);
739
723
  i0.ɵɵtext(3, " Add Entity ");
740
724
  i0.ɵɵelementEnd()();
741
725
  } }
742
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
743
- const _r29 = i0.ɵɵgetCurrentView();
744
- i0.ɵɵelementStart(0, "div", 129)(1, "kendo-dropdownlist", 130);
745
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_5_Template_kendo_dropdownlist_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r29); const entity_r30 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(entity_r30.EntityID, $event) || (entity_r30.EntityID = $event); return i0.ɵɵresetView($event); });
726
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
727
+ const _r28 = i0.ɵɵgetCurrentView();
728
+ i0.ɵɵelementStart(0, "div", 129)(1, "mj-dropdown", 130);
729
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_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); });
746
730
  i0.ɵɵelementEnd()();
747
731
  } if (rf & 2) {
748
- const entity_r30 = i0.ɵɵnextContext().$implicit;
732
+ const entity_r29 = i0.ɵɵnextContext().$implicit;
749
733
  const ctx_r2 = i0.ɵɵnextContext(5);
750
734
  i0.ɵɵadvance();
751
- i0.ɵɵtwoWayProperty("ngModel", entity_r30.EntityID);
752
- i0.ɵɵproperty("name", "entity_" + entity_r30.ID)("data", ctx_r2.getEntityOptions())("valuePrimitive", true);
735
+ i0.ɵɵtwoWayProperty("ngModel", entity_r29.EntityID);
736
+ i0.ɵɵproperty("name", "entity_" + entity_r29.ID)("Data", ctx_r2.getEntityOptions())("ValuePrimitive", true);
753
737
  } }
754
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
738
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
755
739
  i0.ɵɵelementStart(0, "div", 95)(1, "div", 97)(2, "span", 98);
756
740
  i0.ɵɵelement(3, "i", 131);
757
741
  i0.ɵɵtext(4, " Data Source ");
758
742
  i0.ɵɵelementEnd()()();
759
743
  } }
760
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
761
- const _r31 = i0.ɵɵgetCurrentView();
744
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
745
+ const _r30 = i0.ɵɵgetCurrentView();
762
746
  i0.ɵɵelementStart(0, "div", 114)(1, "button", 132);
763
- i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r31); const entity_r30 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.deleteEntity(entity_r30)); });
747
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_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)); });
764
748
  i0.ɵɵelement(2, "i", 105);
765
749
  i0.ɵɵelementEnd()();
766
750
  } }
767
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
751
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
768
752
  i0.ɵɵelementStart(0, "div", 109)(1, "div", 90)(2, "div", 91);
769
753
  i0.ɵɵelement(3, "i", 128);
770
754
  i0.ɵɵtext(4);
771
755
  i0.ɵɵelementEnd();
772
- i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div", 129);
756
+ i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div", 129);
773
757
  i0.ɵɵelementEnd();
774
- i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div", 95);
775
- i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div", 114);
758
+ i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div", 95);
759
+ i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div", 114);
776
760
  i0.ɵɵelementEnd();
777
761
  } if (rf & 2) {
778
- const entity_r30 = ctx.$implicit;
762
+ const entity_r29 = ctx.$implicit;
779
763
  const ctx_r2 = i0.ɵɵnextContext(5);
780
764
  i0.ɵɵadvance(4);
781
- i0.ɵɵtextInterpolate1(" ", entity_r30.Entity || "Select Entity...", " ");
765
+ i0.ɵɵtextInterpolate1(" ", entity_r29.Entity || "Select Entity...", " ");
782
766
  i0.ɵɵadvance();
783
767
  i0.ɵɵconditional(ctx_r2.EditMode ? 5 : -1);
784
768
  i0.ɵɵadvance();
785
- i0.ɵɵconditional(!ctx_r2.EditMode && entity_r30.Entity ? 6 : -1);
769
+ i0.ɵɵconditional(!ctx_r2.EditMode && entity_r29.Entity ? 6 : -1);
786
770
  i0.ɵɵadvance();
787
771
  i0.ɵɵconditional(ctx_r2.EditMode ? 7 : -1);
788
772
  } }
789
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
790
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
773
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
774
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 86);
791
775
  i0.ɵɵelementStart(1, "div", 87);
792
- i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div", 109, _forTrack2);
776
+ i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div", 109, _forTrack2);
793
777
  i0.ɵɵelementEnd();
794
778
  } if (rf & 2) {
795
779
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -797,68 +781,68 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4
797
781
  i0.ɵɵadvance(2);
798
782
  i0.ɵɵrepeater(ctx_r2.queryEntities);
799
783
  } }
800
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Template(rf, ctx) { if (rf & 1) {
801
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Conditional_1_Template, 4, 1);
784
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Template(rf, ctx) { if (rf & 1) {
785
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_0_Template, 7, 1, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Conditional_1_Template, 4, 1);
802
786
  } if (rf & 2) {
803
787
  const ctx_r2 = i0.ɵɵnextContext(3);
804
788
  i0.ɵɵconditional(ctx_r2.queryEntities.length === 0 ? 0 : 1);
805
789
  } }
806
- function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Template(rf, ctx) { if (rf & 1) {
807
- const _r26 = i0.ɵɵgetCurrentView();
808
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
809
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_36_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.entitiesPanelExpanded, $event) || (ctx_r2.entitiesPanelExpanded = $event); return i0.ɵɵresetView($event); });
810
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_36_ng_template_1_Template, 4, 1, "ng-template", 25);
811
- i0.ɵɵelementStart(2, "div", 30);
812
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Conditional_4_Template, 2, 1);
790
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_42_Template(rf, ctx) { if (rf & 1) {
791
+ const _r25 = i0.ɵɵgetCurrentView();
792
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
793
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_42_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); });
794
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_42_ng_template_1_Template, 4, 1, "ng-template", 25);
795
+ i0.ɵɵelementStart(2, "div", 34);
796
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Conditional_4_Template, 2, 1);
813
797
  i0.ɵɵelementEnd()();
814
798
  } if (rf & 2) {
815
799
  const ctx_r2 = i0.ɵɵnextContext(2);
816
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.entitiesPanelExpanded);
800
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.entitiesPanelExpanded);
817
801
  i0.ɵɵadvance(3);
818
802
  i0.ɵɵconditional(ctx_r2.isLoadingEntities ? 3 : 4);
819
803
  } }
820
- function MJQueryFormComponentExtended_Conditional_1_ng_template_38_Template(rf, ctx) { if (rf & 1) {
821
- i0.ɵɵelementStart(0, "span", 53);
804
+ function MJQueryFormComponentExtended_Conditional_1_ng_template_44_Template(rf, ctx) { if (rf & 1) {
805
+ i0.ɵɵelementStart(0, "span", 57);
822
806
  i0.ɵɵelement(1, "i", 133);
823
807
  i0.ɵɵtext(2, " Details ");
824
808
  i0.ɵɵelementEnd();
825
809
  } }
826
- function MJQueryFormComponentExtended_Conditional_1_Conditional_45_Template(rf, ctx) { if (rf & 1) {
827
- const _r32 = i0.ɵɵgetCurrentView();
828
- i0.ɵɵelementStart(0, "kendo-switch", 134);
829
- i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_45_Template_kendo_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.UsesTemplate, $event) || (ctx_r2.record.UsesTemplate = $event); return i0.ɵɵresetView($event); });
810
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_51_Template(rf, ctx) { if (rf & 1) {
811
+ const _r31 = i0.ɵɵgetCurrentView();
812
+ i0.ɵɵelementStart(0, "mj-switch", 134);
813
+ i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_51_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.record.UsesTemplate, $event) || (ctx_r2.record.UsesTemplate = $event); return i0.ɵɵresetView($event); });
830
814
  i0.ɵɵelementEnd();
831
815
  } if (rf & 2) {
832
816
  const ctx_r2 = i0.ɵɵnextContext(2);
833
817
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.record.UsesTemplate);
834
818
  } }
835
- function MJQueryFormComponentExtended_Conditional_1_Conditional_46_Conditional_1_Template(rf, ctx) { if (rf & 1) {
819
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_52_Conditional_1_Template(rf, ctx) { if (rf & 1) {
836
820
  i0.ɵɵelementStart(0, "span", 135);
837
- i0.ɵɵelement(1, "i", 59);
821
+ i0.ɵɵelement(1, "i", 137);
838
822
  i0.ɵɵtext(2, " Uses Templates");
839
823
  i0.ɵɵelementEnd();
840
824
  } }
841
- function MJQueryFormComponentExtended_Conditional_1_Conditional_46_Conditional_2_Template(rf, ctx) { if (rf & 1) {
825
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_52_Conditional_2_Template(rf, ctx) { if (rf & 1) {
842
826
  i0.ɵɵelementStart(0, "span", 136);
843
- i0.ɵɵelement(1, "i", 137);
827
+ i0.ɵɵelement(1, "i", 138);
844
828
  i0.ɵɵtext(2, " No Templates");
845
829
  i0.ɵɵelementEnd();
846
830
  } }
847
- function MJQueryFormComponentExtended_Conditional_1_Conditional_46_Template(rf, ctx) { if (rf & 1) {
848
- i0.ɵɵelementStart(0, "div", 36);
849
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_46_Conditional_1_Template, 3, 0, "span", 135)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_46_Conditional_2_Template, 3, 0, "span", 136);
831
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_52_Template(rf, ctx) { if (rf & 1) {
832
+ i0.ɵɵelementStart(0, "div", 40);
833
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_52_Conditional_1_Template, 3, 0, "span", 135)(2, MJQueryFormComponentExtended_Conditional_1_Conditional_52_Conditional_2_Template, 3, 0, "span", 136);
850
834
  i0.ɵɵelementEnd();
851
835
  } if (rf & 2) {
852
836
  const ctx_r2 = i0.ɵɵnextContext(2);
853
837
  i0.ɵɵadvance();
854
838
  i0.ɵɵconditional(ctx_r2.record.UsesTemplate ? 1 : 2);
855
839
  } }
856
- function MJQueryFormComponentExtended_Conditional_1_Conditional_59_Template(rf, ctx) { if (rf & 1) {
857
- i0.ɵɵelementStart(0, "div", 32)(1, "label", 33);
858
- i0.ɵɵelement(2, "i", 138);
840
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template(rf, ctx) { if (rf & 1) {
841
+ i0.ɵɵelementStart(0, "div", 36)(1, "label", 37);
842
+ i0.ɵɵelement(2, "i", 139);
859
843
  i0.ɵɵtext(3, " Quality Rank ");
860
844
  i0.ɵɵelementEnd();
861
- i0.ɵɵelementStart(4, "div", 36);
845
+ i0.ɵɵelementStart(4, "div", 40);
862
846
  i0.ɵɵtext(5);
863
847
  i0.ɵɵelementEnd()();
864
848
  } if (rf & 2) {
@@ -866,20 +850,20 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_59_Template(rf,
866
850
  i0.ɵɵadvance(5);
867
851
  i0.ɵɵtextInterpolate1("", ctx_r2.record.QualityRank, "/10");
868
852
  } }
869
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_ng_template_1_Template(rf, ctx) { if (rf & 1) {
870
- i0.ɵɵelementStart(0, "span", 53);
871
- i0.ɵɵelement(1, "i", 139);
853
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_ng_template_1_Template(rf, ctx) { if (rf & 1) {
854
+ i0.ɵɵelementStart(0, "span", 57);
855
+ i0.ɵɵelement(1, "i", 140);
872
856
  i0.ɵɵtext(2, " Permissions ");
873
857
  i0.ɵɵelementEnd();
874
858
  } }
875
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_3_Template(rf, ctx) { if (rf & 1) {
859
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_3_Template(rf, ctx) { if (rf & 1) {
876
860
  i0.ɵɵelementStart(0, "div", 75);
877
- i0.ɵɵelement(1, "mj-loading", 140);
861
+ i0.ɵɵelement(1, "mj-loading", 141);
878
862
  i0.ɵɵelementEnd();
879
863
  } }
880
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
864
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
881
865
  i0.ɵɵelementStart(0, "div", 79);
882
- i0.ɵɵelement(1, "i", 141);
866
+ i0.ɵɵelement(1, "i", 142);
883
867
  i0.ɵɵelementStart(2, "div", 81);
884
868
  i0.ɵɵtext(3, "No Permissions Set");
885
869
  i0.ɵɵelementEnd();
@@ -887,62 +871,62 @@ function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4
887
871
  i0.ɵɵtext(5, " This query uses default permissions. ");
888
872
  i0.ɵɵelementEnd()();
889
873
  } }
890
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
891
- i0.ɵɵelement(0, "mj-explorer-entity-data-grid", 142);
874
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
875
+ i0.ɵɵelement(0, "mj-explorer-entity-data-grid", 143);
892
876
  } if (rf & 2) {
893
877
  const ctx_r2 = i0.ɵɵnextContext(5);
894
878
  i0.ɵɵproperty("Params", ctx_r2.BuildRelationshipViewParamsByEntityName("MJ: Query Permissions", "QueryID"))("NewRecordValues", ctx_r2.NewRecordValues("MJ: Query Permissions"))("AllowLoad", true)("ShowToolbar", false);
895
879
  } }
896
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
897
- i0.ɵɵelementStart(0, "div", 144);
898
- i0.ɵɵelement(1, "i", 145);
899
- i0.ɵɵelementStart(2, "div", 146)(3, "div", 147);
880
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
881
+ i0.ɵɵelementStart(0, "div", 145);
882
+ i0.ɵɵelement(1, "i", 146);
883
+ i0.ɵɵelementStart(2, "div", 147)(3, "div", 148);
900
884
  i0.ɵɵtext(4);
901
885
  i0.ɵɵelementEnd();
902
- i0.ɵɵelementStart(5, "div", 148);
886
+ i0.ɵɵelementStart(5, "div", 149);
903
887
  i0.ɵɵtext(6, "Role Permission");
904
888
  i0.ɵɵelementEnd()();
905
- i0.ɵɵelementStart(7, "span", 149);
906
- i0.ɵɵelement(8, "i", 43);
889
+ i0.ɵɵelementStart(7, "span", 150);
890
+ i0.ɵɵelement(8, "i", 47);
907
891
  i0.ɵɵtext(9, " Can Execute ");
908
892
  i0.ɵɵelementEnd()();
909
893
  } if (rf & 2) {
910
- const permission_r34 = ctx.$implicit;
894
+ const permission_r33 = ctx.$implicit;
911
895
  i0.ɵɵadvance(4);
912
- i0.ɵɵtextInterpolate(permission_r34.Role);
896
+ i0.ɵɵtextInterpolate(permission_r33.Role);
913
897
  } }
914
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
915
- i0.ɵɵelementStart(0, "div", 143);
916
- i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div", 144, _forTrack2);
898
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
899
+ i0.ɵɵelementStart(0, "div", 144);
900
+ i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div", 145, _forTrack2);
917
901
  i0.ɵɵelementEnd();
918
902
  } if (rf & 2) {
919
903
  const ctx_r2 = i0.ɵɵnextContext(5);
920
904
  i0.ɵɵadvance();
921
905
  i0.ɵɵrepeater(ctx_r2.queryPermissions);
922
906
  } }
923
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
924
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid", 142)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Conditional_1_Template, 3, 0, "div", 143);
907
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
908
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid", 143)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Conditional_1_Template, 3, 0, "div", 144);
925
909
  } if (rf & 2) {
926
910
  const ctx_r2 = i0.ɵɵnextContext(4);
927
911
  i0.ɵɵconditional(ctx_r2.EditMode ? 0 : 1);
928
912
  } }
929
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Template(rf, ctx) { if (rf & 1) {
930
- i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_0_Template, 6, 0, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Conditional_1_Template, 2, 1);
913
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Template(rf, ctx) { if (rf & 1) {
914
+ i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_0_Template, 6, 0, "div", 79)(1, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Conditional_1_Template, 2, 1);
931
915
  } if (rf & 2) {
932
916
  const ctx_r2 = i0.ɵɵnextContext(3);
933
917
  i0.ɵɵconditional(ctx_r2.queryPermissions.length === 0 && !ctx_r2.EditMode ? 0 : 1);
934
918
  } }
935
- function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Template(rf, ctx) { if (rf & 1) {
936
- const _r33 = i0.ɵɵgetCurrentView();
937
- i0.ɵɵelementStart(0, "kendo-expansionpanel", 24);
938
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_60_Template_kendo_expansionpanel_expandedChange_0_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.permissionsPanelExpanded, $event) || (ctx_r2.permissionsPanelExpanded = $event); return i0.ɵɵresetView($event); });
939
- i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_60_ng_template_1_Template, 3, 0, "ng-template", 25);
940
- i0.ɵɵelementStart(2, "div", 30);
941
- i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Conditional_4_Template, 2, 1);
919
+ function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template(rf, ctx) { if (rf & 1) {
920
+ const _r32 = i0.ɵɵgetCurrentView();
921
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
922
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.permissionsPanelExpanded, $event) || (ctx_r2.permissionsPanelExpanded = $event); return i0.ɵɵresetView($event); });
923
+ i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_1_Conditional_66_ng_template_1_Template, 3, 0, "ng-template", 25);
924
+ i0.ɵɵelementStart(2, "div", 34);
925
+ i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_3_Template, 2, 0, "div", 75)(4, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Conditional_4_Template, 2, 1);
942
926
  i0.ɵɵelementEnd()();
943
927
  } if (rf & 2) {
944
928
  const ctx_r2 = i0.ɵɵnextContext(2);
945
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.permissionsPanelExpanded);
929
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.permissionsPanelExpanded);
946
930
  i0.ɵɵadvance(3);
947
931
  i0.ɵɵconditional(ctx_r2.isLoadingPermissions ? 3 : 4);
948
932
  } }
@@ -952,71 +936,79 @@ function MJQueryFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf &
952
936
  i0.ɵɵelement(2, "mj-form-toolbar", 4);
953
937
  i0.ɵɵelementStart(3, "div", 5)(4, "div", 6)(5, "div", 7)(6, "div", 8);
954
938
  i0.ɵɵelement(7, "i", 9);
955
- i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_8_Template, 1, 1, "kendo-textbox", 10)(9, MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template, 2, 1, "h4", 11);
939
+ i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_1_Conditional_8_Template, 1, 1, "input", 10)(9, MJQueryFormComponentExtended_Conditional_1_Conditional_9_Template, 2, 1, "h4", 11);
956
940
  i0.ɵɵelementEnd();
957
941
  i0.ɵɵelementStart(10, "div", 12);
958
- i0.ɵɵconditionalCreate(11, MJQueryFormComponentExtended_Conditional_1_Conditional_11_Template, 3, 3, "button", 13);
942
+ i0.ɵɵconditionalCreate(11, MJQueryFormComponentExtended_Conditional_1_Conditional_11_Template, 3, 1, "button", 13);
959
943
  i0.ɵɵelementEnd()();
960
944
  i0.ɵɵelementStart(12, "div", 14)(13, "div", 15)(14, "label", 16);
961
945
  i0.ɵɵtext(15, "Category");
962
946
  i0.ɵɵelementEnd();
963
- i0.ɵɵconditionalCreate(16, MJQueryFormComponentExtended_Conditional_1_Conditional_16_Template, 1, 3, "kendo-dropdownlist", 17)(17, MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template, 2, 1, "span", 18);
947
+ i0.ɵɵconditionalCreate(16, MJQueryFormComponentExtended_Conditional_1_Conditional_16_Template, 1, 3, "mj-dropdown", 17)(17, MJQueryFormComponentExtended_Conditional_1_Conditional_17_Template, 2, 1, "span", 18);
964
948
  i0.ɵɵelementEnd();
965
949
  i0.ɵɵelementStart(18, "div", 15)(19, "label", 16);
966
950
  i0.ɵɵtext(20, "Status");
967
951
  i0.ɵɵelementEnd();
968
- i0.ɵɵconditionalCreate(21, MJQueryFormComponentExtended_Conditional_1_Conditional_21_Template, 1, 3, "kendo-dropdownlist", 19)(22, MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template, 3, 5, "span", 20);
952
+ i0.ɵɵconditionalCreate(21, MJQueryFormComponentExtended_Conditional_1_Conditional_21_Template, 1, 3, "mj-dropdown", 19)(22, MJQueryFormComponentExtended_Conditional_1_Conditional_22_Template, 3, 5, "span", 20);
969
953
  i0.ɵɵelementEnd()();
970
954
  i0.ɵɵconditionalCreate(23, MJQueryFormComponentExtended_Conditional_1_Conditional_23_Template, 3, 1, "div", 21);
971
955
  i0.ɵɵelementEnd()();
972
956
  i0.ɵɵconditionalCreate(24, MJQueryFormComponentExtended_Conditional_1_Conditional_24_Template, 7, 8, "div", 22);
973
- i0.ɵɵelementStart(25, "div", 23)(26, "kendo-expansionpanel", 24);
974
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_kendo_expansionpanel_expandedChange_26_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.sqlPanelExpanded, $event) || (ctx_r2.sqlPanelExpanded = $event); return i0.ɵɵresetView($event); });
975
- i0.ɵɵtemplate(27, MJQueryFormComponentExtended_Conditional_1_ng_template_27_Template, 10, 2, "ng-template", 25);
976
- i0.ɵɵelementStart(28, "div", 26)(29, "mj-code-editor", 27, 1);
977
- i0.ɵɵlistener("change", function MJQueryFormComponentExtended_Conditional_1_Template_mj_code_editor_change_29_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_29_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCompositionTokenClick($event)); });
957
+ i0.ɵɵelementStart(25, "div", 23)(26, "mj-accordion-panel", 24);
958
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_26_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.sqlPanelExpanded, $event) || (ctx_r2.sqlPanelExpanded = $event); return i0.ɵɵresetView($event); });
959
+ i0.ɵɵtemplate(27, MJQueryFormComponentExtended_Conditional_1_ng_template_27_Template, 5, 1, "ng-template", 25);
960
+ i0.ɵɵelementStart(28, "div", 26)(29, "button", 27);
961
+ i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_1_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleFiltersHelp()); });
962
+ i0.ɵɵelement(30, "i", 28);
963
+ i0.ɵɵelementStart(31, "span");
964
+ i0.ɵɵtext(32, "Filters Help");
965
+ i0.ɵɵelementEnd();
966
+ i0.ɵɵelement(33, "i", 29);
967
+ i0.ɵɵelementEnd()();
968
+ i0.ɵɵelementStart(34, "div", 30)(35, "mj-code-editor", 31, 1);
969
+ i0.ɵɵlistener("change", function MJQueryFormComponentExtended_Conditional_1_Template_mj_code_editor_change_35_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_35_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCompositionTokenClick($event)); });
978
970
  i0.ɵɵelementEnd();
979
- i0.ɵɵconditionalCreate(31, MJQueryFormComponentExtended_Conditional_1_Conditional_31_Template, 7, 0, "div", 28);
971
+ i0.ɵɵconditionalCreate(37, MJQueryFormComponentExtended_Conditional_1_Conditional_37_Template, 7, 0, "div", 32);
980
972
  i0.ɵɵelementEnd()();
981
- i0.ɵɵconditionalCreate(32, MJQueryFormComponentExtended_Conditional_1_Conditional_32_Template, 5, 2, "kendo-expansionpanel", 29);
982
- i0.ɵɵconditionalCreate(33, MJQueryFormComponentExtended_Conditional_1_Conditional_33_Template, 5, 2, "kendo-expansionpanel", 29);
983
- i0.ɵɵconditionalCreate(34, MJQueryFormComponentExtended_Conditional_1_Conditional_34_Template, 5, 2, "kendo-expansionpanel", 29);
984
- i0.ɵɵconditionalCreate(35, MJQueryFormComponentExtended_Conditional_1_Conditional_35_Template, 11, 2, "kendo-expansionpanel", 29);
985
- i0.ɵɵconditionalCreate(36, MJQueryFormComponentExtended_Conditional_1_Conditional_36_Template, 5, 2, "kendo-expansionpanel", 29);
986
- i0.ɵɵelementStart(37, "kendo-expansionpanel", 24);
987
- i0.ɵɵtwoWayListener("expandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_kendo_expansionpanel_expandedChange_37_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.detailsPanelExpanded, $event) || (ctx_r2.detailsPanelExpanded = $event); return i0.ɵɵresetView($event); });
988
- i0.ɵɵtemplate(38, MJQueryFormComponentExtended_Conditional_1_ng_template_38_Template, 3, 0, "ng-template", 25);
989
- i0.ɵɵelementStart(39, "div", 30)(40, "div", 31)(41, "div", 32)(42, "label", 33);
990
- i0.ɵɵelement(43, "i", 34);
991
- i0.ɵɵtext(44, " Template Usage ");
992
- i0.ɵɵelementEnd();
993
- i0.ɵɵconditionalCreate(45, MJQueryFormComponentExtended_Conditional_1_Conditional_45_Template, 1, 1, "kendo-switch", 35)(46, MJQueryFormComponentExtended_Conditional_1_Conditional_46_Template, 3, 1, "div", 36);
994
- i0.ɵɵelementEnd();
995
- i0.ɵɵelementStart(47, "div", 32)(48, "label", 33);
996
- i0.ɵɵelement(49, "i", 37);
997
- i0.ɵɵtext(50, " Created ");
998
- i0.ɵɵelementEnd();
999
- i0.ɵɵelementStart(51, "div", 36);
1000
- i0.ɵɵtext(52);
973
+ i0.ɵɵconditionalCreate(38, MJQueryFormComponentExtended_Conditional_1_Conditional_38_Template, 5, 2, "mj-accordion-panel", 33);
974
+ i0.ɵɵconditionalCreate(39, MJQueryFormComponentExtended_Conditional_1_Conditional_39_Template, 5, 2, "mj-accordion-panel", 33);
975
+ i0.ɵɵconditionalCreate(40, MJQueryFormComponentExtended_Conditional_1_Conditional_40_Template, 5, 2, "mj-accordion-panel", 33);
976
+ i0.ɵɵconditionalCreate(41, MJQueryFormComponentExtended_Conditional_1_Conditional_41_Template, 11, 2, "mj-accordion-panel", 33);
977
+ i0.ɵɵconditionalCreate(42, MJQueryFormComponentExtended_Conditional_1_Conditional_42_Template, 5, 2, "mj-accordion-panel", 33);
978
+ i0.ɵɵelementStart(43, "mj-accordion-panel", 24);
979
+ i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_accordion_panel_ExpandedChange_43_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.detailsPanelExpanded, $event) || (ctx_r2.detailsPanelExpanded = $event); return i0.ɵɵresetView($event); });
980
+ i0.ɵɵtemplate(44, MJQueryFormComponentExtended_Conditional_1_ng_template_44_Template, 3, 0, "ng-template", 25);
981
+ i0.ɵɵelementStart(45, "div", 34)(46, "div", 35)(47, "div", 36)(48, "label", 37);
982
+ i0.ɵɵelement(49, "i", 38);
983
+ i0.ɵɵtext(50, " Template Usage ");
984
+ i0.ɵɵelementEnd();
985
+ i0.ɵɵconditionalCreate(51, MJQueryFormComponentExtended_Conditional_1_Conditional_51_Template, 1, 1, "mj-switch", 39)(52, MJQueryFormComponentExtended_Conditional_1_Conditional_52_Template, 3, 1, "div", 40);
986
+ i0.ɵɵelementEnd();
987
+ i0.ɵɵelementStart(53, "div", 36)(54, "label", 37);
988
+ i0.ɵɵelement(55, "i", 41);
989
+ i0.ɵɵtext(56, " Created ");
990
+ i0.ɵɵelementEnd();
991
+ i0.ɵɵelementStart(57, "div", 40);
992
+ i0.ɵɵtext(58);
1001
993
  i0.ɵɵelementEnd()();
1002
- i0.ɵɵelementStart(53, "div", 32)(54, "label", 33);
1003
- i0.ɵɵelement(55, "i", 38);
1004
- i0.ɵɵtext(56, " Last Updated ");
994
+ i0.ɵɵelementStart(59, "div", 36)(60, "label", 37);
995
+ i0.ɵɵelement(61, "i", 42);
996
+ i0.ɵɵtext(62, " Last Updated ");
1005
997
  i0.ɵɵelementEnd();
1006
- i0.ɵɵelementStart(57, "div", 36);
1007
- i0.ɵɵtext(58);
998
+ i0.ɵɵelementStart(63, "div", 40);
999
+ i0.ɵɵtext(64);
1008
1000
  i0.ɵɵelementEnd()();
1009
- i0.ɵɵconditionalCreate(59, MJQueryFormComponentExtended_Conditional_1_Conditional_59_Template, 6, 1, "div", 32);
1001
+ i0.ɵɵconditionalCreate(65, MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template, 6, 1, "div", 36);
1010
1002
  i0.ɵɵelementEnd()()();
1011
- i0.ɵɵconditionalCreate(60, MJQueryFormComponentExtended_Conditional_1_Conditional_60_Template, 5, 2, "kendo-expansionpanel", 29);
1003
+ i0.ɵɵconditionalCreate(66, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template, 5, 2, "mj-accordion-panel", 33);
1012
1004
  i0.ɵɵelementEnd()();
1013
- i0.ɵɵelementStart(61, "mj-query-run-dialog", 39);
1014
- i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_isVisibleChange_61_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showRunDialog, $event) || (ctx_r2.showRunDialog = $event); return i0.ɵɵresetView($event); });
1015
- i0.ɵɵlistener("onClose", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_onClose_61_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRunDialogClose()); });
1005
+ i0.ɵɵelementStart(67, "mj-query-run-dialog", 43);
1006
+ i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_isVisibleChange_67_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showRunDialog, $event) || (ctx_r2.showRunDialog = $event); return i0.ɵɵresetView($event); });
1007
+ i0.ɵɵlistener("onClose", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_run_dialog_onClose_67_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRunDialogClose()); });
1016
1008
  i0.ɵɵelementEnd();
1017
- i0.ɵɵelementStart(62, "mj-query-category-dialog", 40);
1018
- i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_isVisibleChange_62_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showCategoryDialog, $event) || (ctx_r2.showCategoryDialog = $event); return i0.ɵɵresetView($event); });
1019
- i0.ɵɵlistener("onCategoryCreated", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_onCategoryCreated_62_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCategoryCreated($event)); });
1009
+ i0.ɵɵelementStart(68, "mj-query-category-dialog", 44);
1010
+ i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_isVisibleChange_68_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.showCategoryDialog, $event) || (ctx_r2.showCategoryDialog = $event); return i0.ɵɵresetView($event); });
1011
+ i0.ɵɵlistener("onCategoryCreated", function MJQueryFormComponentExtended_Conditional_1_Template_mj_query_category_dialog_onCategoryCreated_68_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCategoryCreated($event)); });
1020
1012
  i0.ɵɵelementEnd();
1021
1013
  } if (rf & 2) {
1022
1014
  const ctx_r2 = i0.ɵɵnextContext();
@@ -1035,33 +1027,35 @@ function MJQueryFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf &
1035
1027
  i0.ɵɵadvance();
1036
1028
  i0.ɵɵconditional(ctx_r2.record.Status && ctx_r2.record.Status !== "Approved" && !ctx_r2.EditMode ? 24 : -1);
1037
1029
  i0.ɵɵadvance(2);
1038
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.sqlPanelExpanded);
1039
- i0.ɵɵadvance(3);
1030
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.sqlPanelExpanded);
1031
+ i0.ɵɵadvance(7);
1032
+ i0.ɵɵproperty("ngClass", ctx_r2.showFiltersHelp ? "fa-chevron-up" : "fa-chevron-down");
1033
+ i0.ɵɵadvance(2);
1040
1034
  i0.ɵɵproperty("language", "sql");
1041
1035
  i0.ɵɵadvance(2);
1042
- i0.ɵɵconditional(ctx_r2.showFiltersHelp ? 31 : -1);
1036
+ i0.ɵɵconditional(ctx_r2.showFiltersHelp ? 37 : -1);
1043
1037
  i0.ɵɵadvance();
1044
- i0.ɵɵconditional(ctx_r2.record.TechnicalDescription || ctx_r2.EditMode ? 32 : -1);
1038
+ i0.ɵɵconditional(ctx_r2.record.TechnicalDescription || ctx_r2.EditMode ? 38 : -1);
1045
1039
  i0.ɵɵadvance();
1046
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 33 : -1);
1040
+ i0.ɵɵconditional(ctx_r2.record.IsSaved ? 39 : -1);
1047
1041
  i0.ɵɵadvance();
1048
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 34 : -1);
1042
+ i0.ɵɵconditional(ctx_r2.record.IsSaved ? 40 : -1);
1049
1043
  i0.ɵɵadvance();
1050
- i0.ɵɵconditional(ctx_r2.record.IsSaved && ctx_r2.DependentQueries.length > 0 ? 35 : -1);
1044
+ i0.ɵɵconditional(ctx_r2.record.IsSaved && ctx_r2.DependentQueries.length > 0 ? 41 : -1);
1051
1045
  i0.ɵɵadvance();
1052
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 36 : -1);
1046
+ i0.ɵɵconditional(ctx_r2.record.IsSaved ? 42 : -1);
1053
1047
  i0.ɵɵadvance();
1054
- i0.ɵɵtwoWayProperty("expanded", ctx_r2.detailsPanelExpanded);
1048
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r2.detailsPanelExpanded);
1055
1049
  i0.ɵɵadvance(8);
1056
- i0.ɵɵconditional(ctx_r2.EditMode ? 45 : 46);
1050
+ i0.ɵɵconditional(ctx_r2.EditMode ? 51 : 52);
1057
1051
  i0.ɵɵadvance(7);
1058
1052
  i0.ɵɵtextInterpolate(ctx_r2.formatDate(ctx_r2.record.__mj_CreatedAt));
1059
1053
  i0.ɵɵadvance(6);
1060
1054
  i0.ɵɵtextInterpolate(ctx_r2.formatDate(ctx_r2.record.__mj_UpdatedAt));
1061
1055
  i0.ɵɵadvance();
1062
- i0.ɵɵconditional(ctx_r2.record.QualityRank != null ? 59 : -1);
1056
+ i0.ɵɵconditional(ctx_r2.record.QualityRank != null ? 65 : -1);
1063
1057
  i0.ɵɵadvance();
1064
- i0.ɵɵconditional(ctx_r2.record.IsSaved ? 60 : -1);
1058
+ i0.ɵɵconditional(ctx_r2.record.IsSaved ? 66 : -1);
1065
1059
  i0.ɵɵadvance();
1066
1060
  i0.ɵɵproperty("query", ctx_r2.record)("parameters", ctx_r2.queryParameters);
1067
1061
  i0.ɵɵtwoWayProperty("isVisible", ctx_r2.showRunDialog);
@@ -1798,14 +1792,14 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
1798
1792
  } if (rf & 2) {
1799
1793
  let _t;
1800
1794
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sqlEditor = _t.first);
1801
- } }, 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"], [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, "query-name-input", 3, "ngModel"], [1, "query-name-display"], [1, "query-header-actions"], ["kendoButton", "", "title", "Run Query", 1, "run-query-btn", 3, "themeColor", "size", "disabled"], [1, "query-meta-row"], [1, "query-meta-item"], [1, "meta-label"], ["name", "categoryId", "textField", "text", "valueField", "value", "placeholder", "Select category...", 1, "meta-dropdown", 3, "ngModel", "data", "valuePrimitive"], [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"], ["kendoExpansionPanelTitleDirective", ""], [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-file-code"], ["name", "usesTemplate", 3, "ngModel"], [1, "detail-value"], [1, "fa-solid", "fa-calendar-plus"], [1, "fa-solid", "fa-calendar-check"], [3, "isVisibleChange", "onClose", "query", "parameters", "isVisible"], [3, "isVisibleChange", "onCategoryCreated", "isVisible"], ["name", "queryName", "placeholder", "Enter query name...", 1, "query-name-input", 3, "ngModelChange", "ngModel"], ["kendoButton", "", "title", "Run Query", 1, "run-query-btn", 3, "click", "themeColor", "size", "disabled"], [1, "fa-solid", "fa-play"], ["name", "categoryId", "textField", "text", "valueField", "value", "placeholder", "Select category...", 1, "meta-dropdown", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["name", "status", "textField", "text", "valueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [1, "status-pill"], [1, "fa-solid"], ["name", "description", "placeholder", "Enter query description...", 1, "query-description-input", 3, "ngModel", "rows"], [1, "query-description-text"], ["name", "description", "placeholder", "Enter query description...", 1, "query-description-input", 3, "ngModelChange", "ngModel", "rows"], [1, "status-warning-banner"], [1, "panel-title-row"], [1, "panel-title"], [1, "fa-solid", "fa-code", "panel-icon", "sql-icon"], [1, "panel-badge", "defined"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Show/hide SQL filters help", 1, "filters-help-btn", 3, "click"], [1, "fa-solid", "fa-question-circle"], [1, "fa-solid", 3, "ngClass"], [1, "fa-solid", "fa-check"], [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", "placeholder", "Technical documentation of the query logic, performance considerations, and parameter usage. Supports markdown and mermaid diagrams.", 1, "technical-description-textarea", 3, "ngModelChange", "ngModel", "rows"], [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", "usesTemplate", 3, "ngModelChange", "ngModel"], [1, "detail-tag", "positive"], [1, "detail-tag", "neutral"], [1, "fa-solid", "fa-times"], [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) {
1795
+ } }, 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"], [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"], ["name", "categoryId", "TextField", "text", "ValueField", "value", "Placeholder", "Select category...", 1, "meta-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [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-file-code"], ["name", "usesTemplate", 3, "ngModel"], [1, "detail-value"], [1, "fa-solid", "fa-calendar-plus"], [1, "fa-solid", "fa-calendar-check"], [3, "isVisibleChange", "onClose", "query", "parameters", "isVisible"], [3, "isVisibleChange", "onCategoryCreated", "isVisible"], ["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"], ["name", "categoryId", "TextField", "text", "ValueField", "value", "Placeholder", "Select category...", 1, "meta-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["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", "usesTemplate", 3, "ngModelChange", "ngModel"], [1, "detail-tag", "positive"], [1, "detail-tag", "neutral"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-times"], [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) {
1802
1796
  i0.ɵɵelementStart(0, "div", 2);
1803
- i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Template, 63, 26);
1797
+ i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_1_Template, 69, 27);
1804
1798
  i0.ɵɵelementEnd();
1805
1799
  } if (rf & 2) {
1806
1800
  i0.ɵɵadvance();
1807
1801
  i0.ɵɵconditional(ctx.record ? 1 : -1);
1808
- } }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.NgModel, i2.NgForm, i3.ExpansionPanelComponent, i3.ExpansionPanelTitleDirective, i4.TextBoxComponent, i4.TextAreaComponent, i4.SwitchComponent, i5.DropDownListComponent, i6.ButtonComponent, i7.MjFormToolbarComponent, i7.ExplorerEntityDataGridComponent, i8.CodeEditorComponent, i9.LoadingComponent, i10.MarkdownComponent, i11.QueryRunDialogComponent, i12.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.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 kendo-expansionpanel {\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 .k-expander-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 .k-expander-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n .query-content kendo-expansionpanel[aria-expanded=\"true\"] .k-expander-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 .k-expander-content {\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 kendo-expansionpanel[aria-expanded=\"true\"] .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 kendo-expansionpanel[aria-expanded=\"true\"] .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n kendo-expansionpanel[aria-expanded=\"true\"] .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\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}"] }); }
1802
+ } }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, 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.QueryRunDialogComponent, i9.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.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\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}"] }); }
1809
1803
  };
1810
1804
  MJQueryFormComponentExtended = __decorate([
1811
1805
  RegisterClass(BaseFormComponent, 'MJ: Queries')
@@ -1813,7 +1807,7 @@ MJQueryFormComponentExtended = __decorate([
1813
1807
  export { MJQueryFormComponentExtended };
1814
1808
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJQueryFormComponentExtended, [{
1815
1809
  type: Component,
1816
- 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\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"query-header\">\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 <kendo-textbox [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\"\n class=\"query-name-input\">\n </kendo-textbox>\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 kendoButton\n [themeColor]=\"'primary'\"\n [size]=\"'large'\"\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 <kendo-dropdownlist\n [(ngModel)]=\"record.CategoryID\"\n name=\"categoryId\"\n [data]=\"categoryOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n placeholder=\"Select category...\"\n class=\"meta-dropdown\">\n </kendo-dropdownlist>\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 <kendo-dropdownlist\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 </kendo-dropdownlist>\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 <kendo-textarea [(ngModel)]=\"record.Description\"\n name=\"description\"\n [rows]=\"2\"\n placeholder=\"Enter query description...\"\n class=\"query-description-input\">\n </kendo-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\">\n\n <!-- SQL Query Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"sqlPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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\">\n <i class=\"fa-solid fa-check\"></i> Defined\n </span>\n }\n </span>\n <button type=\"button\"\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"toggleFiltersHelp(); $event.stopPropagation()\"\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 </span>\n </ng-template>\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 </kendo-expansionpanel>\n\n <!-- Technical Description Panel -->\n @if (record.TechnicalDescription || EditMode) {\n <kendo-expansionpanel\n [(expanded)]=\"technicalDescriptionPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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\">\n <i class=\"fa-solid fa-check\"></i> Documented\n </span>\n }\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (EditMode) {\n <kendo-textarea [(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 class=\"technical-description-textarea\">\n </kendo-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 </kendo-expansionpanel>\n }\n\n <!-- Parameters Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"parametersPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 </kendo-expansionpanel>\n }\n\n <!-- Query Fields Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"fieldsPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 </kendo-expansionpanel>\n }\n\n <!-- Dependent Queries Panel -->\n @if (record.IsSaved && DependentQueries.length > 0) {\n <kendo-expansionpanel\n [(expanded)]=\"dependentsPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 </kendo-expansionpanel>\n }\n\n <!-- Query Entities Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"entitiesPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 <kendo-dropdownlist\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 </kendo-dropdownlist>\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 </kendo-expansionpanel>\n }\n\n <!-- Details Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"detailsPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 <!-- 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 <kendo-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></kendo-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 </kendo-expansionpanel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"permissionsPanelExpanded\"\n class=\"query-panel\">\n <ng-template kendoExpansionPanelTitleDirective>\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 </kendo-expansionpanel>\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 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 Expansion Panel Overrides \u2014 Modern Style\n ======================================== */\n\n.query-panel {\n margin-bottom: 12px;\n}\n\n::ng-deep .query-content kendo-expansionpanel {\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 .k-expander-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 .k-expander-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n::ng-deep .query-content kendo-expansionpanel[aria-expanded=\"true\"] .k-expander-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 .k-expander-content {\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 kendo-expansionpanel[aria-expanded=\"true\"] .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 kendo-expansionpanel[aria-expanded=\"true\"] .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n::ng-deep kendo-expansionpanel[aria-expanded=\"true\"] .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/* ========================================\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"] }]
1810
+ 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\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"query-header\">\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-dropdown\n [(ngModel)]=\"record.CategoryID\"\n name=\"categoryId\"\n [Data]=\"categoryOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n Placeholder=\"Select category...\"\n class=\"meta-dropdown\">\n </mj-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\">\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 <!-- 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 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/* ========================================\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"] }]
1817
1811
  }], null, { sqlEditor: [{
1818
1812
  type: ViewChild,
1819
1813
  args: ['sqlEditor']