@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.
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +55 -59
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +0 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +54 -71
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1053 -1096
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +2 -3
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +39 -82
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +28 -31
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +15 -14
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +4 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +77 -124
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +2 -2
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +10 -11
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +18 -18
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +59 -80
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +23 -24
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +862 -906
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +4 -5
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +448 -499
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +2 -2
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +6 -11
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +16 -15
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +160 -166
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +93 -94
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +22 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +1 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js +165 -0
- package/dist/lib/custom/ContentSources/content-source-form.component.js.map +1 -0
- package/dist/lib/custom/Entities/entity-form.component.js +2 -2
- package/dist/lib/custom/Lists/list-form.component.js +61 -63
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +33 -59
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +354 -360
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +62 -71
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +128 -124
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +45 -22
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +380 -384
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +34 -36
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +8 -9
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +4 -4
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +7 -7
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +6 -7
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -409
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +74 -63
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +10 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +352 -332
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +25 -29
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +57 -82
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +4 -5
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +59 -66
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +176 -156
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +89 -0
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +98 -44
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +35 -17
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +79 -20
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +73 -0
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +11 -6
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +49 -8
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +57 -0
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +71 -24
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +43 -15
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +43 -17
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +21 -11
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +19 -13
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +7 -9
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +78 -60
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +21 -9
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +23 -5
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +77 -0
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +22 -4
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +139 -19
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +67 -0
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +65 -0
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +10 -8
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +226 -154
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +41 -5
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +286 -279
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +192 -214
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +14 -15
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- 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 "@
|
|
19
|
-
import * as i4 from "@
|
|
20
|
-
import * as i5 from "@
|
|
21
|
-
import * as i6 from "@
|
|
22
|
-
import * as i7 from "@memberjunction/ng-
|
|
23
|
-
import * as i8 from "
|
|
24
|
-
import * as i9 from "
|
|
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, "
|
|
35
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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",
|
|
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",
|
|
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("
|
|
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, "
|
|
64
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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("
|
|
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, "
|
|
83
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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("
|
|
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",
|
|
92
|
-
i0.ɵɵelement(1, "i",
|
|
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, "
|
|
106
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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",
|
|
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,
|
|
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",
|
|
133
|
-
i0.ɵɵelement(1, "i",
|
|
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",
|
|
154
|
-
i0.ɵɵ
|
|
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
|
-
|
|
160
|
-
i0.ɵɵ
|
|
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,
|
|
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
|
|
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
|
|
170
|
+
const filter_r8 = i0.ɵɵnextContext().$implicit;
|
|
186
171
|
i0.ɵɵadvance();
|
|
187
|
-
i0.ɵɵtextInterpolate(
|
|
172
|
+
i0.ɵɵtextInterpolate(filter_r8.notes);
|
|
188
173
|
} }
|
|
189
|
-
function
|
|
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,
|
|
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
|
|
187
|
+
const filter_r8 = ctx.$implicit;
|
|
203
188
|
i0.ɵɵadvance(2);
|
|
204
|
-
i0.ɵɵtextInterpolate(
|
|
189
|
+
i0.ɵɵtextInterpolate(filter_r8.name);
|
|
205
190
|
i0.ɵɵadvance(2);
|
|
206
|
-
i0.ɵɵtextInterpolate(
|
|
191
|
+
i0.ɵɵtextInterpolate(filter_r8.description);
|
|
207
192
|
i0.ɵɵadvance(2);
|
|
208
|
-
i0.ɵɵtextInterpolate(
|
|
193
|
+
i0.ɵɵtextInterpolate(filter_r8.exampleSyntax);
|
|
209
194
|
i0.ɵɵadvance();
|
|
210
|
-
i0.ɵɵconditional(
|
|
195
|
+
i0.ɵɵconditional(filter_r8.notes ? 7 : -1);
|
|
211
196
|
} }
|
|
212
|
-
function
|
|
213
|
-
i0.ɵɵelementStart(0, "div",
|
|
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,
|
|
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
|
|
226
|
-
i0.ɵɵelementStart(0, "span",
|
|
227
|
-
i0.ɵɵ
|
|
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
|
|
232
|
-
i0.ɵɵelementStart(0, "span",
|
|
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,
|
|
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
|
|
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
|
|
255
|
-
const
|
|
256
|
-
i0.ɵɵelementStart(0, "
|
|
257
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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(
|
|
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.ɵɵ
|
|
264
|
-
i0.ɵɵ
|
|
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
|
|
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
|
|
277
|
-
const
|
|
278
|
-
i0.ɵɵelementStart(0, "
|
|
279
|
-
i0.ɵɵtwoWayListener("
|
|
280
|
-
i0.ɵɵtemplate(1,
|
|
281
|
-
i0.ɵɵelementStart(2, "div",
|
|
282
|
-
i0.ɵɵconditionalCreate(3,
|
|
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("
|
|
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
|
|
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
|
|
300
|
-
i0.ɵɵelementStart(0, "span",
|
|
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,
|
|
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
|
|
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
|
|
316
|
-
const
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
340
|
-
const
|
|
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
|
|
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
|
|
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
|
|
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
|
|
341
|
+
const param_r15 = i0.ɵɵnextContext().$implicit;
|
|
358
342
|
i0.ɵɵadvance();
|
|
359
|
-
i0.ɵɵtextInterpolate(
|
|
343
|
+
i0.ɵɵtextInterpolate(param_r15.Description);
|
|
360
344
|
} }
|
|
361
|
-
function
|
|
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
|
|
353
|
+
const param_r15 = i0.ɵɵnextContext().$implicit;
|
|
370
354
|
i0.ɵɵadvance(4);
|
|
371
|
-
i0.ɵɵtextInterpolate(
|
|
355
|
+
i0.ɵɵtextInterpolate(param_r15.DefaultValue);
|
|
372
356
|
} }
|
|
373
|
-
function
|
|
374
|
-
const
|
|
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
|
|
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
|
|
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
|
|
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
|
|
387
|
-
const
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
393
|
+
const param_r15 = ctx.$implicit;
|
|
410
394
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
411
|
-
i0.ɵɵclassProp("required",
|
|
395
|
+
i0.ɵɵclassProp("required", param_r15.IsRequired);
|
|
412
396
|
i0.ɵɵadvance(4);
|
|
413
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
397
|
+
i0.ɵɵtextInterpolate1(" ", param_r15.Name, " ");
|
|
414
398
|
i0.ɵɵadvance(2);
|
|
415
|
-
i0.ɵɵconditional(
|
|
399
|
+
i0.ɵɵconditional(param_r15.IsRequired ? 6 : -1);
|
|
416
400
|
i0.ɵɵadvance(2);
|
|
417
|
-
i0.ɵɵconditional(
|
|
401
|
+
i0.ɵɵconditional(param_r15.Description ? 8 : -1);
|
|
418
402
|
i0.ɵɵadvance(5);
|
|
419
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
403
|
+
i0.ɵɵtextInterpolate1(" ", param_r15.Type || "Text", " ");
|
|
420
404
|
i0.ɵɵadvance();
|
|
421
|
-
i0.ɵɵconditional(
|
|
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
|
|
426
|
-
i0.ɵɵconditionalCreate(0,
|
|
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,
|
|
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
|
|
437
|
-
i0.ɵɵconditionalCreate(0,
|
|
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
|
|
443
|
-
const
|
|
444
|
-
i0.ɵɵelementStart(0, "
|
|
445
|
-
i0.ɵɵtwoWayListener("
|
|
446
|
-
i0.ɵɵtemplate(1,
|
|
447
|
-
i0.ɵɵelementStart(2, "div",
|
|
448
|
-
i0.ɵɵconditionalCreate(3,
|
|
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("
|
|
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
|
|
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
|
|
466
|
-
i0.ɵɵelementStart(0, "span",
|
|
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,
|
|
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
|
|
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
|
|
482
|
-
const
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
506
|
-
const
|
|
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
|
|
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
|
|
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
|
|
502
|
+
const field_r20 = i0.ɵɵnextContext().$implicit;
|
|
519
503
|
i0.ɵɵadvance();
|
|
520
|
-
i0.ɵɵtextInterpolate1("#",
|
|
504
|
+
i0.ɵɵtextInterpolate1("#", field_r20.Sequence);
|
|
521
505
|
} }
|
|
522
|
-
function
|
|
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
|
|
511
|
+
const field_r20 = i0.ɵɵnextContext().$implicit;
|
|
528
512
|
i0.ɵɵadvance();
|
|
529
|
-
i0.ɵɵtextInterpolate(
|
|
513
|
+
i0.ɵɵtextInterpolate(field_r20.Description);
|
|
530
514
|
} }
|
|
531
|
-
function
|
|
532
|
-
const
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
541
|
+
const field_r20 = ctx.$implicit;
|
|
558
542
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
559
543
|
i0.ɵɵadvance(4);
|
|
560
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
544
|
+
i0.ɵɵtextInterpolate1(" ", field_r20.Name, " ");
|
|
561
545
|
i0.ɵɵadvance(3);
|
|
562
|
-
i0.ɵɵtextInterpolate(
|
|
546
|
+
i0.ɵɵtextInterpolate(field_r20.SQLBaseType);
|
|
563
547
|
i0.ɵɵadvance();
|
|
564
|
-
i0.ɵɵconditional(
|
|
548
|
+
i0.ɵɵconditional(field_r20.Sequence ? 8 : -1);
|
|
565
549
|
i0.ɵɵadvance(2);
|
|
566
|
-
i0.ɵɵconditional(
|
|
550
|
+
i0.ɵɵconditional(field_r20.Description ? 10 : -1);
|
|
567
551
|
i0.ɵɵadvance(4);
|
|
568
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
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
|
|
573
|
-
i0.ɵɵconditionalCreate(0,
|
|
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,
|
|
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
|
|
584
|
-
i0.ɵɵconditionalCreate(0,
|
|
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
|
|
590
|
-
const
|
|
591
|
-
i0.ɵɵelementStart(0, "
|
|
592
|
-
i0.ɵɵtwoWayListener("
|
|
593
|
-
i0.ɵɵtemplate(1,
|
|
594
|
-
i0.ɵɵelementStart(2, "div",
|
|
595
|
-
i0.ɵɵconditionalCreate(3,
|
|
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("
|
|
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
|
|
604
|
-
i0.ɵɵelementStart(0, "span",
|
|
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
|
|
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
|
|
605
|
+
const dep_r24 = i0.ɵɵnextContext().$implicit;
|
|
622
606
|
i0.ɵɵadvance(3);
|
|
623
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
607
|
+
i0.ɵɵtextInterpolate1(" ", dep_r24.ReferencePath, " ");
|
|
624
608
|
} }
|
|
625
|
-
function
|
|
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
|
|
617
|
+
const dep_r24 = i0.ɵɵnextContext().$implicit;
|
|
634
618
|
i0.ɵɵadvance(5);
|
|
635
|
-
i0.ɵɵtextInterpolate(
|
|
619
|
+
i0.ɵɵtextInterpolate(dep_r24.Alias);
|
|
636
620
|
} }
|
|
637
|
-
function
|
|
638
|
-
const
|
|
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
|
|
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,
|
|
647
|
-
i0.ɵɵconditionalCreate(7,
|
|
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
|
|
638
|
+
const dep_r24 = ctx.$implicit;
|
|
655
639
|
i0.ɵɵadvance(4);
|
|
656
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
640
|
+
i0.ɵɵtextInterpolate1(" ", dep_r24.Query, " ");
|
|
657
641
|
i0.ɵɵadvance(2);
|
|
658
|
-
i0.ɵɵconditional(
|
|
642
|
+
i0.ɵɵconditional(dep_r24.ReferencePath ? 6 : -1);
|
|
659
643
|
i0.ɵɵadvance();
|
|
660
|
-
i0.ɵɵconditional(
|
|
644
|
+
i0.ɵɵconditional(dep_r24.Alias ? 7 : -1);
|
|
661
645
|
} }
|
|
662
|
-
function
|
|
663
|
-
const
|
|
664
|
-
i0.ɵɵelementStart(0, "
|
|
665
|
-
i0.ɵɵtwoWayListener("
|
|
666
|
-
i0.ɵɵtemplate(1,
|
|
667
|
-
i0.ɵɵelementStart(2, "div",
|
|
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,
|
|
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("
|
|
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
|
|
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
|
|
695
|
-
i0.ɵɵelementStart(0, "span",
|
|
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,
|
|
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
|
|
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
|
|
711
|
-
const
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
735
|
-
const
|
|
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
|
|
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
|
|
743
|
-
const
|
|
744
|
-
i0.ɵɵelementStart(0, "div", 129)(1, "
|
|
745
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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
|
|
732
|
+
const entity_r29 = i0.ɵɵnextContext().$implicit;
|
|
749
733
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
750
734
|
i0.ɵɵadvance();
|
|
751
|
-
i0.ɵɵtwoWayProperty("ngModel",
|
|
752
|
-
i0.ɵɵproperty("name", "entity_" +
|
|
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
|
|
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
|
|
761
|
-
const
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
775
|
-
i0.ɵɵconditionalCreate(7,
|
|
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
|
|
762
|
+
const entity_r29 = ctx.$implicit;
|
|
779
763
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
780
764
|
i0.ɵɵadvance(4);
|
|
781
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
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 &&
|
|
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
|
|
790
|
-
i0.ɵɵconditionalCreate(0,
|
|
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,
|
|
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
|
|
801
|
-
i0.ɵɵconditionalCreate(0,
|
|
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
|
|
807
|
-
const
|
|
808
|
-
i0.ɵɵelementStart(0, "
|
|
809
|
-
i0.ɵɵtwoWayListener("
|
|
810
|
-
i0.ɵɵtemplate(1,
|
|
811
|
-
i0.ɵɵelementStart(2, "div",
|
|
812
|
-
i0.ɵɵconditionalCreate(3,
|
|
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("
|
|
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
|
|
821
|
-
i0.ɵɵelementStart(0, "span",
|
|
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
|
|
827
|
-
const
|
|
828
|
-
i0.ɵɵelementStart(0, "
|
|
829
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
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
|
|
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",
|
|
821
|
+
i0.ɵɵelement(1, "i", 137);
|
|
838
822
|
i0.ɵɵtext(2, " Uses Templates");
|
|
839
823
|
i0.ɵɵelementEnd();
|
|
840
824
|
} }
|
|
841
|
-
function
|
|
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",
|
|
827
|
+
i0.ɵɵelement(1, "i", 138);
|
|
844
828
|
i0.ɵɵtext(2, " No Templates");
|
|
845
829
|
i0.ɵɵelementEnd();
|
|
846
830
|
} }
|
|
847
|
-
function
|
|
848
|
-
i0.ɵɵelementStart(0, "div",
|
|
849
|
-
i0.ɵɵconditionalCreate(1,
|
|
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
|
|
857
|
-
i0.ɵɵelementStart(0, "div",
|
|
858
|
-
i0.ɵɵelement(2, "i",
|
|
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",
|
|
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
|
|
870
|
-
i0.ɵɵelementStart(0, "span",
|
|
871
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
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",
|
|
861
|
+
i0.ɵɵelement(1, "mj-loading", 141);
|
|
878
862
|
i0.ɵɵelementEnd();
|
|
879
863
|
} }
|
|
880
|
-
function
|
|
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",
|
|
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
|
|
891
|
-
i0.ɵɵelement(0, "mj-explorer-entity-data-grid",
|
|
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
|
|
897
|
-
i0.ɵɵelementStart(0, "div",
|
|
898
|
-
i0.ɵɵelement(1, "i",
|
|
899
|
-
i0.ɵɵelementStart(2, "div",
|
|
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",
|
|
886
|
+
i0.ɵɵelementStart(5, "div", 149);
|
|
903
887
|
i0.ɵɵtext(6, "Role Permission");
|
|
904
888
|
i0.ɵɵelementEnd()();
|
|
905
|
-
i0.ɵɵelementStart(7, "span",
|
|
906
|
-
i0.ɵɵelement(8, "i",
|
|
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
|
|
894
|
+
const permission_r33 = ctx.$implicit;
|
|
911
895
|
i0.ɵɵadvance(4);
|
|
912
|
-
i0.ɵɵtextInterpolate(
|
|
896
|
+
i0.ɵɵtextInterpolate(permission_r33.Role);
|
|
913
897
|
} }
|
|
914
|
-
function
|
|
915
|
-
i0.ɵɵelementStart(0, "div",
|
|
916
|
-
i0.ɵɵrepeaterCreate(1,
|
|
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
|
|
924
|
-
i0.ɵɵconditionalCreate(0,
|
|
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
|
|
930
|
-
i0.ɵɵconditionalCreate(0,
|
|
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
|
|
936
|
-
const
|
|
937
|
-
i0.ɵɵelementStart(0, "
|
|
938
|
-
i0.ɵɵtwoWayListener("
|
|
939
|
-
i0.ɵɵtemplate(1,
|
|
940
|
-
i0.ɵɵelementStart(2, "div",
|
|
941
|
-
i0.ɵɵconditionalCreate(3,
|
|
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("
|
|
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, "
|
|
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,
|
|
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, "
|
|
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, "
|
|
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, "
|
|
974
|
-
i0.ɵɵtwoWayListener("
|
|
975
|
-
i0.ɵɵtemplate(27, MJQueryFormComponentExtended_Conditional_1_ng_template_27_Template,
|
|
976
|
-
i0.ɵɵelementStart(28, "div", 26)(29, "
|
|
977
|
-
i0.ɵɵlistener("
|
|
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(
|
|
971
|
+
i0.ɵɵconditionalCreate(37, MJQueryFormComponentExtended_Conditional_1_Conditional_37_Template, 7, 0, "div", 32);
|
|
980
972
|
i0.ɵɵelementEnd()();
|
|
981
|
-
i0.ɵɵconditionalCreate(
|
|
982
|
-
i0.ɵɵconditionalCreate(
|
|
983
|
-
i0.ɵɵconditionalCreate(
|
|
984
|
-
i0.ɵɵconditionalCreate(
|
|
985
|
-
i0.ɵɵconditionalCreate(
|
|
986
|
-
i0.ɵɵelementStart(
|
|
987
|
-
i0.ɵɵtwoWayListener("
|
|
988
|
-
i0.ɵɵtemplate(
|
|
989
|
-
i0.ɵɵelementStart(
|
|
990
|
-
i0.ɵɵelement(
|
|
991
|
-
i0.ɵɵtext(
|
|
992
|
-
i0.ɵɵelementEnd();
|
|
993
|
-
i0.ɵɵconditionalCreate(
|
|
994
|
-
i0.ɵɵelementEnd();
|
|
995
|
-
i0.ɵɵelementStart(
|
|
996
|
-
i0.ɵɵelement(
|
|
997
|
-
i0.ɵɵtext(
|
|
998
|
-
i0.ɵɵelementEnd();
|
|
999
|
-
i0.ɵɵelementStart(
|
|
1000
|
-
i0.ɵɵtext(
|
|
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(
|
|
1003
|
-
i0.ɵɵelement(
|
|
1004
|
-
i0.ɵɵtext(
|
|
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(
|
|
1007
|
-
i0.ɵɵtext(
|
|
998
|
+
i0.ɵɵelementStart(63, "div", 40);
|
|
999
|
+
i0.ɵɵtext(64);
|
|
1008
1000
|
i0.ɵɵelementEnd()();
|
|
1009
|
-
i0.ɵɵconditionalCreate(
|
|
1001
|
+
i0.ɵɵconditionalCreate(65, MJQueryFormComponentExtended_Conditional_1_Conditional_65_Template, 6, 1, "div", 36);
|
|
1010
1002
|
i0.ɵɵelementEnd()()();
|
|
1011
|
-
i0.ɵɵconditionalCreate(
|
|
1003
|
+
i0.ɵɵconditionalCreate(66, MJQueryFormComponentExtended_Conditional_1_Conditional_66_Template, 5, 2, "mj-accordion-panel", 33);
|
|
1012
1004
|
i0.ɵɵelementEnd()();
|
|
1013
|
-
i0.ɵɵelementStart(
|
|
1014
|
-
i0.ɵɵtwoWayListener("isVisibleChange", function
|
|
1015
|
-
i0.ɵɵlistener("onClose", function
|
|
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(
|
|
1018
|
-
i0.ɵɵtwoWayListener("isVisibleChange", function
|
|
1019
|
-
i0.ɵɵlistener("onCategoryCreated", function
|
|
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("
|
|
1039
|
-
i0.ɵɵadvance(
|
|
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 ?
|
|
1036
|
+
i0.ɵɵconditional(ctx_r2.showFiltersHelp ? 37 : -1);
|
|
1043
1037
|
i0.ɵɵadvance();
|
|
1044
|
-
i0.ɵɵconditional(ctx_r2.record.TechnicalDescription || ctx_r2.EditMode ?
|
|
1038
|
+
i0.ɵɵconditional(ctx_r2.record.TechnicalDescription || ctx_r2.EditMode ? 38 : -1);
|
|
1045
1039
|
i0.ɵɵadvance();
|
|
1046
|
-
i0.ɵɵconditional(ctx_r2.record.IsSaved ?
|
|
1040
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 39 : -1);
|
|
1047
1041
|
i0.ɵɵadvance();
|
|
1048
|
-
i0.ɵɵconditional(ctx_r2.record.IsSaved ?
|
|
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 ?
|
|
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 ?
|
|
1046
|
+
i0.ɵɵconditional(ctx_r2.record.IsSaved ? 42 : -1);
|
|
1053
1047
|
i0.ɵɵadvance();
|
|
1054
|
-
i0.ɵɵtwoWayProperty("
|
|
1048
|
+
i0.ɵɵtwoWayProperty("Expanded", ctx_r2.detailsPanelExpanded);
|
|
1055
1049
|
i0.ɵɵadvance(8);
|
|
1056
|
-
i0.ɵɵconditional(ctx_r2.EditMode ?
|
|
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 ?
|
|
1056
|
+
i0.ɵɵconditional(ctx_r2.record.QualityRank != null ? 65 : -1);
|
|
1063
1057
|
i0.ɵɵadvance();
|
|
1064
|
-
i0.ɵɵconditional(ctx_r2.record.IsSaved ?
|
|
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"], ["
|
|
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,
|
|
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\">— 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\">— 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']
|