@memberjunction/ng-core-entity-forms 5.37.0 → 5.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -2
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +10 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +664 -550
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +22 -17
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +426 -478
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +2 -3
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1 -2
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +24 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +381 -224
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +1 -8
- 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 +4 -64
- 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.component.d.ts +20 -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 +152 -14
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +13 -14
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +25 -14
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.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 +185 -157
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentAction/mjaiagentaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJAIAgentArtifactType/mjaiagentartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIAgentCategory/mjaiagentcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentClientTool/mjaiagentclienttool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentDataSource/mjaiagentdatasource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js +25 -16
- package/dist/lib/generated/Entities/MJAIAgentExample/mjaiagentexample.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentLearningCycle/mjaiagentlearningcycle.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentModality/mjaiagentmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentModel/mjaiagentmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIAgentNote/mjaiagentnote.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentPermission/mjaiagentpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJAIAgentPrompt/mjaiagentprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRequest/mjaiagentrequest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIAgentRequestType/mjaiagentrequesttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +88 -80
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIAgentRunMedia/mjaiagentrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIAgentStepPath/mjaiagentsteppath.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIClientToolDefinition/mjaiclienttooldefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js +64 -54
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIConfigurationParam/mjaiconfigurationparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAICredentialBinding/mjaicredentialbinding.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js +57 -47
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +150 -140
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIModelAction/mjaimodelaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAIModelArchitecture/mjaimodelarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js +25 -12
- package/dist/lib/generated/Entities/MJAIModelCost/mjaimodelcost.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIModelModality/mjaimodelmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +99 -89
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +64 -46
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +62 -52
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAIVendorType/mjaivendortype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAPIApplicationScope/mjapiapplicationscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJAPIKeyApplication/mjapikeyapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAPIKeyScope/mjapikeyscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAPIKeyUsageLog/mjapikeyusagelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJAccessControlRule/mjaccesscontrolrule.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +86 -76
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionAuthorization/mjactionauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionContext/mjactioncontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionLibrary/mjactionlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJActionResultCode/mjactionresultcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +73 -45
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationEntity/mjapplicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationRole/mjapplicationrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJApplicationSetting/mjapplicationsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJArchiveConfiguration/mjarchiveconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArchiveConfigurationEntity/mjarchiveconfigurationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJArchiveRun/mjarchiverun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArchiveRunDetail/mjarchiverundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJArtifactPermission/mjartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJArtifactUse/mjartifactuse.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js +51 -41
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJArtifactVersionAttribute/mjartifactversionattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAuditLog/mjauditlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJAuthorizationRole/mjauthorizationrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCollectionArtifact/mjcollectionartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCollectionPermission/mjcollectionpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJCommunicationLog/mjcommunicationlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +33 -23
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +47 -37
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js +53 -43
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJCompanyIntegrationEntityMap/mjcompanyintegrationentitymap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationFieldMap/mjcompanyintegrationfieldmap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationRecordMap/mjcompanyintegrationrecordmap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js +20 -11
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunAPILog/mjcompanyintegrationrunapilog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJCompanyIntegrationSyncWatermark/mjcompanyintegrationsyncwatermark.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +60 -32
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJComponentDependency/mjcomponentdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJComponentLibraryLink/mjcomponentlibrarylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js +13 -6
- package/dist/lib/generated/Entities/MJContentItemAttribute/mjcontentitemattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJContentItemDuplicate/mjcontentitemduplicate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJContentItemTag/mjcontentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJContentProcessRun/mjcontentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJContentProcessRunDetail/mjcontentprocessrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJContentProcessRunPromptRun/mjcontentprocessrunpromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +51 -41
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js +13 -6
- package/dist/lib/generated/Entities/MJContentSourceParam/mjcontentsourceparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +35 -25
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJContentSourceTypeParam/mjcontentsourcetypeparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJContentTypeAttribute/mjcontenttypeattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +74 -50
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJConversationArtifactPermission/mjconversationartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +72 -62
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJConversationDetailArtifact/mjconversationdetailartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJConversationDetailAttachment/mjconversationdetailattachment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJConversationDetailRating/mjconversationdetailrating.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCountry/mjcountry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +59 -49
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +42 -32
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js +42 -32
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardCategoryLink/mjdashboardcategorylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDashboardCategoryPermission/mjdashboardcategorypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardPartType/mjdashboardparttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardPermission/mjdashboardpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDashboardUserPreference/mjdashboarduserpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDashboardUserState/mjdashboarduserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDataContextItem/mjdatacontextitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJDatasetItem/mjdatasetitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJDuplicateRunDetailMatch/mjduplicaterundetailmatch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEmployeeCompanyIntegration/mjemployeecompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJEmployeeRole/mjemployeerole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJEmployeeSkill/mjemployeeskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js +22 -12
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.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 +346 -318
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityAIAction/mjentityaiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js +37 -27
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionFilter/mjentityactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionInvocation/mjentityactioninvocation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityActionParam/mjentityactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js +17 -9
- package/dist/lib/generated/Entities/MJEntityCommunicationField/mjentitycommunicationfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityDocumentRun/mjentitydocumentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityDocumentSetting/mjentitydocumentsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js +92 -0
- package/dist/lib/generated/Entities/MJEntityFormOverride/mjentityformoverride.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityOrganicKeyRelatedEntity/mjentityorganickeyrelatedentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJEntityPermission/mjentitypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJEntityRecordDocument/mjentityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJEntityRelationship/mjentityrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJEntitySetting/mjentitysetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +57 -48
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJErrorLog/mjerrorlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJExplorerNavigationItem/mjexplorernavigationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJFileEntityRecordLink/mjfileentityrecordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +52 -42
- package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJFileStorageAccountPermission/mjfilestorageaccountpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +46 -36
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJGeneratedCode/mjgeneratedcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJInstanceConfiguration/mjinstanceconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js +71 -27
- package/dist/lib/generated/Entities/MJIntegrationObject/mjintegrationobject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js +23 -12
- package/dist/lib/generated/Entities/MJIntegrationObjectField/mjintegrationobjectfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJIntegrationSourceType/mjintegrationsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJIntegrationURLFormat/mjintegrationurlformat.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJKnowledgeHubSavedSearch/mjknowledgehubsavedsearch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJLibraryItem/mjlibraryitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js +45 -35
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJListDetail/mjlistdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJListInvitation/mjlistinvitation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJListShare/mjlistshare.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js +43 -33
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js +54 -44
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJMCPServerConnectionPermission/mjmcpserverconnectionpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJMCPServerConnectionTool/mjmcpserverconnectiontool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJMCPToolExecutionLog/mjmcptoolexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJMCPToolFavorite/mjmcptoolfavorite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthAuthServerMetadataCache/mjoauthauthservermetadatacache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthAuthorizationState/mjoauthauthorizationstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthClientRegistration/mjoauthclientregistration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOAuthToken/mjoauthtoken.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js +33 -23
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOpenAppDependency/mjopenappdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJOpenAppInstallHistory/mjopenappinstallhistory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJPermissionDomain/mjpermissiondomain.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJPublicLink/mjpubliclink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +66 -56
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryDependency/mjquerydependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryEntity/mjqueryentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQueryParameter/mjqueryparameter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJQueryPermission/mjquerypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJQueueTask/mjqueuetask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js +17 -9
- package/dist/lib/generated/Entities/MJRecommendationItem/mjrecommendationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +36 -26
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJRecordGeoCode/mjrecordgeocode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJRecordLink/mjrecordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJRecordMergeDeletionLog/mjrecordmergedeletionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportSnapshot/mjreportsnapshot.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportUserState/mjreportuserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJReportVersion/mjreportversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJResourceLink/mjresourcelink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJResourcePermission/mjresourcepermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +45 -35
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +94 -66
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +40 -31
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJScheduledActionParam/mjscheduledactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +40 -28
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSchemaInfo/mjschemainfo.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js +28 -18
- package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js +68 -58
- package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJStateProvince/mjstateprovince.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +93 -83
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagAuditLog/mjtagauditlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagCoOccurrence/mjtagcooccurrence.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTagScope/mjtagscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js +23 -14
- package/dist/lib/generated/Entities/MJTagSuggestion/mjtagsuggestion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js +21 -10
- package/dist/lib/generated/Entities/MJTagSynonym/mjtagsynonym.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTaggedItem/mjtaggeditem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTaskDependency/mjtaskdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +64 -54
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +24 -15
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJTemplateParam/mjtemplateparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJTestRubric/mjtestrubric.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +56 -46
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJTestRunFeedback/mjtestrunfeedback.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJTestRunOutput/mjtestrunoutput.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +39 -29
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js +15 -6
- package/dist/lib/generated/Entities/MJTestSuiteTest/mjtestsuitetest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js +30 -20
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.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 +530 -502
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserApplicationEntity/mjuserapplicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserFavorite/mjuserfavorite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserNotification/mjusernotification.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJUserNotificationPreference/mjusernotificationpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJUserRecordLog/mjuserrecordlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserRole/mjuserrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserSetting/mjusersetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js +48 -38
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js +34 -24
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js +26 -16
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js +17 -8
- package/dist/lib/generated/Entities/MJUserViewRunDetail/mjuserviewrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +49 -39
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJVersionInstallation/mjversioninstallation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js +44 -34
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js +18 -9
- package/dist/lib/generated/Entities/MJVersionLabelItem/mjversionlabelitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJVersionLabelRestore/mjversionlabelrestore.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js +32 -22
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js +24 -14
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js +19 -10
- package/dist/lib/generated/Entities/MJWorkflowRun/mjworkflowrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +26 -17
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js +21 -12
- package/dist/lib/generated/Entities/MJWorkspaceItem/mjworkspaceitem.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +161 -160
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +43 -40
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +62 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +386 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +41 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts.map +1 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +227 -0
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -0
- package/package.json +36 -36
- package/dist/lib/__tests__/content-source-form.test.d.ts +0 -2
- package/dist/lib/__tests__/content-source-form.test.d.ts.map +0 -1
- package/dist/lib/__tests__/content-source-form.test.js +0 -183
- package/dist/lib/__tests__/content-source-form.test.js.map +0 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts +0 -76
- package/dist/lib/custom/ContentSources/content-source-form.component.d.ts.map +0 -1
- package/dist/lib/custom/ContentSources/content-source-form.component.js +0 -510
- package/dist/lib/custom/ContentSources/content-source-form.component.js.map +0 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts +0 -34
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +0 -216
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +0 -1
|
@@ -5,10 +5,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Component, ViewChild, inject } from '@angular/core';
|
|
8
|
+
import { QueryEngine } from '@memberjunction/core-entities';
|
|
8
9
|
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
9
|
-
import { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG } from '@memberjunction/ng-base-forms';
|
|
10
|
+
import { BaseFormComponent, CUSTOM_LAYOUT_TOOLBAR_CONFIG, MJFormPresenterService } from '@memberjunction/ng-base-forms';
|
|
10
11
|
import { MJQueryFormComponent } from '../../generated/Entities/MJQuery/mjquery.form.component';
|
|
11
|
-
import {
|
|
12
|
+
import { RUN_QUERY_SQL_FILTERS, CompositeKey } from '@memberjunction/core';
|
|
12
13
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
13
14
|
import { NavigationService } from '@memberjunction/ng-shared';
|
|
14
15
|
import { Subject } from 'rxjs';
|
|
@@ -22,21 +23,20 @@ import * as i6 from "@memberjunction/ng-shared-generic";
|
|
|
22
23
|
import * as i7 from "@memberjunction/ng-markdown";
|
|
23
24
|
import * as i8 from "@memberjunction/ng-trees";
|
|
24
25
|
import * as i9 from "./query-run-dialog.component";
|
|
25
|
-
import * as i10 from "./query-category-dialog.component";
|
|
26
26
|
const _c0 = ["sqlEditor"];
|
|
27
27
|
const _forTrack0 = ($index, $item) => $item.name;
|
|
28
28
|
const _forTrack1 = ($index, $item) => $item.ID || $index;
|
|
29
29
|
const _forTrack2 = ($index, $item) => $item.ID;
|
|
30
30
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
i0.ɵɵelementStart(0, "div", 4);
|
|
32
|
-
i0.ɵɵelement(1, "i",
|
|
32
|
+
i0.ɵɵelement(1, "i", 47);
|
|
33
33
|
i0.ɵɵelementStart(2, "span");
|
|
34
34
|
i0.ɵɵtext(3, "Saving...");
|
|
35
35
|
i0.ɵɵelementEnd()();
|
|
36
36
|
} }
|
|
37
37
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
38
38
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "input",
|
|
39
|
+
i0.ɵɵelementStart(0, "input", 48);
|
|
40
40
|
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_9_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Name, $event) || (ctx_r1.record.Name = $event); return i0.ɵɵresetView($event); });
|
|
41
41
|
i0.ɵɵelementEnd();
|
|
42
42
|
} if (rf & 2) {
|
|
@@ -54,23 +54,39 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_10_Template(rf,
|
|
|
54
54
|
} }
|
|
55
55
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
56
56
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
57
|
-
i0.ɵɵelementStart(0, "button",
|
|
57
|
+
i0.ɵɵelementStart(0, "button", 49);
|
|
58
58
|
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runQuery()); });
|
|
59
|
-
i0.ɵɵelement(1, "i",
|
|
59
|
+
i0.ɵɵelement(1, "i", 50);
|
|
60
60
|
i0.ɵɵtext(2, " Run ");
|
|
61
61
|
i0.ɵɵelementEnd();
|
|
62
62
|
} if (rf & 2) {
|
|
63
63
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
64
64
|
i0.ɵɵproperty("disabled", ctx_r1.EditMode || !ctx_r1.record.SQL || ctx_r1.record.SQL.trim().length === 0);
|
|
65
65
|
} }
|
|
66
|
+
function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
68
|
+
i0.ɵɵelementStart(0, "button", 55);
|
|
69
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.editSelectedCategory()); });
|
|
70
|
+
i0.ɵɵelement(1, "i", 56);
|
|
71
|
+
i0.ɵɵelementEnd();
|
|
72
|
+
} }
|
|
66
73
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
67
74
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
68
|
-
i0.ɵɵelementStart(0, "mj-tree-dropdown",
|
|
69
|
-
i0.ɵɵlistener("ValueChange", function
|
|
75
|
+
i0.ɵɵelementStart(0, "div", 17)(1, "mj-tree-dropdown", 51);
|
|
76
|
+
i0.ɵɵlistener("ValueChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template_mj_tree_dropdown_ValueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnCategoryTreeChange($event)); });
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
i0.ɵɵelementStart(2, "button", 52);
|
|
79
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createCategory()); });
|
|
80
|
+
i0.ɵɵelement(3, "i", 53);
|
|
81
|
+
i0.ɵɵelementEnd();
|
|
82
|
+
i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_Conditional_17_Conditional_4_Template, 2, 0, "button", 54);
|
|
70
83
|
i0.ɵɵelementEnd();
|
|
71
84
|
} if (rf & 2) {
|
|
72
85
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
86
|
+
i0.ɵɵadvance();
|
|
73
87
|
i0.ɵɵproperty("BranchConfig", ctx_r1.CategoryBranchConfig)("Value", ctx_r1.CategoryIDAsKey)("SelectableTypes", "branch")("SelectionMode", "single")("Placeholder", "Select category...")("EnableSearch", true)("Clearable", true);
|
|
88
|
+
i0.ɵɵadvance(3);
|
|
89
|
+
i0.ɵɵconditional(ctx_r1.record.CategoryID ? 4 : -1);
|
|
74
90
|
} }
|
|
75
91
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
76
92
|
i0.ɵɵelementStart(0, "span", 18);
|
|
@@ -82,9 +98,9 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_18_Template(rf,
|
|
|
82
98
|
i0.ɵɵtextInterpolate(ctx_r1.categoryPathDisplay || "Uncategorized");
|
|
83
99
|
} }
|
|
84
100
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
-
const
|
|
86
|
-
i0.ɵɵelementStart(0, "mj-dropdown",
|
|
87
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
101
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
102
|
+
i0.ɵɵelementStart(0, "mj-dropdown", 57);
|
|
103
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Status, $event) || (ctx_r1.record.Status = $event); return i0.ɵɵresetView($event); });
|
|
88
104
|
i0.ɵɵelementEnd();
|
|
89
105
|
} if (rf & 2) {
|
|
90
106
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -92,8 +108,8 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_22_Template(rf,
|
|
|
92
108
|
i0.ɵɵproperty("Data", ctx_r1.statusOptions)("ValuePrimitive", true);
|
|
93
109
|
} }
|
|
94
110
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
-
i0.ɵɵelementStart(0, "span",
|
|
96
|
-
i0.ɵɵelement(1, "i",
|
|
111
|
+
i0.ɵɵelementStart(0, "span", 58);
|
|
112
|
+
i0.ɵɵelement(1, "i", 59);
|
|
97
113
|
i0.ɵɵtext(2);
|
|
98
114
|
i0.ɵɵelementEnd();
|
|
99
115
|
} if (rf & 2) {
|
|
@@ -105,9 +121,9 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_23_Template(rf,
|
|
|
105
121
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status || "Unknown", " ");
|
|
106
122
|
} }
|
|
107
123
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
-
const
|
|
109
|
-
i0.ɵɵelementStart(0, "textarea",
|
|
110
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
124
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
125
|
+
i0.ɵɵelementStart(0, "textarea", 62);
|
|
126
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Description, $event) || (ctx_r1.record.Description = $event); return i0.ɵɵresetView($event); });
|
|
111
127
|
i0.ɵɵtext(1, " ");
|
|
112
128
|
i0.ɵɵelementEnd();
|
|
113
129
|
} if (rf & 2) {
|
|
@@ -115,7 +131,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1
|
|
|
115
131
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Description);
|
|
116
132
|
} }
|
|
117
133
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
-
i0.ɵɵelementStart(0, "p",
|
|
134
|
+
i0.ɵɵelementStart(0, "p", 61);
|
|
119
135
|
i0.ɵɵtext(1);
|
|
120
136
|
i0.ɵɵelementEnd();
|
|
121
137
|
} if (rf & 2) {
|
|
@@ -125,7 +141,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_2
|
|
|
125
141
|
} }
|
|
126
142
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
127
143
|
i0.ɵɵelementStart(0, "div", 21);
|
|
128
|
-
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template, 2, 1, "textarea",
|
|
144
|
+
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_1_Template, 2, 1, "textarea", 60)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_24_Conditional_2_Template, 2, 1, "p", 61);
|
|
129
145
|
i0.ɵɵelementEnd();
|
|
130
146
|
} if (rf & 2) {
|
|
131
147
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -133,8 +149,8 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_24_Template(rf,
|
|
|
133
149
|
i0.ɵɵconditional(ctx_r1.EditMode ? 1 : 2);
|
|
134
150
|
} }
|
|
135
151
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
136
|
-
i0.ɵɵelementStart(0, "div",
|
|
137
|
-
i0.ɵɵelement(1, "i",
|
|
152
|
+
i0.ɵɵelementStart(0, "div", 63);
|
|
153
|
+
i0.ɵɵelement(1, "i", 59);
|
|
138
154
|
i0.ɵɵelementStart(2, "span");
|
|
139
155
|
i0.ɵɵtext(3, " This query has status ");
|
|
140
156
|
i0.ɵɵelementStart(4, "strong");
|
|
@@ -154,15 +170,15 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_25_Template(rf,
|
|
|
154
170
|
i0.ɵɵtextInterpolate1(". ", ctx_r1.getStatusBannerMessage(), " ");
|
|
155
171
|
} }
|
|
156
172
|
function MJQueryFormComponentExtended_Conditional_0_ng_template_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
157
|
-
i0.ɵɵelementStart(0, "span",
|
|
173
|
+
i0.ɵɵelementStart(0, "span", 67);
|
|
158
174
|
i0.ɵɵtext(1, "\u2014 Defined");
|
|
159
175
|
i0.ɵɵelementEnd();
|
|
160
176
|
} }
|
|
161
177
|
function MJQueryFormComponentExtended_Conditional_0_ng_template_28_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
-
i0.ɵɵelementStart(0, "span",
|
|
163
|
-
i0.ɵɵelement(2, "i",
|
|
178
|
+
i0.ɵɵelementStart(0, "span", 64)(1, "span", 65);
|
|
179
|
+
i0.ɵɵelement(2, "i", 66);
|
|
164
180
|
i0.ɵɵtext(3, " SQL ");
|
|
165
|
-
i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_ng_template_28_Conditional_4_Template, 2, 0, "span",
|
|
181
|
+
i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_ng_template_28_Conditional_4_Template, 2, 0, "span", 67);
|
|
166
182
|
i0.ɵɵelementEnd()();
|
|
167
183
|
} if (rf & 2) {
|
|
168
184
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -170,44 +186,44 @@ function MJQueryFormComponentExtended_Conditional_0_ng_template_28_Template(rf,
|
|
|
170
186
|
i0.ɵɵconditional(ctx_r1.record.SQL ? 4 : -1);
|
|
171
187
|
} }
|
|
172
188
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
-
i0.ɵɵelementStart(0, "div",
|
|
189
|
+
i0.ɵɵelementStart(0, "div", 75);
|
|
174
190
|
i0.ɵɵtext(1);
|
|
175
191
|
i0.ɵɵelementEnd();
|
|
176
192
|
} if (rf & 2) {
|
|
177
|
-
const
|
|
193
|
+
const filter_r9 = i0.ɵɵnextContext().$implicit;
|
|
178
194
|
i0.ɵɵadvance();
|
|
179
|
-
i0.ɵɵtextInterpolate(
|
|
195
|
+
i0.ɵɵtextInterpolate(filter_r9.notes);
|
|
180
196
|
} }
|
|
181
197
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
182
|
-
i0.ɵɵelementStart(0, "div",
|
|
198
|
+
i0.ɵɵelementStart(0, "div", 71)(1, "div", 72);
|
|
183
199
|
i0.ɵɵtext(2);
|
|
184
200
|
i0.ɵɵelementEnd();
|
|
185
|
-
i0.ɵɵelementStart(3, "div",
|
|
201
|
+
i0.ɵɵelementStart(3, "div", 73);
|
|
186
202
|
i0.ɵɵtext(4);
|
|
187
203
|
i0.ɵɵelementEnd();
|
|
188
|
-
i0.ɵɵelementStart(5, "div",
|
|
204
|
+
i0.ɵɵelementStart(5, "div", 74);
|
|
189
205
|
i0.ɵɵtext(6);
|
|
190
206
|
i0.ɵɵelementEnd();
|
|
191
|
-
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Conditional_7_Template, 2, 1, "div",
|
|
207
|
+
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Conditional_7_Template, 2, 1, "div", 75);
|
|
192
208
|
i0.ɵɵelementEnd();
|
|
193
209
|
} if (rf & 2) {
|
|
194
|
-
const
|
|
210
|
+
const filter_r9 = ctx.$implicit;
|
|
195
211
|
i0.ɵɵadvance(2);
|
|
196
|
-
i0.ɵɵtextInterpolate(
|
|
212
|
+
i0.ɵɵtextInterpolate(filter_r9.name);
|
|
197
213
|
i0.ɵɵadvance(2);
|
|
198
|
-
i0.ɵɵtextInterpolate(
|
|
214
|
+
i0.ɵɵtextInterpolate(filter_r9.description);
|
|
199
215
|
i0.ɵɵadvance(2);
|
|
200
|
-
i0.ɵɵtextInterpolate(
|
|
216
|
+
i0.ɵɵtextInterpolate(filter_r9.exampleSyntax);
|
|
201
217
|
i0.ɵɵadvance();
|
|
202
|
-
i0.ɵɵconditional(
|
|
218
|
+
i0.ɵɵconditional(filter_r9.notes ? 7 : -1);
|
|
203
219
|
} }
|
|
204
220
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_38_Template(rf, ctx) { if (rf & 1) {
|
|
205
|
-
i0.ɵɵelementStart(0, "div", 32)(1, "h6",
|
|
206
|
-
i0.ɵɵelement(2, "i",
|
|
221
|
+
i0.ɵɵelementStart(0, "div", 32)(1, "h6", 68);
|
|
222
|
+
i0.ɵɵelement(2, "i", 69);
|
|
207
223
|
i0.ɵɵtext(3, " Available SQL Filters for Parameterized Queries ");
|
|
208
224
|
i0.ɵɵelementEnd();
|
|
209
|
-
i0.ɵɵelementStart(4, "div",
|
|
210
|
-
i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Template, 8, 4, "div",
|
|
225
|
+
i0.ɵɵelementStart(4, "div", 70);
|
|
226
|
+
i0.ɵɵrepeaterCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_38_For_6_Template, 8, 4, "div", 71, _forTrack0);
|
|
211
227
|
i0.ɵɵelementEnd()();
|
|
212
228
|
} if (rf & 2) {
|
|
213
229
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -215,15 +231,15 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_38_Template(rf,
|
|
|
215
231
|
i0.ɵɵrepeater(ctx_r1.sqlFilters);
|
|
216
232
|
} }
|
|
217
233
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
-
i0.ɵɵelementStart(0, "span",
|
|
234
|
+
i0.ɵɵelementStart(0, "span", 67);
|
|
219
235
|
i0.ɵɵtext(1, "\u2014 Documented");
|
|
220
236
|
i0.ɵɵelementEnd();
|
|
221
237
|
} }
|
|
222
238
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
223
|
-
i0.ɵɵelementStart(0, "span",
|
|
224
|
-
i0.ɵɵelement(1, "i",
|
|
239
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
240
|
+
i0.ɵɵelement(1, "i", 77);
|
|
225
241
|
i0.ɵɵtext(2, " Technical Description ");
|
|
226
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Conditional_3_Template, 2, 0, "span",
|
|
242
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Conditional_3_Template, 2, 0, "span", 67);
|
|
227
243
|
i0.ɵɵelementEnd();
|
|
228
244
|
} if (rf & 2) {
|
|
229
245
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -231,11 +247,11 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1
|
|
|
231
247
|
i0.ɵɵconditional(ctx_r1.record.TechnicalDescription ? 3 : -1);
|
|
232
248
|
} }
|
|
233
249
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
234
|
-
i0.ɵɵelementStart(0, "div",
|
|
235
|
-
i0.ɵɵelement(2, "i",
|
|
250
|
+
i0.ɵɵelementStart(0, "div", 79)(1, "div", 80);
|
|
251
|
+
i0.ɵɵelement(2, "i", 81);
|
|
236
252
|
i0.ɵɵtext(3, " Preview ");
|
|
237
253
|
i0.ɵɵelementEnd();
|
|
238
|
-
i0.ɵɵelement(4, "mj-markdown",
|
|
254
|
+
i0.ɵɵelement(4, "mj-markdown", 82);
|
|
239
255
|
i0.ɵɵelementEnd();
|
|
240
256
|
} if (rf & 2) {
|
|
241
257
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -243,12 +259,12 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3
|
|
|
243
259
|
i0.ɵɵproperty("data", ctx_r1.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
|
|
244
260
|
} }
|
|
245
261
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
-
const
|
|
247
|
-
i0.ɵɵelementStart(0, "textarea",
|
|
248
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
262
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
263
|
+
i0.ɵɵelementStart(0, "textarea", 78);
|
|
264
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.TechnicalDescription, $event) || (ctx_r1.record.TechnicalDescription = $event); return i0.ɵɵresetView($event); });
|
|
249
265
|
i0.ɵɵtext(1, " ");
|
|
250
266
|
i0.ɵɵelementEnd();
|
|
251
|
-
i0.ɵɵconditionalCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Conditional_2_Template, 5, 5, "div",
|
|
267
|
+
i0.ɵɵconditionalCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Conditional_2_Template, 5, 5, "div", 79);
|
|
252
268
|
} if (rf & 2) {
|
|
253
269
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
254
270
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.TechnicalDescription);
|
|
@@ -256,8 +272,8 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3
|
|
|
256
272
|
i0.ɵɵconditional(ctx_r1.record.TechnicalDescription ? 2 : -1);
|
|
257
273
|
} }
|
|
258
274
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
259
|
-
i0.ɵɵelementStart(0, "div",
|
|
260
|
-
i0.ɵɵelement(1, "mj-markdown",
|
|
275
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
276
|
+
i0.ɵɵelement(1, "mj-markdown", 82);
|
|
261
277
|
i0.ɵɵelementEnd();
|
|
262
278
|
} if (rf & 2) {
|
|
263
279
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -265,12 +281,12 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4
|
|
|
265
281
|
i0.ɵɵproperty("data", ctx_r1.record.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
|
|
266
282
|
} }
|
|
267
283
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
268
|
-
const
|
|
284
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
269
285
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
270
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
286
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.technicalDescriptionPanelExpanded, $event) || (ctx_r1.technicalDescriptionPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
271
287
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_39_ng_template_1_Template, 4, 1, "ng-template", 25);
|
|
272
288
|
i0.ɵɵelementStart(2, "div", 34);
|
|
273
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template, 3, 2)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4_Template, 2, 5, "div",
|
|
289
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_3_Template, 3, 2)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_39_Conditional_4_Template, 2, 5, "div", 76);
|
|
274
290
|
i0.ɵɵelementEnd()();
|
|
275
291
|
} if (rf & 2) {
|
|
276
292
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -279,7 +295,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_39_Template(rf,
|
|
|
279
295
|
i0.ɵɵconditional(ctx_r1.EditMode ? 3 : 4);
|
|
280
296
|
} }
|
|
281
297
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
282
|
-
i0.ɵɵelementStart(0, "span",
|
|
298
|
+
i0.ɵɵelementStart(0, "span", 85);
|
|
283
299
|
i0.ɵɵtext(1);
|
|
284
300
|
i0.ɵɵelementEnd();
|
|
285
301
|
} if (rf & 2) {
|
|
@@ -288,10 +304,10 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1
|
|
|
288
304
|
i0.ɵɵtextInterpolate(ctx_r1.queryParameters.length);
|
|
289
305
|
} }
|
|
290
306
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
-
i0.ɵɵelementStart(0, "span",
|
|
292
|
-
i0.ɵɵelement(1, "i",
|
|
307
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
308
|
+
i0.ɵɵelement(1, "i", 84);
|
|
293
309
|
i0.ɵɵtext(2, " Parameters ");
|
|
294
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span",
|
|
310
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span", 85);
|
|
295
311
|
i0.ɵɵelementEnd();
|
|
296
312
|
} if (rf & 2) {
|
|
297
313
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -299,28 +315,28 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1
|
|
|
299
315
|
i0.ɵɵconditional(ctx_r1.queryParameters.length > 0 ? 3 : -1);
|
|
300
316
|
} }
|
|
301
317
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
302
|
-
i0.ɵɵelementStart(0, "div",
|
|
303
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
318
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
319
|
+
i0.ɵɵelement(1, "mj-loading", 86);
|
|
304
320
|
i0.ɵɵelementEnd();
|
|
305
321
|
} }
|
|
306
322
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
307
|
-
const
|
|
308
|
-
i0.ɵɵelementStart(0, "button",
|
|
309
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
310
|
-
i0.ɵɵelement(1, "i",
|
|
323
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
324
|
+
i0.ɵɵelementStart(0, "button", 92);
|
|
325
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addParameter()); });
|
|
326
|
+
i0.ɵɵelement(1, "i", 53);
|
|
311
327
|
i0.ɵɵtext(2, " Add First Parameter ");
|
|
312
328
|
i0.ɵɵelementEnd();
|
|
313
329
|
} }
|
|
314
330
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
315
|
-
i0.ɵɵelementStart(0, "div",
|
|
316
|
-
i0.ɵɵelement(1, "i",
|
|
317
|
-
i0.ɵɵelementStart(2, "div",
|
|
331
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
332
|
+
i0.ɵɵelement(1, "i", 88);
|
|
333
|
+
i0.ɵɵelementStart(2, "div", 89);
|
|
318
334
|
i0.ɵɵtext(3, "No Parameters Defined");
|
|
319
335
|
i0.ɵɵelementEnd();
|
|
320
|
-
i0.ɵɵelementStart(4, "div",
|
|
336
|
+
i0.ɵɵelementStart(4, "div", 90);
|
|
321
337
|
i0.ɵɵtext(5, " Add parameters to make your query dynamic and reusable. ");
|
|
322
338
|
i0.ɵɵelementEnd();
|
|
323
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button",
|
|
339
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 91);
|
|
324
340
|
i0.ɵɵelementEnd();
|
|
325
341
|
} if (rf & 2) {
|
|
326
342
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -328,95 +344,95 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4
|
|
|
328
344
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
329
345
|
} }
|
|
330
346
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
331
|
-
const
|
|
332
|
-
i0.ɵɵelementStart(0, "div",
|
|
333
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
334
|
-
i0.ɵɵelement(2, "i",
|
|
347
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
348
|
+
i0.ɵɵelementStart(0, "div", 93)(1, "button", 92);
|
|
349
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addParameter()); });
|
|
350
|
+
i0.ɵɵelement(2, "i", 53);
|
|
335
351
|
i0.ɵɵtext(3, " Add Parameter ");
|
|
336
352
|
i0.ɵɵelementEnd()();
|
|
337
353
|
} }
|
|
338
354
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
339
|
-
i0.ɵɵelementStart(0, "span",
|
|
355
|
+
i0.ɵɵelementStart(0, "span", 101);
|
|
340
356
|
i0.ɵɵtext(1, "Required");
|
|
341
357
|
i0.ɵɵelementEnd();
|
|
342
358
|
} }
|
|
343
359
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
344
|
-
i0.ɵɵelementStart(0, "div",
|
|
360
|
+
i0.ɵɵelementStart(0, "div", 103);
|
|
345
361
|
i0.ɵɵtext(1);
|
|
346
362
|
i0.ɵɵelementEnd();
|
|
347
363
|
} if (rf & 2) {
|
|
348
|
-
const
|
|
364
|
+
const param_r16 = i0.ɵɵnextContext().$implicit;
|
|
349
365
|
i0.ɵɵadvance();
|
|
350
|
-
i0.ɵɵtextInterpolate(
|
|
366
|
+
i0.ɵɵtextInterpolate(param_r16.Description);
|
|
351
367
|
} }
|
|
352
368
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
353
|
-
i0.ɵɵelementStart(0, "span",
|
|
369
|
+
i0.ɵɵelementStart(0, "span", 105)(1, "strong");
|
|
354
370
|
i0.ɵɵtext(2, "Default:");
|
|
355
371
|
i0.ɵɵelementEnd();
|
|
356
|
-
i0.ɵɵelementStart(3, "code",
|
|
372
|
+
i0.ɵɵelementStart(3, "code", 107);
|
|
357
373
|
i0.ɵɵtext(4);
|
|
358
374
|
i0.ɵɵelementEnd()();
|
|
359
375
|
} if (rf & 2) {
|
|
360
|
-
const
|
|
376
|
+
const param_r16 = i0.ɵɵnextContext().$implicit;
|
|
361
377
|
i0.ɵɵadvance(4);
|
|
362
|
-
i0.ɵɵtextInterpolate(
|
|
378
|
+
i0.ɵɵtextInterpolate(param_r16.DefaultValue);
|
|
363
379
|
} }
|
|
364
380
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
365
|
-
const
|
|
366
|
-
i0.ɵɵelementStart(0, "div",
|
|
367
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(
|
|
368
|
-
i0.ɵɵelementStart(1, "button",
|
|
369
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
370
|
-
i0.ɵɵelement(2, "i",
|
|
371
|
-
i0.ɵɵelementEnd();
|
|
372
|
-
i0.ɵɵelementStart(3, "button",
|
|
373
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
374
|
-
i0.ɵɵelement(4, "i",
|
|
381
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
382
|
+
i0.ɵɵelementStart(0, "div", 108);
|
|
383
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r17); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
384
|
+
i0.ɵɵelementStart(1, "button", 109);
|
|
385
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const param_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editParameter(param_r16)); });
|
|
386
|
+
i0.ɵɵelement(2, "i", 56);
|
|
387
|
+
i0.ɵɵelementEnd();
|
|
388
|
+
i0.ɵɵelementStart(3, "button", 110);
|
|
389
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r17); const param_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteParameter(param_r16)); });
|
|
390
|
+
i0.ɵɵelement(4, "i", 111);
|
|
375
391
|
i0.ɵɵelementEnd()();
|
|
376
392
|
} }
|
|
377
393
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
378
|
-
const
|
|
379
|
-
i0.ɵɵelementStart(0, "div",
|
|
380
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template_div_click_0_listener() { const
|
|
381
|
-
i0.ɵɵelementStart(1, "div",
|
|
382
|
-
i0.ɵɵelement(3, "i",
|
|
394
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
395
|
+
i0.ɵɵelementStart(0, "div", 96);
|
|
396
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template_div_click_0_listener() { const param_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editParameter(param_r16)); });
|
|
397
|
+
i0.ɵɵelementStart(1, "div", 97)(2, "div", 98);
|
|
398
|
+
i0.ɵɵelement(3, "i", 99);
|
|
383
399
|
i0.ɵɵtext(4);
|
|
384
400
|
i0.ɵɵelementEnd();
|
|
385
|
-
i0.ɵɵelementStart(5, "div",
|
|
386
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span",
|
|
401
|
+
i0.ɵɵelementStart(5, "div", 100);
|
|
402
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 2, 0, "span", 101);
|
|
387
403
|
i0.ɵɵelementEnd()();
|
|
388
|
-
i0.ɵɵelementStart(7, "div",
|
|
389
|
-
i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div",
|
|
390
|
-
i0.ɵɵelementStart(9, "div",
|
|
404
|
+
i0.ɵɵelementStart(7, "div", 102);
|
|
405
|
+
i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "div", 103);
|
|
406
|
+
i0.ɵɵelementStart(9, "div", 104)(10, "span", 105)(11, "strong");
|
|
391
407
|
i0.ɵɵtext(12, "Type:");
|
|
392
408
|
i0.ɵɵelementEnd();
|
|
393
409
|
i0.ɵɵtext(13);
|
|
394
410
|
i0.ɵɵelementEnd();
|
|
395
|
-
i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span",
|
|
411
|
+
i0.ɵɵconditionalCreate(14, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_14_Template, 5, 1, "span", 105);
|
|
396
412
|
i0.ɵɵelementEnd()();
|
|
397
|
-
i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div",
|
|
413
|
+
i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 5, 0, "div", 106);
|
|
398
414
|
i0.ɵɵelementEnd();
|
|
399
415
|
} if (rf & 2) {
|
|
400
|
-
const
|
|
416
|
+
const param_r16 = ctx.$implicit;
|
|
401
417
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
402
|
-
i0.ɵɵclassProp("required",
|
|
418
|
+
i0.ɵɵclassProp("required", param_r16.IsRequired);
|
|
403
419
|
i0.ɵɵadvance(4);
|
|
404
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
420
|
+
i0.ɵɵtextInterpolate1(" ", param_r16.Name, " ");
|
|
405
421
|
i0.ɵɵadvance(2);
|
|
406
|
-
i0.ɵɵconditional(
|
|
422
|
+
i0.ɵɵconditional(param_r16.IsRequired ? 6 : -1);
|
|
407
423
|
i0.ɵɵadvance(2);
|
|
408
|
-
i0.ɵɵconditional(
|
|
424
|
+
i0.ɵɵconditional(param_r16.Description ? 8 : -1);
|
|
409
425
|
i0.ɵɵadvance(5);
|
|
410
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
426
|
+
i0.ɵɵtextInterpolate1(" ", param_r16.Type || "Text", " ");
|
|
411
427
|
i0.ɵɵadvance();
|
|
412
|
-
i0.ɵɵconditional(
|
|
428
|
+
i0.ɵɵconditional(param_r16.DefaultValue ? 14 : -1);
|
|
413
429
|
i0.ɵɵadvance();
|
|
414
430
|
i0.ɵɵconditional(ctx_r1.EditMode ? 15 : -1);
|
|
415
431
|
} }
|
|
416
432
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
417
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div",
|
|
418
|
-
i0.ɵɵelementStart(1, "div",
|
|
419
|
-
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div",
|
|
433
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 93);
|
|
434
|
+
i0.ɵɵelementStart(1, "div", 94);
|
|
435
|
+
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_For_3_Template, 16, 8, "div", 95, _forTrack1);
|
|
420
436
|
i0.ɵɵelementEnd();
|
|
421
437
|
} if (rf & 2) {
|
|
422
438
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -425,18 +441,18 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4
|
|
|
425
441
|
i0.ɵɵrepeater(ctx_r1.queryParameters);
|
|
426
442
|
} }
|
|
427
443
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
428
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Template, 7, 1, "div",
|
|
444
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_0_Template, 7, 1, "div", 87)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Conditional_1_Template, 4, 1);
|
|
429
445
|
} if (rf & 2) {
|
|
430
446
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
431
447
|
i0.ɵɵconditional(ctx_r1.queryParameters.length === 0 ? 0 : 1);
|
|
432
448
|
} }
|
|
433
449
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template(rf, ctx) { if (rf & 1) {
|
|
434
|
-
const
|
|
450
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
435
451
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
436
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
452
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.parametersPanelExpanded, $event) || (ctx_r1.parametersPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
437
453
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_40_ng_template_1_Template, 4, 1, "ng-template", 25);
|
|
438
454
|
i0.ɵɵelementStart(2, "div", 34);
|
|
439
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_3_Template, 2, 0, "div",
|
|
455
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_3_Template, 2, 0, "div", 83)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_40_Conditional_4_Template, 2, 1);
|
|
440
456
|
i0.ɵɵelementEnd()();
|
|
441
457
|
} if (rf & 2) {
|
|
442
458
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -445,7 +461,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_40_Template(rf,
|
|
|
445
461
|
i0.ɵɵconditional(ctx_r1.isLoadingParameters ? 3 : 4);
|
|
446
462
|
} }
|
|
447
463
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
448
|
-
i0.ɵɵelementStart(0, "span",
|
|
464
|
+
i0.ɵɵelementStart(0, "span", 85);
|
|
449
465
|
i0.ɵɵtext(1);
|
|
450
466
|
i0.ɵɵelementEnd();
|
|
451
467
|
} if (rf & 2) {
|
|
@@ -454,10 +470,10 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1
|
|
|
454
470
|
i0.ɵɵtextInterpolate(ctx_r1.queryFields.length);
|
|
455
471
|
} }
|
|
456
472
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
457
|
-
i0.ɵɵelementStart(0, "span",
|
|
458
|
-
i0.ɵɵelement(1, "i",
|
|
473
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
474
|
+
i0.ɵɵelement(1, "i", 112);
|
|
459
475
|
i0.ɵɵtext(2, " Fields ");
|
|
460
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Conditional_3_Template, 2, 1, "span",
|
|
476
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Conditional_3_Template, 2, 1, "span", 85);
|
|
461
477
|
i0.ɵɵelementEnd();
|
|
462
478
|
} if (rf & 2) {
|
|
463
479
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -465,28 +481,28 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1
|
|
|
465
481
|
i0.ɵɵconditional(ctx_r1.queryFields.length > 0 ? 3 : -1);
|
|
466
482
|
} }
|
|
467
483
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
468
|
-
i0.ɵɵelementStart(0, "div",
|
|
469
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
484
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
485
|
+
i0.ɵɵelement(1, "mj-loading", 113);
|
|
470
486
|
i0.ɵɵelementEnd();
|
|
471
487
|
} }
|
|
472
488
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
473
|
-
const
|
|
474
|
-
i0.ɵɵelementStart(0, "button",
|
|
475
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
476
|
-
i0.ɵɵelement(1, "i",
|
|
489
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
490
|
+
i0.ɵɵelementStart(0, "button", 92);
|
|
491
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addField()); });
|
|
492
|
+
i0.ɵɵelement(1, "i", 53);
|
|
477
493
|
i0.ɵɵtext(2, " Add First Field ");
|
|
478
494
|
i0.ɵɵelementEnd();
|
|
479
495
|
} }
|
|
480
496
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
481
|
-
i0.ɵɵelementStart(0, "div",
|
|
482
|
-
i0.ɵɵelement(1, "i",
|
|
483
|
-
i0.ɵɵelementStart(2, "div",
|
|
497
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
498
|
+
i0.ɵɵelement(1, "i", 114);
|
|
499
|
+
i0.ɵɵelementStart(2, "div", 89);
|
|
484
500
|
i0.ɵɵtext(3, "No Fields Defined");
|
|
485
501
|
i0.ɵɵelementEnd();
|
|
486
|
-
i0.ɵɵelementStart(4, "div",
|
|
502
|
+
i0.ɵɵelementStart(4, "div", 90);
|
|
487
503
|
i0.ɵɵtext(5, " Define output fields for your query results. ");
|
|
488
504
|
i0.ɵɵelementEnd();
|
|
489
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button",
|
|
505
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 91);
|
|
490
506
|
i0.ɵɵelementEnd();
|
|
491
507
|
} if (rf & 2) {
|
|
492
508
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -494,76 +510,76 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4
|
|
|
494
510
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
495
511
|
} }
|
|
496
512
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
497
|
-
const
|
|
498
|
-
i0.ɵɵelementStart(0, "div",
|
|
499
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
500
|
-
i0.ɵɵelement(2, "i",
|
|
513
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
514
|
+
i0.ɵɵelementStart(0, "div", 93)(1, "button", 92);
|
|
515
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addField()); });
|
|
516
|
+
i0.ɵɵelement(2, "i", 53);
|
|
501
517
|
i0.ɵɵtext(3, " Add Field ");
|
|
502
518
|
i0.ɵɵelementEnd()();
|
|
503
519
|
} }
|
|
504
520
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
505
|
-
i0.ɵɵelementStart(0, "span",
|
|
521
|
+
i0.ɵɵelementStart(0, "span", 118);
|
|
506
522
|
i0.ɵɵtext(1);
|
|
507
523
|
i0.ɵɵelementEnd();
|
|
508
524
|
} if (rf & 2) {
|
|
509
|
-
const
|
|
525
|
+
const field_r21 = i0.ɵɵnextContext().$implicit;
|
|
510
526
|
i0.ɵɵadvance();
|
|
511
|
-
i0.ɵɵtextInterpolate1("#",
|
|
527
|
+
i0.ɵɵtextInterpolate1("#", field_r21.Sequence);
|
|
512
528
|
} }
|
|
513
529
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
514
|
-
i0.ɵɵelementStart(0, "div",
|
|
530
|
+
i0.ɵɵelementStart(0, "div", 103);
|
|
515
531
|
i0.ɵɵtext(1);
|
|
516
532
|
i0.ɵɵelementEnd();
|
|
517
533
|
} if (rf & 2) {
|
|
518
|
-
const
|
|
534
|
+
const field_r21 = i0.ɵɵnextContext().$implicit;
|
|
519
535
|
i0.ɵɵadvance();
|
|
520
|
-
i0.ɵɵtextInterpolate(
|
|
536
|
+
i0.ɵɵtextInterpolate(field_r21.Description);
|
|
521
537
|
} }
|
|
522
538
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
523
|
-
const
|
|
524
|
-
i0.ɵɵelementStart(0, "div",
|
|
525
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
526
|
-
i0.ɵɵelement(2, "i",
|
|
539
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
540
|
+
i0.ɵɵelementStart(0, "div", 120)(1, "button", 121);
|
|
541
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r22); const field_r21 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteField(field_r21)); });
|
|
542
|
+
i0.ɵɵelement(2, "i", 111);
|
|
527
543
|
i0.ɵɵelementEnd()();
|
|
528
544
|
} }
|
|
529
545
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
530
|
-
i0.ɵɵelementStart(0, "div",
|
|
531
|
-
i0.ɵɵelement(3, "i",
|
|
546
|
+
i0.ɵɵelementStart(0, "div", 115)(1, "div", 97)(2, "div", 98);
|
|
547
|
+
i0.ɵɵelement(3, "i", 116);
|
|
532
548
|
i0.ɵɵtext(4);
|
|
533
549
|
i0.ɵɵelementEnd();
|
|
534
|
-
i0.ɵɵelementStart(5, "div",
|
|
550
|
+
i0.ɵɵelementStart(5, "div", 100)(6, "span", 117);
|
|
535
551
|
i0.ɵɵtext(7);
|
|
536
552
|
i0.ɵɵelementEnd();
|
|
537
|
-
i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span",
|
|
553
|
+
i0.ɵɵconditionalCreate(8, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_8_Template, 2, 1, "span", 118);
|
|
538
554
|
i0.ɵɵelementEnd()();
|
|
539
|
-
i0.ɵɵelementStart(9, "div",
|
|
540
|
-
i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div",
|
|
541
|
-
i0.ɵɵelementStart(11, "div",
|
|
542
|
-
i0.ɵɵelement(13, "i",
|
|
555
|
+
i0.ɵɵelementStart(9, "div", 102);
|
|
556
|
+
i0.ɵɵconditionalCreate(10, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_10_Template, 2, 1, "div", 103);
|
|
557
|
+
i0.ɵɵelementStart(11, "div", 104)(12, "span", 105);
|
|
558
|
+
i0.ɵɵelement(13, "i", 119);
|
|
543
559
|
i0.ɵɵtext(14);
|
|
544
560
|
i0.ɵɵelementEnd()()();
|
|
545
|
-
i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div",
|
|
561
|
+
i0.ɵɵconditionalCreate(15, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Conditional_15_Template, 3, 0, "div", 120);
|
|
546
562
|
i0.ɵɵelementEnd();
|
|
547
563
|
} if (rf & 2) {
|
|
548
|
-
const
|
|
564
|
+
const field_r21 = ctx.$implicit;
|
|
549
565
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
550
566
|
i0.ɵɵadvance(4);
|
|
551
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
567
|
+
i0.ɵɵtextInterpolate1(" ", field_r21.Name, " ");
|
|
552
568
|
i0.ɵɵadvance(3);
|
|
553
|
-
i0.ɵɵtextInterpolate(
|
|
569
|
+
i0.ɵɵtextInterpolate(field_r21.SQLBaseType);
|
|
554
570
|
i0.ɵɵadvance();
|
|
555
|
-
i0.ɵɵconditional(
|
|
571
|
+
i0.ɵɵconditional(field_r21.Sequence ? 8 : -1);
|
|
556
572
|
i0.ɵɵadvance(2);
|
|
557
|
-
i0.ɵɵconditional(
|
|
573
|
+
i0.ɵɵconditional(field_r21.Description ? 10 : -1);
|
|
558
574
|
i0.ɵɵadvance(4);
|
|
559
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
575
|
+
i0.ɵɵtextInterpolate1(" ", field_r21.SQLFullType || field_r21.SQLBaseType, " ");
|
|
560
576
|
i0.ɵɵadvance();
|
|
561
577
|
i0.ɵɵconditional(ctx_r1.EditMode ? 15 : -1);
|
|
562
578
|
} }
|
|
563
579
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
564
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div",
|
|
565
|
-
i0.ɵɵelementStart(1, "div",
|
|
566
|
-
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div",
|
|
580
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 93);
|
|
581
|
+
i0.ɵɵelementStart(1, "div", 94);
|
|
582
|
+
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_For_3_Template, 16, 6, "div", 115, _forTrack2);
|
|
567
583
|
i0.ɵɵelementEnd();
|
|
568
584
|
} if (rf & 2) {
|
|
569
585
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -572,18 +588,18 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4
|
|
|
572
588
|
i0.ɵɵrepeater(ctx_r1.queryFields);
|
|
573
589
|
} }
|
|
574
590
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
575
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Template, 7, 1, "div",
|
|
591
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_0_Template, 7, 1, "div", 87)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Conditional_1_Template, 4, 1);
|
|
576
592
|
} if (rf & 2) {
|
|
577
593
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
578
594
|
i0.ɵɵconditional(ctx_r1.queryFields.length === 0 ? 0 : 1);
|
|
579
595
|
} }
|
|
580
596
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template(rf, ctx) { if (rf & 1) {
|
|
581
|
-
const
|
|
597
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
582
598
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
583
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
599
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.fieldsPanelExpanded, $event) || (ctx_r1.fieldsPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
584
600
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_41_ng_template_1_Template, 4, 1, "ng-template", 25);
|
|
585
601
|
i0.ɵɵelementStart(2, "div", 34);
|
|
586
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_3_Template, 2, 0, "div",
|
|
602
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_3_Template, 2, 0, "div", 83)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_41_Conditional_4_Template, 2, 1);
|
|
587
603
|
i0.ɵɵelementEnd()();
|
|
588
604
|
} if (rf & 2) {
|
|
589
605
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -592,10 +608,10 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_41_Template(rf,
|
|
|
592
608
|
i0.ɵɵconditional(ctx_r1.isLoadingFields ? 3 : 4);
|
|
593
609
|
} }
|
|
594
610
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_42_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
595
|
-
i0.ɵɵelementStart(0, "span",
|
|
596
|
-
i0.ɵɵelement(1, "i",
|
|
611
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
612
|
+
i0.ɵɵelement(1, "i", 124);
|
|
597
613
|
i0.ɵɵtext(2, " Dependent Queries ");
|
|
598
|
-
i0.ɵɵelementStart(3, "span",
|
|
614
|
+
i0.ɵɵelementStart(3, "span", 85);
|
|
599
615
|
i0.ɵɵtext(4);
|
|
600
616
|
i0.ɵɵelementEnd()();
|
|
601
617
|
} if (rf & 2) {
|
|
@@ -604,66 +620,66 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_ng_template_1
|
|
|
604
620
|
i0.ɵɵtextInterpolate(ctx_r1.DependentQueries.length);
|
|
605
621
|
} }
|
|
606
622
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
607
|
-
i0.ɵɵelementStart(0, "div",
|
|
608
|
-
i0.ɵɵelement(2, "i",
|
|
623
|
+
i0.ɵɵelementStart(0, "div", 104)(1, "span", 105);
|
|
624
|
+
i0.ɵɵelement(2, "i", 130);
|
|
609
625
|
i0.ɵɵtext(3);
|
|
610
626
|
i0.ɵɵelementEnd()();
|
|
611
627
|
} if (rf & 2) {
|
|
612
|
-
const
|
|
628
|
+
const dep_r25 = i0.ɵɵnextContext().$implicit;
|
|
613
629
|
i0.ɵɵadvance(3);
|
|
614
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
630
|
+
i0.ɵɵtextInterpolate1(" ", dep_r25.ReferencePath, " ");
|
|
615
631
|
} }
|
|
616
632
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
617
|
-
i0.ɵɵelementStart(0, "div",
|
|
633
|
+
i0.ɵɵelementStart(0, "div", 104)(1, "span", 105)(2, "strong");
|
|
618
634
|
i0.ɵɵtext(3, "Alias:");
|
|
619
635
|
i0.ɵɵelementEnd();
|
|
620
|
-
i0.ɵɵelementStart(4, "code",
|
|
636
|
+
i0.ɵɵelementStart(4, "code", 107);
|
|
621
637
|
i0.ɵɵtext(5);
|
|
622
638
|
i0.ɵɵelementEnd()()();
|
|
623
639
|
} if (rf & 2) {
|
|
624
|
-
const
|
|
640
|
+
const dep_r25 = i0.ɵɵnextContext().$implicit;
|
|
625
641
|
i0.ɵɵadvance(5);
|
|
626
|
-
i0.ɵɵtextInterpolate(
|
|
642
|
+
i0.ɵɵtextInterpolate(dep_r25.Alias);
|
|
627
643
|
} }
|
|
628
644
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
629
|
-
const
|
|
630
|
-
i0.ɵɵelementStart(0, "div",
|
|
631
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template_div_click_0_listener() { const
|
|
632
|
-
i0.ɵɵelementStart(1, "div",
|
|
633
|
-
i0.ɵɵelement(3, "i",
|
|
645
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
646
|
+
i0.ɵɵelementStart(0, "div", 125);
|
|
647
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template_div_click_0_listener() { const dep_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onDependentQueryClick(dep_r25)); });
|
|
648
|
+
i0.ɵɵelementStart(1, "div", 97)(2, "div", 98);
|
|
649
|
+
i0.ɵɵelement(3, "i", 126);
|
|
634
650
|
i0.ɵɵtext(4);
|
|
635
651
|
i0.ɵɵelementEnd()();
|
|
636
|
-
i0.ɵɵelementStart(5, "div",
|
|
637
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_6_Template, 4, 1, "div",
|
|
638
|
-
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_7_Template, 6, 1, "div",
|
|
652
|
+
i0.ɵɵelementStart(5, "div", 102);
|
|
653
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_6_Template, 4, 1, "div", 104);
|
|
654
|
+
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Conditional_7_Template, 6, 1, "div", 104);
|
|
639
655
|
i0.ɵɵelementEnd();
|
|
640
|
-
i0.ɵɵelementStart(8, "div",
|
|
641
|
-
i0.ɵɵelement(10, "i",
|
|
656
|
+
i0.ɵɵelementStart(8, "div", 127)(9, "span", 128);
|
|
657
|
+
i0.ɵɵelement(10, "i", 129);
|
|
642
658
|
i0.ɵɵtext(11, " Open ");
|
|
643
659
|
i0.ɵɵelementEnd()()();
|
|
644
660
|
} if (rf & 2) {
|
|
645
|
-
const
|
|
661
|
+
const dep_r25 = ctx.$implicit;
|
|
646
662
|
i0.ɵɵadvance(4);
|
|
647
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
663
|
+
i0.ɵɵtextInterpolate1(" ", dep_r25.Query, " ");
|
|
648
664
|
i0.ɵɵadvance(2);
|
|
649
|
-
i0.ɵɵconditional(
|
|
665
|
+
i0.ɵɵconditional(dep_r25.ReferencePath ? 6 : -1);
|
|
650
666
|
i0.ɵɵadvance();
|
|
651
|
-
i0.ɵɵconditional(
|
|
667
|
+
i0.ɵɵconditional(dep_r25.Alias ? 7 : -1);
|
|
652
668
|
} }
|
|
653
669
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template(rf, ctx) { if (rf & 1) {
|
|
654
|
-
const
|
|
670
|
+
const _r23 = i0.ɵɵgetCurrentView();
|
|
655
671
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
656
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
672
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.dependentsPanelExpanded, $event) || (ctx_r1.dependentsPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
657
673
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_42_ng_template_1_Template, 5, 1, "ng-template", 25);
|
|
658
|
-
i0.ɵɵelementStart(2, "div", 34)(3, "div",
|
|
674
|
+
i0.ɵɵelementStart(2, "div", 34)(3, "div", 122);
|
|
659
675
|
i0.ɵɵtext(4, " These queries reference this query via ");
|
|
660
676
|
i0.ɵɵelementStart(5, "code");
|
|
661
677
|
i0.ɵɵtext(6);
|
|
662
678
|
i0.ɵɵelementEnd();
|
|
663
679
|
i0.ɵɵtext(7, " composition syntax. ");
|
|
664
680
|
i0.ɵɵelementEnd();
|
|
665
|
-
i0.ɵɵelementStart(8, "div",
|
|
666
|
-
i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template, 12, 3, "div",
|
|
681
|
+
i0.ɵɵelementStart(8, "div", 94);
|
|
682
|
+
i0.ɵɵrepeaterCreate(9, MJQueryFormComponentExtended_Conditional_0_Conditional_42_For_10_Template, 12, 3, "div", 123, _forTrack2);
|
|
667
683
|
i0.ɵɵelementEnd()()();
|
|
668
684
|
} if (rf & 2) {
|
|
669
685
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -674,7 +690,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_42_Template(rf,
|
|
|
674
690
|
i0.ɵɵrepeater(ctx_r1.DependentQueries);
|
|
675
691
|
} }
|
|
676
692
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
677
|
-
i0.ɵɵelementStart(0, "span",
|
|
693
|
+
i0.ɵɵelementStart(0, "span", 85);
|
|
678
694
|
i0.ɵɵtext(1);
|
|
679
695
|
i0.ɵɵelementEnd();
|
|
680
696
|
} if (rf & 2) {
|
|
@@ -683,10 +699,10 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1
|
|
|
683
699
|
i0.ɵɵtextInterpolate(ctx_r1.queryEntities.length);
|
|
684
700
|
} }
|
|
685
701
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
686
|
-
i0.ɵɵelementStart(0, "span",
|
|
687
|
-
i0.ɵɵelement(1, "i",
|
|
702
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
703
|
+
i0.ɵɵelement(1, "i", 131);
|
|
688
704
|
i0.ɵɵtext(2, " Entities ");
|
|
689
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Conditional_3_Template, 2, 1, "span",
|
|
705
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Conditional_3_Template, 2, 1, "span", 85);
|
|
690
706
|
i0.ɵɵelementEnd();
|
|
691
707
|
} if (rf & 2) {
|
|
692
708
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -694,28 +710,28 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1
|
|
|
694
710
|
i0.ɵɵconditional(ctx_r1.queryEntities.length > 0 ? 3 : -1);
|
|
695
711
|
} }
|
|
696
712
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
697
|
-
i0.ɵɵelementStart(0, "div",
|
|
698
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
713
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
714
|
+
i0.ɵɵelement(1, "mj-loading", 132);
|
|
699
715
|
i0.ɵɵelementEnd();
|
|
700
716
|
} }
|
|
701
717
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
702
|
-
const
|
|
703
|
-
i0.ɵɵelementStart(0, "button",
|
|
704
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
705
|
-
i0.ɵɵelement(1, "i",
|
|
718
|
+
const _r27 = i0.ɵɵgetCurrentView();
|
|
719
|
+
i0.ɵɵelementStart(0, "button", 92);
|
|
720
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addEntity()); });
|
|
721
|
+
i0.ɵɵelement(1, "i", 53);
|
|
706
722
|
i0.ɵɵtext(2, " Add First Entity ");
|
|
707
723
|
i0.ɵɵelementEnd();
|
|
708
724
|
} }
|
|
709
725
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
710
|
-
i0.ɵɵelementStart(0, "div",
|
|
711
|
-
i0.ɵɵelement(1, "i",
|
|
712
|
-
i0.ɵɵelementStart(2, "div",
|
|
726
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
727
|
+
i0.ɵɵelement(1, "i", 133);
|
|
728
|
+
i0.ɵɵelementStart(2, "div", 89);
|
|
713
729
|
i0.ɵɵtext(3, "No Entities Tracked");
|
|
714
730
|
i0.ɵɵelementEnd();
|
|
715
|
-
i0.ɵɵelementStart(4, "div",
|
|
731
|
+
i0.ɵɵelementStart(4, "div", 90);
|
|
716
732
|
i0.ɵɵtext(5, " Track which entities this query uses for documentation. ");
|
|
717
733
|
i0.ɵɵelementEnd();
|
|
718
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button",
|
|
734
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Conditional_6_Template, 3, 0, "button", 91);
|
|
719
735
|
i0.ɵɵelementEnd();
|
|
720
736
|
} if (rf & 2) {
|
|
721
737
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -723,64 +739,64 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4
|
|
|
723
739
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
724
740
|
} }
|
|
725
741
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
726
|
-
const
|
|
727
|
-
i0.ɵɵelementStart(0, "div",
|
|
728
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
729
|
-
i0.ɵɵelement(2, "i",
|
|
742
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
743
|
+
i0.ɵɵelementStart(0, "div", 93)(1, "button", 92);
|
|
744
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addEntity()); });
|
|
745
|
+
i0.ɵɵelement(2, "i", 53);
|
|
730
746
|
i0.ɵɵtext(3, " Add Entity ");
|
|
731
747
|
i0.ɵɵelementEnd()();
|
|
732
748
|
} }
|
|
733
749
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
734
|
-
const
|
|
735
|
-
i0.ɵɵelementStart(0, "div",
|
|
736
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template_mj_dropdown_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(
|
|
750
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
751
|
+
i0.ɵɵelementStart(0, "div", 135)(1, "mj-dropdown", 136);
|
|
752
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template_mj_dropdown_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r29); const entity_r30 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(entity_r30.EntityID, $event) || (entity_r30.EntityID = $event); return i0.ɵɵresetView($event); });
|
|
737
753
|
i0.ɵɵelementEnd()();
|
|
738
754
|
} if (rf & 2) {
|
|
739
|
-
const
|
|
755
|
+
const entity_r30 = i0.ɵɵnextContext().$implicit;
|
|
740
756
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
741
757
|
i0.ɵɵadvance();
|
|
742
|
-
i0.ɵɵtwoWayProperty("ngModel",
|
|
743
|
-
i0.ɵɵproperty("name", "entity_" +
|
|
758
|
+
i0.ɵɵtwoWayProperty("ngModel", entity_r30.EntityID);
|
|
759
|
+
i0.ɵɵproperty("name", "entity_" + entity_r30.ID)("Data", ctx_r1.getEntityOptions())("ValuePrimitive", true);
|
|
744
760
|
} }
|
|
745
761
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
746
|
-
i0.ɵɵelementStart(0, "div",
|
|
747
|
-
i0.ɵɵelement(3, "i",
|
|
762
|
+
i0.ɵɵelementStart(0, "div", 102)(1, "div", 104)(2, "span", 105);
|
|
763
|
+
i0.ɵɵelement(3, "i", 137);
|
|
748
764
|
i0.ɵɵtext(4, " Data Source ");
|
|
749
765
|
i0.ɵɵelementEnd()()();
|
|
750
766
|
} }
|
|
751
767
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
752
|
-
const
|
|
753
|
-
i0.ɵɵelementStart(0, "div",
|
|
754
|
-
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
755
|
-
i0.ɵɵelement(2, "i",
|
|
768
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
769
|
+
i0.ɵɵelementStart(0, "div", 120)(1, "button", 138);
|
|
770
|
+
i0.ɵɵlistener("click", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r31); const entity_r30 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.deleteEntity(entity_r30)); });
|
|
771
|
+
i0.ɵɵelement(2, "i", 111);
|
|
756
772
|
i0.ɵɵelementEnd()();
|
|
757
773
|
} }
|
|
758
774
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
759
|
-
i0.ɵɵelementStart(0, "div",
|
|
760
|
-
i0.ɵɵelement(3, "i",
|
|
775
|
+
i0.ɵɵelementStart(0, "div", 115)(1, "div", 97)(2, "div", 98);
|
|
776
|
+
i0.ɵɵelement(3, "i", 134);
|
|
761
777
|
i0.ɵɵtext(4);
|
|
762
778
|
i0.ɵɵelementEnd();
|
|
763
|
-
i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div",
|
|
779
|
+
i0.ɵɵconditionalCreate(5, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_5_Template, 2, 4, "div", 135);
|
|
764
780
|
i0.ɵɵelementEnd();
|
|
765
|
-
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div",
|
|
766
|
-
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div",
|
|
781
|
+
i0.ɵɵconditionalCreate(6, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_6_Template, 5, 0, "div", 102);
|
|
782
|
+
i0.ɵɵconditionalCreate(7, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Conditional_7_Template, 3, 0, "div", 120);
|
|
767
783
|
i0.ɵɵelementEnd();
|
|
768
784
|
} if (rf & 2) {
|
|
769
|
-
const
|
|
785
|
+
const entity_r30 = ctx.$implicit;
|
|
770
786
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
771
787
|
i0.ɵɵadvance(4);
|
|
772
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
788
|
+
i0.ɵɵtextInterpolate1(" ", entity_r30.Entity || "Select Entity...", " ");
|
|
773
789
|
i0.ɵɵadvance();
|
|
774
790
|
i0.ɵɵconditional(ctx_r1.EditMode ? 5 : -1);
|
|
775
791
|
i0.ɵɵadvance();
|
|
776
|
-
i0.ɵɵconditional(!ctx_r1.EditMode &&
|
|
792
|
+
i0.ɵɵconditional(!ctx_r1.EditMode && entity_r30.Entity ? 6 : -1);
|
|
777
793
|
i0.ɵɵadvance();
|
|
778
794
|
i0.ɵɵconditional(ctx_r1.EditMode ? 7 : -1);
|
|
779
795
|
} }
|
|
780
796
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
781
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div",
|
|
782
|
-
i0.ɵɵelementStart(1, "div",
|
|
783
|
-
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div",
|
|
797
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Conditional_0_Template, 4, 0, "div", 93);
|
|
798
|
+
i0.ɵɵelementStart(1, "div", 94);
|
|
799
|
+
i0.ɵɵrepeaterCreate(2, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_For_3_Template, 8, 4, "div", 115, _forTrack2);
|
|
784
800
|
i0.ɵɵelementEnd();
|
|
785
801
|
} if (rf & 2) {
|
|
786
802
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -789,18 +805,18 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4
|
|
|
789
805
|
i0.ɵɵrepeater(ctx_r1.queryEntities);
|
|
790
806
|
} }
|
|
791
807
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
792
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Template, 7, 1, "div",
|
|
808
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_0_Template, 7, 1, "div", 87)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Conditional_1_Template, 4, 1);
|
|
793
809
|
} if (rf & 2) {
|
|
794
810
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
795
811
|
i0.ɵɵconditional(ctx_r1.queryEntities.length === 0 ? 0 : 1);
|
|
796
812
|
} }
|
|
797
813
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template(rf, ctx) { if (rf & 1) {
|
|
798
|
-
const
|
|
814
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
799
815
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
800
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
816
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.entitiesPanelExpanded, $event) || (ctx_r1.entitiesPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
801
817
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_43_ng_template_1_Template, 4, 1, "ng-template", 25);
|
|
802
818
|
i0.ɵɵelementStart(2, "div", 34);
|
|
803
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_3_Template, 2, 0, "div",
|
|
819
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_3_Template, 2, 0, "div", 83)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_43_Conditional_4_Template, 2, 1);
|
|
804
820
|
i0.ɵɵelementEnd()();
|
|
805
821
|
} if (rf & 2) {
|
|
806
822
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -809,17 +825,17 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_43_Template(rf,
|
|
|
809
825
|
i0.ɵɵconditional(ctx_r1.isLoadingEntities ? 3 : 4);
|
|
810
826
|
} }
|
|
811
827
|
function MJQueryFormComponentExtended_Conditional_0_ng_template_45_Template(rf, ctx) { if (rf & 1) {
|
|
812
|
-
i0.ɵɵelementStart(0, "span",
|
|
813
|
-
i0.ɵɵelement(1, "i",
|
|
828
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
829
|
+
i0.ɵɵelement(1, "i", 139);
|
|
814
830
|
i0.ɵɵtext(2, " Details ");
|
|
815
831
|
i0.ɵɵelementEnd();
|
|
816
832
|
} }
|
|
817
833
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template(rf, ctx) { if (rf & 1) {
|
|
818
|
-
const
|
|
819
|
-
i0.ɵɵelementStart(0, "mj-switch",
|
|
820
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
834
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
835
|
+
i0.ɵɵelementStart(0, "mj-switch", 140);
|
|
836
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Reusable, $event) || (ctx_r1.record.Reusable = $event); return i0.ɵɵresetView($event); });
|
|
821
837
|
i0.ɵɵelementEnd();
|
|
822
|
-
i0.ɵɵelementStart(1, "div",
|
|
838
|
+
i0.ɵɵelementStart(1, "div", 141);
|
|
823
839
|
i0.ɵɵtext(2, "Allow other queries to reference this query using composition syntax");
|
|
824
840
|
i0.ɵɵelementEnd();
|
|
825
841
|
} if (rf & 2) {
|
|
@@ -827,20 +843,20 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_52_Template(rf,
|
|
|
827
843
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Reusable);
|
|
828
844
|
} }
|
|
829
845
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
830
|
-
i0.ɵɵelementStart(0, "span",
|
|
831
|
-
i0.ɵɵelement(1, "i",
|
|
846
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
847
|
+
i0.ɵɵelement(1, "i", 144);
|
|
832
848
|
i0.ɵɵtext(2, " Reusable");
|
|
833
849
|
i0.ɵɵelementEnd();
|
|
834
850
|
} }
|
|
835
851
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
836
|
-
i0.ɵɵelementStart(0, "span",
|
|
837
|
-
i0.ɵɵelement(1, "i",
|
|
852
|
+
i0.ɵɵelementStart(0, "span", 143);
|
|
853
|
+
i0.ɵɵelement(1, "i", 145);
|
|
838
854
|
i0.ɵɵtext(2, " Not Reusable");
|
|
839
855
|
i0.ɵɵelementEnd();
|
|
840
856
|
} }
|
|
841
857
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Template(rf, ctx) { if (rf & 1) {
|
|
842
858
|
i0.ɵɵelementStart(0, "div", 39);
|
|
843
|
-
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_1_Template, 3, 0, "span",
|
|
859
|
+
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_1_Template, 3, 0, "span", 142)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_53_Conditional_2_Template, 3, 0, "span", 143);
|
|
844
860
|
i0.ɵɵelementEnd();
|
|
845
861
|
} if (rf & 2) {
|
|
846
862
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -848,11 +864,11 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_53_Template(rf,
|
|
|
848
864
|
i0.ɵɵconditional(ctx_r1.record.Reusable ? 1 : 2);
|
|
849
865
|
} }
|
|
850
866
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template(rf, ctx) { if (rf & 1) {
|
|
851
|
-
const
|
|
852
|
-
i0.ɵɵelementStart(0, "mj-switch",
|
|
853
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
867
|
+
const _r33 = i0.ɵɵgetCurrentView();
|
|
868
|
+
i0.ɵɵelementStart(0, "mj-switch", 146);
|
|
869
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.CacheEnabled, $event) || (ctx_r1.record.CacheEnabled = $event); return i0.ɵɵresetView($event); });
|
|
854
870
|
i0.ɵɵelementEnd();
|
|
855
|
-
i0.ɵɵelementStart(1, "div",
|
|
871
|
+
i0.ɵɵelementStart(1, "div", 141);
|
|
856
872
|
i0.ɵɵtext(2, "Cache query results in memory to reduce database load on repeated runs");
|
|
857
873
|
i0.ɵɵelementEnd();
|
|
858
874
|
} if (rf & 2) {
|
|
@@ -860,20 +876,20 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_58_Template(rf,
|
|
|
860
876
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.CacheEnabled);
|
|
861
877
|
} }
|
|
862
878
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
863
|
-
i0.ɵɵelementStart(0, "span",
|
|
864
|
-
i0.ɵɵelement(1, "i",
|
|
879
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
880
|
+
i0.ɵɵelement(1, "i", 144);
|
|
865
881
|
i0.ɵɵtext(2, " Caching On");
|
|
866
882
|
i0.ɵɵelementEnd();
|
|
867
883
|
} }
|
|
868
884
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
869
|
-
i0.ɵɵelementStart(0, "span",
|
|
870
|
-
i0.ɵɵelement(1, "i",
|
|
885
|
+
i0.ɵɵelementStart(0, "span", 143);
|
|
886
|
+
i0.ɵɵelement(1, "i", 145);
|
|
871
887
|
i0.ɵɵtext(2, " Caching Off");
|
|
872
888
|
i0.ɵɵelementEnd();
|
|
873
889
|
} }
|
|
874
890
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Template(rf, ctx) { if (rf & 1) {
|
|
875
891
|
i0.ɵɵelementStart(0, "div", 39);
|
|
876
|
-
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_1_Template, 3, 0, "span",
|
|
892
|
+
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_1_Template, 3, 0, "span", 142)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_59_Conditional_2_Template, 3, 0, "span", 143);
|
|
877
893
|
i0.ɵɵelementEnd();
|
|
878
894
|
} if (rf & 2) {
|
|
879
895
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -881,11 +897,11 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_59_Template(rf,
|
|
|
881
897
|
i0.ɵɵconditional(ctx_r1.record.CacheEnabled ? 1 : 2);
|
|
882
898
|
} }
|
|
883
899
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
884
|
-
const
|
|
885
|
-
i0.ɵɵelementStart(0, "input",
|
|
886
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
900
|
+
const _r34 = i0.ɵɵgetCurrentView();
|
|
901
|
+
i0.ɵɵelementStart(0, "input", 148);
|
|
902
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.CacheTTLMinutes, $event) || (ctx_r1.record.CacheTTLMinutes = $event); return i0.ɵɵresetView($event); });
|
|
887
903
|
i0.ɵɵelementEnd();
|
|
888
|
-
i0.ɵɵelementStart(1, "div",
|
|
904
|
+
i0.ɵɵelementStart(1, "div", 141);
|
|
889
905
|
i0.ɵɵtext(2, "How long cached results remain valid. Leave blank for default TTL.");
|
|
890
906
|
i0.ɵɵelementEnd();
|
|
891
907
|
} if (rf & 2) {
|
|
@@ -903,7 +919,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_5
|
|
|
903
919
|
} }
|
|
904
920
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Template(rf, ctx) { if (rf & 1) {
|
|
905
921
|
i0.ɵɵelementStart(0, "div", 36)(1, "label", 37);
|
|
906
|
-
i0.ɵɵelement(2, "i",
|
|
922
|
+
i0.ɵɵelement(2, "i", 147);
|
|
907
923
|
i0.ɵɵtext(3, " Cache TTL (Minutes) ");
|
|
908
924
|
i0.ɵɵelementEnd();
|
|
909
925
|
i0.ɵɵconditionalCreate(4, MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_4_Template, 3, 1)(5, MJQueryFormComponentExtended_Conditional_0_Conditional_60_Conditional_5_Template, 2, 1, "div", 39);
|
|
@@ -914,11 +930,11 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_60_Template(rf,
|
|
|
914
930
|
i0.ɵɵconditional(ctx_r1.EditMode ? 4 : 5);
|
|
915
931
|
} }
|
|
916
932
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template(rf, ctx) { if (rf & 1) {
|
|
917
|
-
const
|
|
918
|
-
i0.ɵɵelementStart(0, "mj-switch",
|
|
919
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
933
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
|
934
|
+
i0.ɵɵelementStart(0, "mj-switch", 149);
|
|
935
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.AuditQueryRuns, $event) || (ctx_r1.record.AuditQueryRuns = $event); return i0.ɵɵresetView($event); });
|
|
920
936
|
i0.ɵɵelementEnd();
|
|
921
|
-
i0.ɵɵelementStart(1, "div",
|
|
937
|
+
i0.ɵɵelementStart(1, "div", 141);
|
|
922
938
|
i0.ɵɵtext(2, "Log all executions of this query to the Audit Log for tracking and compliance");
|
|
923
939
|
i0.ɵɵelementEnd();
|
|
924
940
|
} if (rf & 2) {
|
|
@@ -926,20 +942,20 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_65_Template(rf,
|
|
|
926
942
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.AuditQueryRuns);
|
|
927
943
|
} }
|
|
928
944
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
929
|
-
i0.ɵɵelementStart(0, "span",
|
|
930
|
-
i0.ɵɵelement(1, "i",
|
|
945
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
946
|
+
i0.ɵɵelement(1, "i", 144);
|
|
931
947
|
i0.ɵɵtext(2, " Auditing On");
|
|
932
948
|
i0.ɵɵelementEnd();
|
|
933
949
|
} }
|
|
934
950
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
935
|
-
i0.ɵɵelementStart(0, "span",
|
|
936
|
-
i0.ɵɵelement(1, "i",
|
|
951
|
+
i0.ɵɵelementStart(0, "span", 143);
|
|
952
|
+
i0.ɵɵelement(1, "i", 145);
|
|
937
953
|
i0.ɵɵtext(2, " Auditing Off");
|
|
938
954
|
i0.ɵɵelementEnd();
|
|
939
955
|
} }
|
|
940
956
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Template(rf, ctx) { if (rf & 1) {
|
|
941
957
|
i0.ɵɵelementStart(0, "div", 39);
|
|
942
|
-
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_1_Template, 3, 0, "span",
|
|
958
|
+
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_1_Template, 3, 0, "span", 142)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_66_Conditional_2_Template, 3, 0, "span", 143);
|
|
943
959
|
i0.ɵɵelementEnd();
|
|
944
960
|
} if (rf & 2) {
|
|
945
961
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -947,29 +963,29 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_66_Template(rf,
|
|
|
947
963
|
i0.ɵɵconditional(ctx_r1.record.AuditQueryRuns ? 1 : 2);
|
|
948
964
|
} }
|
|
949
965
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
950
|
-
const
|
|
951
|
-
i0.ɵɵelementStart(0, "mj-switch",
|
|
952
|
-
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
966
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
967
|
+
i0.ɵɵelementStart(0, "mj-switch", 150);
|
|
968
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_71_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.UsesTemplate, $event) || (ctx_r1.record.UsesTemplate = $event); return i0.ɵɵresetView($event); });
|
|
953
969
|
i0.ɵɵelementEnd();
|
|
954
970
|
} if (rf & 2) {
|
|
955
971
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
956
972
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.UsesTemplate);
|
|
957
973
|
} }
|
|
958
974
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
959
|
-
i0.ɵɵelementStart(0, "span",
|
|
960
|
-
i0.ɵɵelement(1, "i",
|
|
975
|
+
i0.ɵɵelementStart(0, "span", 142);
|
|
976
|
+
i0.ɵɵelement(1, "i", 144);
|
|
961
977
|
i0.ɵɵtext(2, " Uses Templates");
|
|
962
978
|
i0.ɵɵelementEnd();
|
|
963
979
|
} }
|
|
964
980
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
965
|
-
i0.ɵɵelementStart(0, "span",
|
|
966
|
-
i0.ɵɵelement(1, "i",
|
|
981
|
+
i0.ɵɵelementStart(0, "span", 143);
|
|
982
|
+
i0.ɵɵelement(1, "i", 145);
|
|
967
983
|
i0.ɵɵtext(2, " No Templates");
|
|
968
984
|
i0.ɵɵelementEnd();
|
|
969
985
|
} }
|
|
970
986
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Template(rf, ctx) { if (rf & 1) {
|
|
971
987
|
i0.ɵɵelementStart(0, "div", 39);
|
|
972
|
-
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_1_Template, 3, 0, "span",
|
|
988
|
+
i0.ɵɵconditionalCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_1_Template, 3, 0, "span", 142)(2, MJQueryFormComponentExtended_Conditional_0_Conditional_72_Conditional_2_Template, 3, 0, "span", 143);
|
|
973
989
|
i0.ɵɵelementEnd();
|
|
974
990
|
} if (rf & 2) {
|
|
975
991
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -978,7 +994,7 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_72_Template(rf,
|
|
|
978
994
|
} }
|
|
979
995
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_85_Template(rf, ctx) { if (rf & 1) {
|
|
980
996
|
i0.ɵɵelementStart(0, "div", 36)(1, "label", 37);
|
|
981
|
-
i0.ɵɵelement(2, "i",
|
|
997
|
+
i0.ɵɵelement(2, "i", 151);
|
|
982
998
|
i0.ɵɵtext(3, " Quality Rank ");
|
|
983
999
|
i0.ɵɵelementEnd();
|
|
984
1000
|
i0.ɵɵelementStart(4, "div", 39);
|
|
@@ -990,53 +1006,53 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_85_Template(rf,
|
|
|
990
1006
|
i0.ɵɵtextInterpolate1("", ctx_r1.record.QualityRank, "/10");
|
|
991
1007
|
} }
|
|
992
1008
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
993
|
-
i0.ɵɵelementStart(0, "span",
|
|
994
|
-
i0.ɵɵelement(1, "i",
|
|
1009
|
+
i0.ɵɵelementStart(0, "span", 65);
|
|
1010
|
+
i0.ɵɵelement(1, "i", 152);
|
|
995
1011
|
i0.ɵɵtext(2, " Permissions ");
|
|
996
1012
|
i0.ɵɵelementEnd();
|
|
997
1013
|
} }
|
|
998
1014
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
999
|
-
i0.ɵɵelementStart(0, "div",
|
|
1000
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
1015
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
1016
|
+
i0.ɵɵelement(1, "mj-loading", 153);
|
|
1001
1017
|
i0.ɵɵelementEnd();
|
|
1002
1018
|
} }
|
|
1003
1019
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
1004
|
-
i0.ɵɵelementStart(0, "div",
|
|
1005
|
-
i0.ɵɵelement(1, "i",
|
|
1006
|
-
i0.ɵɵelementStart(2, "div",
|
|
1020
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
1021
|
+
i0.ɵɵelement(1, "i", 154);
|
|
1022
|
+
i0.ɵɵelementStart(2, "div", 89);
|
|
1007
1023
|
i0.ɵɵtext(3, "No Permissions Set");
|
|
1008
1024
|
i0.ɵɵelementEnd();
|
|
1009
|
-
i0.ɵɵelementStart(4, "div",
|
|
1025
|
+
i0.ɵɵelementStart(4, "div", 90);
|
|
1010
1026
|
i0.ɵɵtext(5, " This query uses default permissions. ");
|
|
1011
1027
|
i0.ɵɵelementEnd()();
|
|
1012
1028
|
} }
|
|
1013
1029
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
1014
|
-
i0.ɵɵelement(0, "mj-explorer-entity-data-grid",
|
|
1030
|
+
i0.ɵɵelement(0, "mj-explorer-entity-data-grid", 155);
|
|
1015
1031
|
} if (rf & 2) {
|
|
1016
1032
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
1017
1033
|
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Query Permissions", "QueryID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Query Permissions"))("AllowLoad", true)("ShowToolbar", false);
|
|
1018
1034
|
} }
|
|
1019
1035
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1020
|
-
i0.ɵɵelementStart(0, "div",
|
|
1021
|
-
i0.ɵɵelement(1, "i",
|
|
1022
|
-
i0.ɵɵelementStart(2, "div",
|
|
1036
|
+
i0.ɵɵelementStart(0, "div", 157);
|
|
1037
|
+
i0.ɵɵelement(1, "i", 158);
|
|
1038
|
+
i0.ɵɵelementStart(2, "div", 159)(3, "div", 160);
|
|
1023
1039
|
i0.ɵɵtext(4);
|
|
1024
1040
|
i0.ɵɵelementEnd();
|
|
1025
|
-
i0.ɵɵelementStart(5, "div",
|
|
1041
|
+
i0.ɵɵelementStart(5, "div", 161);
|
|
1026
1042
|
i0.ɵɵtext(6, "Role Permission");
|
|
1027
1043
|
i0.ɵɵelementEnd()();
|
|
1028
|
-
i0.ɵɵelementStart(7, "span",
|
|
1029
|
-
i0.ɵɵelement(8, "i",
|
|
1044
|
+
i0.ɵɵelementStart(7, "span", 162);
|
|
1045
|
+
i0.ɵɵelement(8, "i", 50);
|
|
1030
1046
|
i0.ɵɵtext(9, " Can Execute ");
|
|
1031
1047
|
i0.ɵɵelementEnd()();
|
|
1032
1048
|
} if (rf & 2) {
|
|
1033
|
-
const
|
|
1049
|
+
const permission_r38 = ctx.$implicit;
|
|
1034
1050
|
i0.ɵɵadvance(4);
|
|
1035
|
-
i0.ɵɵtextInterpolate(
|
|
1051
|
+
i0.ɵɵtextInterpolate(permission_r38.Role);
|
|
1036
1052
|
} }
|
|
1037
1053
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1038
|
-
i0.ɵɵelementStart(0, "div",
|
|
1039
|
-
i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div",
|
|
1054
|
+
i0.ɵɵelementStart(0, "div", 156);
|
|
1055
|
+
i0.ɵɵrepeaterCreate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_For_2_Template, 10, 1, "div", 157, _forTrack2);
|
|
1040
1056
|
i0.ɵɵelementEnd();
|
|
1041
1057
|
} if (rf & 2) {
|
|
1042
1058
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
@@ -1044,24 +1060,24 @@ function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4
|
|
|
1044
1060
|
i0.ɵɵrepeater(ctx_r1.queryPermissions);
|
|
1045
1061
|
} }
|
|
1046
1062
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1047
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid",
|
|
1063
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_0_Template, 1, 4, "mj-explorer-entity-data-grid", 155)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Conditional_1_Template, 3, 0, "div", 156);
|
|
1048
1064
|
} if (rf & 2) {
|
|
1049
1065
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
1050
1066
|
i0.ɵɵconditional(ctx_r1.EditMode ? 0 : 1);
|
|
1051
1067
|
} }
|
|
1052
1068
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1053
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_0_Template, 6, 0, "div",
|
|
1069
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_0_Template, 6, 0, "div", 87)(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Conditional_1_Template, 2, 1);
|
|
1054
1070
|
} if (rf & 2) {
|
|
1055
1071
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1056
1072
|
i0.ɵɵconditional(ctx_r1.queryPermissions.length === 0 && !ctx_r1.EditMode ? 0 : 1);
|
|
1057
1073
|
} }
|
|
1058
1074
|
function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template(rf, ctx) { if (rf & 1) {
|
|
1059
|
-
const
|
|
1075
|
+
const _r37 = i0.ɵɵgetCurrentView();
|
|
1060
1076
|
i0.ɵɵelementStart(0, "mj-accordion-panel", 24);
|
|
1061
|
-
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(
|
|
1077
|
+
i0.ɵɵtwoWayListener("ExpandedChange", function MJQueryFormComponentExtended_Conditional_0_Conditional_86_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.permissionsPanelExpanded, $event) || (ctx_r1.permissionsPanelExpanded = $event); return i0.ɵɵresetView($event); });
|
|
1062
1078
|
i0.ɵɵtemplate(1, MJQueryFormComponentExtended_Conditional_0_Conditional_86_ng_template_1_Template, 3, 0, "ng-template", 25);
|
|
1063
1079
|
i0.ɵɵelementStart(2, "div", 34);
|
|
1064
|
-
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_3_Template, 2, 0, "div",
|
|
1080
|
+
i0.ɵɵconditionalCreate(3, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_3_Template, 2, 0, "div", 83)(4, MJQueryFormComponentExtended_Conditional_0_Conditional_86_Conditional_4_Template, 2, 1);
|
|
1065
1081
|
i0.ɵɵelementEnd()();
|
|
1066
1082
|
} if (rf & 2) {
|
|
1067
1083
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -1085,7 +1101,7 @@ function MJQueryFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
1085
1101
|
i0.ɵɵelementStart(13, "div", 14)(14, "div", 15)(15, "label", 16);
|
|
1086
1102
|
i0.ɵɵtext(16, "Category");
|
|
1087
1103
|
i0.ɵɵelementEnd();
|
|
1088
|
-
i0.ɵɵconditionalCreate(17, MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template,
|
|
1104
|
+
i0.ɵɵconditionalCreate(17, MJQueryFormComponentExtended_Conditional_0_Conditional_17_Template, 5, 8, "div", 17)(18, MJQueryFormComponentExtended_Conditional_0_Conditional_18_Template, 2, 1, "span", 18);
|
|
1089
1105
|
i0.ɵɵelementEnd();
|
|
1090
1106
|
i0.ɵɵelementStart(19, "div", 15)(20, "label", 16);
|
|
1091
1107
|
i0.ɵɵtext(21, "Status");
|
|
@@ -1166,10 +1182,6 @@ function MJQueryFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
1166
1182
|
i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_run_dialog_isVisibleChange_87_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.showRunDialog, $event) || (ctx_r1.showRunDialog = $event); return i0.ɵɵresetView($event); });
|
|
1167
1183
|
i0.ɵɵlistener("onClose", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_run_dialog_onClose_87_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRunDialogClose()); });
|
|
1168
1184
|
i0.ɵɵelementEnd();
|
|
1169
|
-
i0.ɵɵelementStart(88, "mj-query-category-dialog", 47);
|
|
1170
|
-
i0.ɵɵtwoWayListener("isVisibleChange", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_category_dialog_isVisibleChange_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.showCategoryDialog, $event) || (ctx_r1.showCategoryDialog = $event); return i0.ɵɵresetView($event); });
|
|
1171
|
-
i0.ɵɵlistener("onCategoryCreated", function MJQueryFormComponentExtended_Conditional_0_Template_mj_query_category_dialog_onCategoryCreated_88_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCategoryCreated($event)); });
|
|
1172
|
-
i0.ɵɵelementEnd();
|
|
1173
1185
|
} if (rf & 2) {
|
|
1174
1186
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
1175
1187
|
i0.ɵɵproperty("Record", ctx_r1.record)("FormComponent", ctx_r1)("ToolbarConfig", ctx_r1.ToolbarConfig)("IsSaving", ctx_r1.IsSaving)("WidthMode", "full-width");
|
|
@@ -1232,8 +1244,6 @@ function MJQueryFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
1232
1244
|
i0.ɵɵadvance();
|
|
1233
1245
|
i0.ɵɵproperty("query", ctx_r1.record)("parameters", ctx_r1.queryParameters);
|
|
1234
1246
|
i0.ɵɵtwoWayProperty("isVisible", ctx_r1.showRunDialog);
|
|
1235
|
-
i0.ɵɵadvance();
|
|
1236
|
-
i0.ɵɵtwoWayProperty("isVisible", ctx_r1.showCategoryDialog);
|
|
1237
1247
|
} }
|
|
1238
1248
|
let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJQueryFormComponent {
|
|
1239
1249
|
constructor() {
|
|
@@ -1249,7 +1259,6 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1249
1259
|
this.hasUnsavedChanges = false;
|
|
1250
1260
|
this.showFiltersHelp = false;
|
|
1251
1261
|
this.showRunDialog = false;
|
|
1252
|
-
this.showCategoryDialog = false;
|
|
1253
1262
|
this.categoryPathDisplay = '';
|
|
1254
1263
|
this.IsSaving = false;
|
|
1255
1264
|
// Expansion panel states
|
|
@@ -1292,6 +1301,7 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1292
1301
|
// SQL Filters for help display
|
|
1293
1302
|
this.sqlFilters = RUN_QUERY_SQL_FILTERS;
|
|
1294
1303
|
this.navigationService = inject(NavigationService);
|
|
1304
|
+
this.formPresenter = inject(MJFormPresenterService);
|
|
1295
1305
|
this.destroy$ = new Subject();
|
|
1296
1306
|
this.isUpdatingEditorValue = false;
|
|
1297
1307
|
this.isInitialLoad = true;
|
|
@@ -1314,34 +1324,23 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1314
1324
|
}
|
|
1315
1325
|
/** Custom-layout Query form looks best full-width on first open. */
|
|
1316
1326
|
getDefaultFormWidthMode() { return 'full-width'; }
|
|
1317
|
-
/**
|
|
1318
|
-
* Gets the QueryInfo metadata object for the current record, used to access Dependents.
|
|
1319
|
-
*/
|
|
1320
|
-
get CurrentQueryInfo() {
|
|
1321
|
-
if (!this.record?.ID)
|
|
1322
|
-
return undefined;
|
|
1323
|
-
return this.ProviderToUse.Queries.find(q => UUIDsEqual(q.ID, this.record.ID));
|
|
1324
|
-
}
|
|
1325
1327
|
/**
|
|
1326
1328
|
* Gets queries that depend on (reference) this query via composition.
|
|
1327
1329
|
*/
|
|
1328
1330
|
get DependentQueries() {
|
|
1329
|
-
return this.
|
|
1331
|
+
return this.record?.QueryDependents ?? [];
|
|
1330
1332
|
}
|
|
1331
1333
|
async ngOnInit() {
|
|
1332
1334
|
await super.ngOnInit();
|
|
1333
1335
|
// During init, suppress per-method detectChanges to avoid NG0100.
|
|
1334
1336
|
// We do one unified detectChanges after everything completes.
|
|
1335
1337
|
this.isInitialLoad = true;
|
|
1336
|
-
// Load
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
this.loadQueryEntities(),
|
|
1343
|
-
this.loadQueryPermissions()
|
|
1344
|
-
]);
|
|
1338
|
+
// Load all data synchronously from QueryEngine cache
|
|
1339
|
+
this.loadCategories();
|
|
1340
|
+
this.loadQueryParameters();
|
|
1341
|
+
this.loadQueryFields();
|
|
1342
|
+
this.loadQueryEntities();
|
|
1343
|
+
this.loadQueryPermissions();
|
|
1345
1344
|
this.isInitialLoad = false;
|
|
1346
1345
|
this.cdr.detectChanges();
|
|
1347
1346
|
}
|
|
@@ -1392,139 +1391,51 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1392
1391
|
isFormReadOnly() {
|
|
1393
1392
|
return !this.EditMode;
|
|
1394
1393
|
}
|
|
1395
|
-
|
|
1394
|
+
loadQueryParameters() {
|
|
1396
1395
|
if (this.record && this.record.ID) {
|
|
1397
|
-
this.
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
const results = await rv.RunView({
|
|
1401
|
-
EntityName: 'MJ: Query Parameters',
|
|
1402
|
-
ExtraFilter: `QueryID='${this.record.ID}'`,
|
|
1403
|
-
OrderBy: 'Name ASC',
|
|
1404
|
-
ResultType: 'entity_object'
|
|
1405
|
-
});
|
|
1406
|
-
if (results.Success) {
|
|
1407
|
-
this.queryParameters = results.Results || [];
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
catch (error) {
|
|
1411
|
-
console.error('Error loading query parameters:', error);
|
|
1412
|
-
}
|
|
1413
|
-
finally {
|
|
1414
|
-
this.isLoadingParameters = false;
|
|
1415
|
-
if (!this.isInitialLoad)
|
|
1416
|
-
this.cdr.detectChanges();
|
|
1417
|
-
}
|
|
1396
|
+
this.queryParameters = this.record.QueryParameters;
|
|
1397
|
+
if (!this.isInitialLoad)
|
|
1398
|
+
this.cdr.detectChanges();
|
|
1418
1399
|
}
|
|
1419
1400
|
}
|
|
1420
|
-
|
|
1401
|
+
loadQueryFields() {
|
|
1421
1402
|
if (this.record && this.record.ID) {
|
|
1422
|
-
this.
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
const results = await rv.RunView({
|
|
1426
|
-
EntityName: 'MJ: Query Fields',
|
|
1427
|
-
ExtraFilter: `QueryID='${this.record.ID}'`,
|
|
1428
|
-
OrderBy: 'Sequence ASC, Name ASC',
|
|
1429
|
-
ResultType: 'entity_object'
|
|
1430
|
-
});
|
|
1431
|
-
if (results.Success) {
|
|
1432
|
-
this.queryFields = results.Results || [];
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
catch (error) {
|
|
1436
|
-
console.error('Error loading query fields:', error);
|
|
1437
|
-
}
|
|
1438
|
-
finally {
|
|
1439
|
-
this.isLoadingFields = false;
|
|
1440
|
-
if (!this.isInitialLoad)
|
|
1441
|
-
this.cdr.detectChanges();
|
|
1442
|
-
}
|
|
1403
|
+
this.queryFields = this.record.QueryFields;
|
|
1404
|
+
if (!this.isInitialLoad)
|
|
1405
|
+
this.cdr.detectChanges();
|
|
1443
1406
|
}
|
|
1444
1407
|
}
|
|
1445
|
-
|
|
1408
|
+
loadQueryEntities() {
|
|
1446
1409
|
if (this.record && this.record.ID) {
|
|
1447
|
-
this.
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
const results = await rv.RunView({
|
|
1451
|
-
EntityName: 'MJ: Query Entities',
|
|
1452
|
-
ExtraFilter: `QueryID='${this.record.ID}'`,
|
|
1453
|
-
OrderBy: 'Entity ASC',
|
|
1454
|
-
ResultType: 'entity_object'
|
|
1455
|
-
});
|
|
1456
|
-
if (results.Success) {
|
|
1457
|
-
this.queryEntities = results.Results || [];
|
|
1458
|
-
console.log('Loaded query entities:', this.queryEntities);
|
|
1459
|
-
}
|
|
1460
|
-
}
|
|
1461
|
-
catch (error) {
|
|
1462
|
-
console.error('Error loading query entities:', error);
|
|
1463
|
-
}
|
|
1464
|
-
finally {
|
|
1465
|
-
this.isLoadingEntities = false;
|
|
1466
|
-
if (!this.isInitialLoad)
|
|
1467
|
-
this.cdr.detectChanges();
|
|
1468
|
-
}
|
|
1410
|
+
this.queryEntities = this.record.QueryEntities;
|
|
1411
|
+
if (!this.isInitialLoad)
|
|
1412
|
+
this.cdr.detectChanges();
|
|
1469
1413
|
}
|
|
1470
1414
|
}
|
|
1471
|
-
|
|
1415
|
+
loadQueryPermissions() {
|
|
1472
1416
|
if (this.record && this.record.ID) {
|
|
1473
|
-
this.
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
const results = await rv.RunView({
|
|
1477
|
-
EntityName: 'MJ: Query Permissions',
|
|
1478
|
-
ExtraFilter: `QueryID='${this.record.ID}'`,
|
|
1479
|
-
OrderBy: 'Role ASC',
|
|
1480
|
-
ResultType: 'entity_object'
|
|
1481
|
-
});
|
|
1482
|
-
if (results.Success) {
|
|
1483
|
-
this.queryPermissions = results.Results || [];
|
|
1484
|
-
}
|
|
1485
|
-
}
|
|
1486
|
-
catch (error) {
|
|
1487
|
-
console.error('Error loading query permissions:', error);
|
|
1488
|
-
}
|
|
1489
|
-
finally {
|
|
1490
|
-
this.isLoadingPermissions = false;
|
|
1491
|
-
if (!this.isInitialLoad)
|
|
1492
|
-
this.cdr.detectChanges();
|
|
1493
|
-
}
|
|
1417
|
+
this.queryPermissions = this.record.QueryPermissions;
|
|
1418
|
+
if (!this.isInitialLoad)
|
|
1419
|
+
this.cdr.detectChanges();
|
|
1494
1420
|
}
|
|
1495
1421
|
}
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
];
|
|
1514
|
-
// Build tree data after options are set
|
|
1515
|
-
this.categoryTreeData = this.buildCategoryTree(this.categories);
|
|
1516
|
-
// Update cached category path display
|
|
1517
|
-
this.updateCategoryPathDisplay();
|
|
1518
|
-
// Trigger change detection to update the view (skip during init)
|
|
1519
|
-
if (!this.isInitialLoad)
|
|
1520
|
-
this.cdr.detectChanges();
|
|
1521
|
-
}
|
|
1522
|
-
}
|
|
1523
|
-
catch (error) {
|
|
1524
|
-
console.error('Error loading categories:', error);
|
|
1525
|
-
this.categoryOptions = [{ text: 'Select Category...', value: '' }];
|
|
1526
|
-
this.categoryTreeData = [];
|
|
1527
|
-
}
|
|
1422
|
+
loadCategories() {
|
|
1423
|
+
this.categories = QueryEngine.Instance.Categories;
|
|
1424
|
+
// Build flat options for legacy compatibility
|
|
1425
|
+
this.categoryOptions = [
|
|
1426
|
+
{ text: 'Select Category...', value: '' },
|
|
1427
|
+
...this.categories.map(cat => ({
|
|
1428
|
+
text: cat.Name,
|
|
1429
|
+
value: cat.ID
|
|
1430
|
+
}))
|
|
1431
|
+
];
|
|
1432
|
+
// Build tree data after options are set
|
|
1433
|
+
this.categoryTreeData = this.buildCategoryTree(this.categories);
|
|
1434
|
+
// Update cached category path display
|
|
1435
|
+
this.updateCategoryPathDisplay();
|
|
1436
|
+
// Trigger change detection to update the view (skip during init)
|
|
1437
|
+
if (!this.isInitialLoad)
|
|
1438
|
+
this.cdr.detectChanges();
|
|
1528
1439
|
}
|
|
1529
1440
|
buildCategoryTree(categories) {
|
|
1530
1441
|
const categoryMap = new Map();
|
|
@@ -1652,7 +1563,7 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1652
1563
|
console.warn(`Executing query '${this.record.Name}' with status '${this.record.Status}'. Query has not been approved.`);
|
|
1653
1564
|
}
|
|
1654
1565
|
// Reload parameters in case they were updated
|
|
1655
|
-
|
|
1566
|
+
this.loadQueryParameters();
|
|
1656
1567
|
// Show the run dialog — set before detectChanges to avoid NG0100
|
|
1657
1568
|
this.showRunDialog = true;
|
|
1658
1569
|
this.cdr.detectChanges();
|
|
@@ -1739,11 +1650,50 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1739
1650
|
this.cdr.detectChanges();
|
|
1740
1651
|
}
|
|
1741
1652
|
/**
|
|
1742
|
-
*
|
|
1653
|
+
* Create a new Query Category in a slide-in via the generic
|
|
1654
|
+
* MJFormPresenterService. A new record opens in edit mode automatically.
|
|
1655
|
+
* On save, refresh the category tree and select the new category.
|
|
1743
1656
|
*/
|
|
1744
|
-
async
|
|
1657
|
+
async createCategory() {
|
|
1658
|
+
const ref = this.formPresenter.Open({
|
|
1659
|
+
EntityName: 'MJ: Query Categories',
|
|
1660
|
+
Presentation: 'slide-in',
|
|
1661
|
+
// Quick-create: drop the system-metadata (timestamps) section — empty
|
|
1662
|
+
// for a new record. Merges over the slide-in preset (toolbar still off).
|
|
1663
|
+
Config: { HiddenSectionKeys: ['systemMetadata'] },
|
|
1664
|
+
Provider: this.ProviderToUse,
|
|
1665
|
+
});
|
|
1666
|
+
const saved = await ref.AfterSaved();
|
|
1667
|
+
if (saved) {
|
|
1668
|
+
this.onCategoryCreated(saved);
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
/**
|
|
1672
|
+
* Edit the currently-selected category in a slide-in via the generic
|
|
1673
|
+
* MJFormPresenterService. `StartInEditMode` opens the existing record
|
|
1674
|
+
* editable. On save, refresh the category tree.
|
|
1675
|
+
*/
|
|
1676
|
+
async editSelectedCategory() {
|
|
1677
|
+
if (!this.record.CategoryID)
|
|
1678
|
+
return;
|
|
1679
|
+
const ref = this.formPresenter.Open({
|
|
1680
|
+
EntityName: 'MJ: Query Categories',
|
|
1681
|
+
RecordId: this.record.CategoryID,
|
|
1682
|
+
Presentation: 'slide-in',
|
|
1683
|
+
// Open editable + drop the system-metadata section. Partial config
|
|
1684
|
+
// merges over the slide-in preset, so the toolbar stays suppressed.
|
|
1685
|
+
Config: { StartInEditMode: true, HiddenSectionKeys: ['systemMetadata'] },
|
|
1686
|
+
Provider: this.ProviderToUse,
|
|
1687
|
+
});
|
|
1688
|
+
const saved = await ref.AfterSaved();
|
|
1689
|
+
if (saved) {
|
|
1690
|
+
this.loadCategories();
|
|
1691
|
+
this.cdr.detectChanges();
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
onCategoryCreated(newCategory) {
|
|
1745
1695
|
// Reload categories to include the new one
|
|
1746
|
-
|
|
1696
|
+
this.loadCategories();
|
|
1747
1697
|
// Set the new category as selected
|
|
1748
1698
|
this.record.CategoryID = newCategory.ID;
|
|
1749
1699
|
// Trigger change detection
|
|
@@ -1825,11 +1775,9 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1825
1775
|
this.updateUnsavedChangesFlag();
|
|
1826
1776
|
// Reload related data after successful save as server-side processes may have updated them
|
|
1827
1777
|
if (this.record && this.record.ID) {
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
this.loadQueryEntities()
|
|
1832
|
-
]);
|
|
1778
|
+
this.loadQueryParameters();
|
|
1779
|
+
this.loadQueryFields();
|
|
1780
|
+
this.loadQueryEntities();
|
|
1833
1781
|
this.updateCategoryPathDisplay();
|
|
1834
1782
|
this.cdr.detectChanges();
|
|
1835
1783
|
}
|
|
@@ -1865,24 +1813,24 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
1865
1813
|
* Handle composition token click — navigate to the referenced query
|
|
1866
1814
|
*/
|
|
1867
1815
|
onCompositionTokenClick(event) {
|
|
1868
|
-
const
|
|
1816
|
+
const allQueries = QueryEngine.Instance.Queries;
|
|
1869
1817
|
const segments = event.FullPath.split('/').map(s => s.trim()).filter(s => s.length > 0);
|
|
1870
1818
|
if (segments.length === 0)
|
|
1871
1819
|
return;
|
|
1872
1820
|
const queryName = segments[segments.length - 1];
|
|
1873
1821
|
const categorySegments = segments.slice(0, -1);
|
|
1874
1822
|
// First try: exact match on Name + CategoryPath
|
|
1875
|
-
let targetQuery =
|
|
1823
|
+
let targetQuery = allQueries.find(q => {
|
|
1876
1824
|
if (q.Name !== queryName)
|
|
1877
1825
|
return false;
|
|
1878
1826
|
if (categorySegments.length === 0)
|
|
1879
1827
|
return true;
|
|
1880
|
-
const expectedPath =
|
|
1828
|
+
const expectedPath = categorySegments.join('/');
|
|
1881
1829
|
return q.CategoryPath === expectedPath;
|
|
1882
1830
|
});
|
|
1883
1831
|
// Fallback: match on Name alone
|
|
1884
1832
|
if (!targetQuery) {
|
|
1885
|
-
targetQuery =
|
|
1833
|
+
targetQuery = allQueries.find(q => q.Name === queryName);
|
|
1886
1834
|
}
|
|
1887
1835
|
if (targetQuery) {
|
|
1888
1836
|
const compositeKey = CompositeKey.FromID(targetQuery.ID);
|
|
@@ -2040,11 +1988,11 @@ let MJQueryFormComponentExtended = class MJQueryFormComponentExtended extends MJ
|
|
|
2040
1988
|
} if (rf & 2) {
|
|
2041
1989
|
let _t;
|
|
2042
1990
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sqlEditor = _t.first);
|
|
2043
|
-
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["form", "ngForm"], ["sqlEditor", ""], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent", "ToolbarConfig", "IsSaving", "WidthMode"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "saving-overlay"], [1, "query-header"], [1, "query-header-content"], [1, "query-header-top"], [1, "query-name-section"], [1, "fa-solid", "fa-database", "query-title-icon"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModel"], [1, "query-name-display"], [1, "query-header-actions"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "disabled"], [1, "query-meta-row"], [1, "query-meta-item"], [1, "meta-label"], [1, "meta-dropdown"
|
|
2044
|
-
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Template,
|
|
1991
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["form", "ngForm"], ["sqlEditor", ""], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent", "ToolbarConfig", "IsSaving", "WidthMode"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "saving-overlay"], [1, "query-header"], [1, "query-header-content"], [1, "query-header-top"], [1, "query-name-section"], [1, "fa-solid", "fa-database", "query-title-icon"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModel"], [1, "query-name-display"], [1, "query-header-actions"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "disabled"], [1, "query-meta-row"], [1, "query-meta-item"], [1, "meta-label"], [1, "meta-dropdown-row"], [1, "meta-value"], ["name", "status", "TextField", "text", "ValueField", "value", 1, "meta-dropdown", "status-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "status-pill", 3, "background"], [1, "query-description-row"], [1, "status-warning-banner", 3, "border-left-color"], [1, "query-content"], [1, "query-panel", 3, "ExpandedChange", "Expanded"], ["mjAccordionTitle", ""], [1, "sql-panel-toolbar", 2, "display", "flex", "justify-content", "flex-end", "padding", "4px 0 8px"], ["type", "button", "mjButton", "", "variant", "flat", "title", "Show/hide SQL filters help", 1, "filters-help-btn", 3, "click"], [1, "fa-solid", "fa-question-circle"], [1, "fa-solid", 3, "ngClass"], [1, "sql-panel-content"], [1, "sql-editor", 3, "change", "CompositionTokenClick", "language"], [1, "filters-help"], [1, "query-panel", 3, "Expanded"], [1, "panel-body"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "fa-solid", "fa-puzzle-piece"], [1, "detail-value"], [1, "fa-solid", "fa-bolt"], [1, "fa-solid", "fa-clipboard-list"], [1, "fa-solid", "fa-file-code"], ["name", "usesTemplate", 3, "ngModel"], [1, "fa-solid", "fa-calendar-plus"], [1, "fa-solid", "fa-calendar-check"], [3, "isVisibleChange", "onClose", "query", "parameters", "isVisible"], [1, "fa-solid", "fa-spinner", "fa-spin", "saving-spinner"], ["name", "queryName", "placeholder", "Enter query name...", 1, "mj-input", "query-name-input", 3, "ngModelChange", "ngModel"], ["mjButton", "", "variant", "primary", "title", "Run Query", 1, "run-query-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], [1, "meta-dropdown", 3, "ValueChange", "BranchConfig", "Value", "SelectableTypes", "SelectionMode", "Placeholder", "EnableSearch", "Clearable"], ["mjButton", "", "variant", "icon", "title", "New category", 3, "click"], [1, "fa-solid", "fa-plus"], ["mjButton", "", "variant", "icon", "title", "Edit category"], ["mjButton", "", "variant", "icon", "title", "Edit category", 3, "click"], [1, "fa-solid", "fa-pen"], ["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, "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"], ["type", "button", "title", "Delete parameter", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-table", "panel-icon"], ["text", "Loading fields..."], [1, "fa-solid", "fa-table", "empty-state-icon"], [1, "item-card"], [1, "fa-solid", "fa-columns", "item-name-icon", "field-icon"], [1, "item-badge", "type"], [1, "item-badge", "sequence"], [1, "fa-solid", "fa-code"], [1, "item-card-actions"], ["type", "button", "title", "Delete field", 1, "item-action-btn", "delete", 3, "click"], [1, "dependents-description"], [1, "item-card", "dependent-card"], [1, "fa-solid", "fa-arrow-left", "panel-icon", "dependents-icon"], [1, "item-card", "dependent-card", 3, "click"], [1, "fa-solid", "fa-arrow-left", "item-name-icon", "dependent-query-icon"], [1, "item-card-footer"], [1, "open-link"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-database", "panel-icon"], ["text", "Loading entities..."], [1, "fa-solid", "fa-database", "empty-state-icon"], [1, "fa-solid", "fa-table", "item-name-icon", "entity-icon"], [1, "entity-dropdown-wrapper"], ["TextField", "text", "ValueField", "id", "Placeholder", "Select entity...", 1, "entity-dropdown", 3, "ngModelChange", "ngModel", "name", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-database"], ["type", "button", "title", "Delete entity", 1, "item-action-btn", "delete", 3, "click"], [1, "fa-solid", "fa-info-circle", "panel-icon"], ["name", "reusable", 3, "ngModelChange", "ngModel"], [1, "detail-hint"], [1, "detail-tag", "positive"], [1, "detail-tag", "neutral"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-times"], ["name", "cacheEnabled", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-clock"], ["type", "number", "name", "cacheTTLMinutes", "min", "1", "placeholder", "Default", 1, "mj-input", "detail-input-narrow", 3, "ngModelChange", "ngModel"], ["name", "auditQueryRuns", 3, "ngModelChange", "ngModel"], ["name", "usesTemplate", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-shield-alt", "panel-icon"], ["text", "Loading permissions..."], [1, "fa-solid", "fa-shield-alt", "empty-state-icon"], [3, "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"], [1, "permissions-list"], [1, "permission-card"], [1, "fa-solid", "fa-users", "permission-icon"], [1, "permission-info"], [1, "permission-role"], [1, "permission-type"], [1, "permission-badge"]], template: function MJQueryFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
1992
|
+
i0.ɵɵconditionalCreate(0, MJQueryFormComponentExtended_Conditional_0_Template, 88, 38);
|
|
2045
1993
|
} if (rf & 2) {
|
|
2046
1994
|
i0.ɵɵconditional(ctx.record ? 0 : -1);
|
|
2047
|
-
} }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinValidator, i2.NgModel, i2.NgForm, i3.MJButtonDirective, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i3.MJDropdownComponent, i3.MJSwitchComponent, i4.MjRecordFormContainerComponent, i4.ExplorerEntityDataGridComponent, i5.CodeEditorComponent, i6.LoadingComponent, i7.MarkdownComponent, i8.TreeDropdownComponent, i9.QueryRunDialogComponent, i10.QueryCategoryDialogComponent], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin[_ngcontent-%COMP%] {\n margin: 10px;\n}\n\n\na[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n\n.k-splitter[_ngcontent-%COMP%] {\n border-width: 0px;\n}\n\n.record-form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] > .form-card[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n\n\n@media (min-width: 1400px) {\n .form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.collapsible-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body[_ngcontent-%COMP%] {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed[_ngcontent-%COMP%] {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.form-card.related-entity[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n\n\n.form-card.search-hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n\n\n.section-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .search-highlight[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge.zero-rows[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}", "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.record-form[_ngcontent-%COMP%] {\n min-height: 0 !important;\n}\n\n\n\n\n\n\n.saving-overlay[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.6;\n}\n\n\n\n\n\n\n.query-header[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input[_ngcontent-%COMP%] {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n\n\n.query-meta-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown[_ngcontent-%COMP%] {\n min-width: 200px;\n}\n\n.status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n}\n\n\n\n.query-description-row[_ngcontent-%COMP%] {\n margin-top: 2px;\n}\n\n.query-description-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.query-description-text[_ngcontent-%COMP%] {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n\n\n\n\n\n.status-warning-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n\n\n\n.query-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n\n\n\n.query-panel[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n\n\n\n\n\n.panel-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 16px 0;\n}\n\n.panel-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n\n\n\n\n\n.sql-panel-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor[_ngcontent-%COMP%] {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n\n\n.filters-help[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n\n\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.item-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n}\n\n.item-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n\n\n.item-actions[_ngcontent-%COMP%] {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.item-card-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n\n\n.entity-dropdown-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow[_ngcontent-%COMP%] {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.permissions-list[_ngcontent-%COMP%] {\n padding: 0 20px;\n}\n\n.permission-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon[_ngcontent-%COMP%] {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.permission-role[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n\n\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n\n\n\n\n\n.add-item-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n\n\n\n\n\n.badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n\n\n\n.technical-description-textarea[_ngcontent-%COMP%] {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n\n\n.dependents-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.dependents-description[_ngcontent-%COMP%] {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card[_ngcontent-%COMP%] {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer[_ngcontent-%COMP%] {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover .open-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary-hover);\n}"] }); }
|
|
1995
|
+
} }, dependencies: [i1.NgClass, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinValidator, i2.NgModel, i2.NgForm, i3.MJButtonDirective, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i3.MJDropdownComponent, i3.MJSwitchComponent, i4.MjRecordFormContainerComponent, i4.ExplorerEntityDataGridComponent, i5.CodeEditorComponent, i6.LoadingComponent, i7.MarkdownComponent, i8.TreeDropdownComponent, i9.QueryRunDialogComponent], styles: [".k-pane[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin[_ngcontent-%COMP%] {\n margin: 10px;\n}\n\n\na[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group[_ngcontent-%COMP%] {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-right: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin-bottom: 10px;\n}\n\n.k-splitter[_ngcontent-%COMP%] {\n border-width: 0px;\n}\n\n.record-form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form[_ngcontent-%COMP%] .record-form-row[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] > .form-card[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n\n\n@media (min-width: 1400px) {\n .form-panels-container[_ngcontent-%COMP%] .related-entity-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.collapsible-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header[_ngcontent-%COMP%] .collapse-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body[_ngcontent-%COMP%] {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed[_ngcontent-%COMP%] {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body[_ngcontent-%COMP%] {\n padding: 24px;\n}\n\n\n\n.form-card.related-entity[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity[_ngcontent-%COMP%] .collapsible-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n\n.form-section-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .control-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n}\n\n.form-section-controls[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%] {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-search[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls[_ngcontent-%COMP%] .section-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n\n\n.form-card.search-hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n\n\n.section-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .search-highlight[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n\n\n.collapsible-title[_ngcontent-%COMP%] .row-count-badge.zero-rows[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}", "\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.record-form[_ngcontent-%COMP%] {\n min-height: 0 !important;\n}\n\n\n\n\n\n\n.saving-overlay[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.6;\n}\n\n\n\n\n\n\n.query-header[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input[_ngcontent-%COMP%] {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n\n\n.query-meta-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown[_ngcontent-%COMP%] {\n min-width: 200px;\n}\n\n.status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n}\n\n\n\n.query-description-row[_ngcontent-%COMP%] {\n margin-top: 2px;\n}\n\n.query-description-input[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.query-description-text[_ngcontent-%COMP%] {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n\n\n\n\n\n.status-warning-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n\n\n\n.query-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n\n\n\n.query-panel[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n\n\n\n\n\n.panel-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n padding: 16px 0;\n}\n\n.panel-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n\n\n\n\n\n.sql-panel-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor[_ngcontent-%COMP%] {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n\n\n.filters-help[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax[_ngcontent-%COMP%] {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n\n\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.item-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n}\n\n.item-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n\n\n.item-actions[_ngcontent-%COMP%] {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.item-card-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n\n\n.entity-dropdown-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow[_ngcontent-%COMP%] {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.permissions-list[_ngcontent-%COMP%] {\n padding: 0 20px;\n}\n\n.permission-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon[_ngcontent-%COMP%] {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.permission-role[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n\n\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n\n\n\n\n\n.add-item-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n\n\n\n\n\n.badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n\n\n\n\n\n.technical-description-textarea[_ngcontent-%COMP%] {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n\n\n.dependents-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.dependents-description[_ngcontent-%COMP%] {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card[_ngcontent-%COMP%] {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer[_ngcontent-%COMP%] {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card[_ngcontent-%COMP%]:hover .open-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.meta-dropdown-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.meta-dropdown-row[_ngcontent-%COMP%] .meta-dropdown[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}"] }); }
|
|
2048
1996
|
};
|
|
2049
1997
|
MJQueryFormComponentExtended = __decorate([
|
|
2050
1998
|
RegisterClass(BaseFormComponent, 'MJ: Queries')
|
|
@@ -2052,7 +2000,7 @@ MJQueryFormComponentExtended = __decorate([
|
|
|
2052
2000
|
export { MJQueryFormComponentExtended };
|
|
2053
2001
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJQueryFormComponentExtended, [{
|
|
2054
2002
|
type: Component,
|
|
2055
|
-
args: [{ standalone: false, selector: 'mj-query-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"ToolbarConfig\"\n [IsSaving]=\"IsSaving\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n\n <!-- Saving Overlay -->\n @if (IsSaving) {\n <div class=\"saving-overlay\">\n <i class=\"fa-solid fa-spinner fa-spin saving-spinner\"></i>\n <span>Saving...</span>\n </div>\n }\n\n <!-- Header Section -->\n <div class=\"query-header\" [class.content-saving]=\"IsSaving\">\n <div class=\"query-header-content\">\n <!-- Top Row: Name and Run Button -->\n <div class=\"query-header-top\">\n <!-- Left: Query Name -->\n <div class=\"query-name-section\">\n <i class=\"fa-solid fa-database query-title-icon\"></i>\n @if (EditMode) {\n <input class=\"mj-input query-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\" />\n } @else {\n <h4 class=\"query-name-display\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"query-header-actions\">\n @if (record.ID) {\n <button mjButton\n variant=\"primary\"\n [disabled]=\"EditMode || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\"\n class=\"run-query-btn\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n }\n </div>\n </div>\n\n <!-- Second Row: Category and Status -->\n <div class=\"query-meta-row\">\n <!-- Category -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Category</label>\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"CategoryIDAsKey\"\n [SelectableTypes]=\"'branch'\"\n [SelectionMode]=\"'single'\"\n [Placeholder]=\"'Select category...'\"\n [EnableSearch]=\"true\"\n [Clearable]=\"true\"\n (ValueChange)=\"OnCategoryTreeChange($event)\"\n class=\"meta-dropdown\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"meta-value\">{{ categoryPathDisplay || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Status</label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"meta-dropdown status-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"status-pill\"\n [style.background]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"></i>\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div class=\"query-description-row\">\n @if (EditMode) {\n <textarea class=\"mj-input query-description-input\"\n [(ngModel)]=\"record.Description\"\n name=\"description\"\n rows=\"2\"\n placeholder=\"Enter query description...\">\n </textarea>\n } @else {\n <p class=\"query-description-text\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Status Warning Banner for Non-Approved Queries -->\n @if (record.Status && record.Status !== 'Approved' && !EditMode) {\n <div class=\"status-warning-banner\" [style.border-left-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"\n [style.color]=\"getStatusBadgeColor()\"></i>\n <span>\n This query has status <strong>{{ record.Status }}</strong>. {{ getStatusBannerMessage() }}\n </span>\n </div>\n }\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" [class.content-saving]=\"IsSaving\">\n\n <!-- SQL Query Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"sqlPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title-row\">\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-code panel-icon sql-icon\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"panel-badge defined\">— 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 <!-- Reusable -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-puzzle-piece\"></i> Reusable\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.Reusable\" name=\"reusable\"></mj-switch>\n <div class=\"detail-hint\">Allow other queries to reference this query using composition syntax</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.Reusable) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Reusable</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Not Reusable</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache Enabled -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-bolt\"></i> Cache Enabled\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.CacheEnabled\" name=\"cacheEnabled\"></mj-switch>\n <div class=\"detail-hint\">Cache query results in memory to reduce database load on repeated runs</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.CacheEnabled) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Caching On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Caching Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache TTL -->\n @if (record.CacheEnabled) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clock\"></i> Cache TTL (Minutes)\n </label>\n @if (EditMode) {\n <input class=\"mj-input detail-input-narrow\"\n type=\"number\"\n [(ngModel)]=\"record.CacheTTLMinutes\"\n name=\"cacheTTLMinutes\"\n min=\"1\"\n placeholder=\"Default\" />\n <div class=\"detail-hint\">How long cached results remain valid. Leave blank for default TTL.</div>\n } @else {\n <div class=\"detail-value\">{{ record.CacheTTLMinutes != null ? record.CacheTTLMinutes + ' min' : 'Default' }}</div>\n }\n </div>\n }\n\n <!-- Audit Query Runs -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clipboard-list\"></i> Audit Runs\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.AuditQueryRuns\" name=\"auditQueryRuns\"></mj-switch>\n <div class=\"detail-hint\">Log all executions of this query to the Audit Log for tracking and compliance</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.AuditQueryRuns) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Auditing On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Auditing Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></mj-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"permissionsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-alt panel-icon\"></i>\n Permissions\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingPermissions) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading permissions...\"></mj-loading>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Permissions Set</div>\n <div class=\"empty-state-text\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Query Permissions','QueryID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Query Permissions')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"permissions-list\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\">\n <i class=\"fa-solid fa-users permission-icon\"></i>\n <div class=\"permission-info\">\n <div class=\"permission-role\">{{ permission.Role }}</div>\n <div class=\"permission-type\">Role Permission</div>\n </div>\n <span class=\"permission-badge\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n </div>\n </form>\n</mj-record-form-container>\n\n<!-- Query Run Dialog -->\n<mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n</mj-query-run-dialog>\n\n<!-- Category Creation Dialog -->\n<mj-query-category-dialog\n [(isVisible)]=\"showCategoryDialog\"\n (onCategoryCreated)=\"onCategoryCreated($event)\">\n</mj-query-category-dialog>\n}\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin {\n margin: 10px;\n}\n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: var(--mj-text-muted);\n}\n", "/* Override shared form-styles to enable flex layout */\n:host {\n display: block;\n height: 100%;\n}\n\n/* Override the shared record-form min-height so flex layout works properly */\n.record-form {\n min-height: 0 !important;\n}\n\n/* ========================================\n Saving Overlay\n ======================================== */\n\n.saving-overlay {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving {\n pointer-events: none;\n opacity: 0.6;\n}\n\n/* ========================================\n Header Section \u2014 matches Query Browser gradient\n ======================================== */\n\n.query-header {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn {\n white-space: nowrap;\n}\n\n/* Meta row (category + status) */\n.query-meta-row {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown {\n min-width: 200px;\n}\n\n.status-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill i {\n font-size: var(--mj-text-xs);\n}\n\n/* Description row */\n.query-description-row {\n margin-top: 2px;\n}\n\n.query-description-input {\n width: 100%;\n}\n\n.query-description-text {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n/* ========================================\n Status Warning Banner\n ======================================== */\n\n.status-warning-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner i {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner strong {\n font-weight: 600;\n}\n\n/* ========================================\n Main Content Area\n ======================================== */\n\n.query-content {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n/* ========================================\n Accordion Panel Overrides \u2014 Modern Style\n ======================================== */\n\n.query-panel {\n margin-bottom: 12px;\n}\n\n::ng-deep .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n::ng-deep .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n::ng-deep .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n::ng-deep .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n::ng-deep .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n/* ========================================\n Panel Title & Badges\n ======================================== */\n\n.panel-title-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon {\n color: var(--mj-brand-primary);\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n/* ========================================\n Panel Body & Loading\n ======================================== */\n\n.panel-body {\n padding: 16px 0;\n}\n\n.panel-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n/* ========================================\n SQL Panel\n ======================================== */\n\n.sql-panel-content {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n/* Filters Help */\n.filters-help {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n/* ========================================\n Card Grid (Parameters, Fields, Entities)\n ======================================== */\n\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon {\n color: var(--mj-status-success);\n}\n\n.item-badges {\n display: flex;\n gap: 6px;\n}\n\n.item-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description {\n margin-bottom: 8px;\n}\n\n.item-meta {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n/* Card actions (edit/delete) */\n.item-actions {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card:hover .item-actions {\n opacity: 1;\n}\n\n.item-card-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n/* Entity dropdown in card */\n.entity-dropdown-wrapper {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown {\n width: 100%;\n}\n\n/* ========================================\n Details Grid\n ======================================== */\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Permissions\n ======================================== */\n\n.permissions-list {\n padding: 0 20px;\n}\n\n.permission-card {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info {\n flex: 1;\n}\n\n.permission-role {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n/* ========================================\n Buttons\n ======================================== */\n\n.add-item-btn {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n/* ========================================\n Badge (reused across components)\n ======================================== */\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* ========================================\n Technical Description Panel\n ======================================== */\n\n.technical-description-textarea {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n/* Dependent Queries */\n.dependents-icon {\n color: var(--mj-status-warning);\n}\n\n.dependents-description {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description code {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card:hover .open-link {\n color: var(--mj-brand-primary-hover);\n}\n"] }]
|
|
2003
|
+
args: [{ standalone: false, selector: 'mj-query-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"ToolbarConfig\"\n [IsSaving]=\"IsSaving\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n\n <!-- Saving Overlay -->\n @if (IsSaving) {\n <div class=\"saving-overlay\">\n <i class=\"fa-solid fa-spinner fa-spin saving-spinner\"></i>\n <span>Saving...</span>\n </div>\n }\n\n <!-- Header Section -->\n <div class=\"query-header\" [class.content-saving]=\"IsSaving\">\n <div class=\"query-header-content\">\n <!-- Top Row: Name and Run Button -->\n <div class=\"query-header-top\">\n <!-- Left: Query Name -->\n <div class=\"query-name-section\">\n <i class=\"fa-solid fa-database query-title-icon\"></i>\n @if (EditMode) {\n <input class=\"mj-input query-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\" />\n } @else {\n <h4 class=\"query-name-display\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"query-header-actions\">\n @if (record.ID) {\n <button mjButton\n variant=\"primary\"\n [disabled]=\"EditMode || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\"\n class=\"run-query-btn\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n }\n </div>\n </div>\n\n <!-- Second Row: Category and Status -->\n <div class=\"query-meta-row\">\n <!-- Category -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Category</label>\n @if (EditMode) {\n <div class=\"meta-dropdown-row\">\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"CategoryIDAsKey\"\n [SelectableTypes]=\"'branch'\"\n [SelectionMode]=\"'single'\"\n [Placeholder]=\"'Select category...'\"\n [EnableSearch]=\"true\"\n [Clearable]=\"true\"\n (ValueChange)=\"OnCategoryTreeChange($event)\"\n class=\"meta-dropdown\">\n </mj-tree-dropdown>\n <button mjButton variant=\"icon\" title=\"New category\" (click)=\"createCategory()\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n @if (record.CategoryID) {\n <button mjButton variant=\"icon\" title=\"Edit category\" (click)=\"editSelectedCategory()\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n }\n </div>\n } @else {\n <span class=\"meta-value\">{{ categoryPathDisplay || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div class=\"query-meta-item\">\n <label class=\"meta-label\">Status</label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"meta-dropdown status-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"status-pill\"\n [style.background]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"></i>\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div class=\"query-description-row\">\n @if (EditMode) {\n <textarea class=\"mj-input query-description-input\"\n [(ngModel)]=\"record.Description\"\n name=\"description\"\n rows=\"2\"\n placeholder=\"Enter query description...\">\n </textarea>\n } @else {\n <p class=\"query-description-text\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Status Warning Banner for Non-Approved Queries -->\n @if (record.Status && record.Status !== 'Approved' && !EditMode) {\n <div class=\"status-warning-banner\" [style.border-left-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid\" [class]=\"getStatusBannerIcon()\"\n [style.color]=\"getStatusBadgeColor()\"></i>\n <span>\n This query has status <strong>{{ record.Status }}</strong>. {{ getStatusBannerMessage() }}\n </span>\n </div>\n }\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" [class.content-saving]=\"IsSaving\">\n\n <!-- SQL Query Panel -->\n <mj-accordion-panel\n [(Expanded)]=\"sqlPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title-row\">\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-code panel-icon sql-icon\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"panel-badge defined\">— 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 <!-- Reusable -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-puzzle-piece\"></i> Reusable\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.Reusable\" name=\"reusable\"></mj-switch>\n <div class=\"detail-hint\">Allow other queries to reference this query using composition syntax</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.Reusable) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Reusable</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Not Reusable</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache Enabled -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-bolt\"></i> Cache Enabled\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.CacheEnabled\" name=\"cacheEnabled\"></mj-switch>\n <div class=\"detail-hint\">Cache query results in memory to reduce database load on repeated runs</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.CacheEnabled) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Caching On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Caching Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Cache TTL -->\n @if (record.CacheEnabled) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clock\"></i> Cache TTL (Minutes)\n </label>\n @if (EditMode) {\n <input class=\"mj-input detail-input-narrow\"\n type=\"number\"\n [(ngModel)]=\"record.CacheTTLMinutes\"\n name=\"cacheTTLMinutes\"\n min=\"1\"\n placeholder=\"Default\" />\n <div class=\"detail-hint\">How long cached results remain valid. Leave blank for default TTL.</div>\n } @else {\n <div class=\"detail-value\">{{ record.CacheTTLMinutes != null ? record.CacheTTLMinutes + ' min' : 'Default' }}</div>\n }\n </div>\n }\n\n <!-- Audit Query Runs -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-clipboard-list\"></i> Audit Runs\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.AuditQueryRuns\" name=\"auditQueryRuns\"></mj-switch>\n <div class=\"detail-hint\">Log all executions of this query to the Audit Log for tracking and compliance</div>\n } @else {\n <div class=\"detail-value\">\n @if (record.AuditQueryRuns) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Auditing On</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> Auditing Off</span>\n }\n </div>\n }\n </div>\n\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <mj-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></mj-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span class=\"detail-tag positive\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span class=\"detail-tag neutral\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <mj-accordion-panel\n [(Expanded)]=\"permissionsPanelExpanded\"\n class=\"query-panel\">\n <ng-template mjAccordionTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-alt panel-icon\"></i>\n Permissions\n </span>\n </ng-template>\n\n <div class=\"panel-body\">\n @if (isLoadingPermissions) {\n <div class=\"panel-loading\">\n <mj-loading text=\"Loading permissions...\"></mj-loading>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt empty-state-icon\"></i>\n <div class=\"empty-state-title\">No Permissions Set</div>\n <div class=\"empty-state-text\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Query Permissions','QueryID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Query Permissions')\"\n [AllowLoad]=\"true\"\n [ShowToolbar]=\"false\">\n </mj-explorer-entity-data-grid>\n } @else {\n <div class=\"permissions-list\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\">\n <i class=\"fa-solid fa-users permission-icon\"></i>\n <div class=\"permission-info\">\n <div class=\"permission-role\">{{ permission.Role }}</div>\n <div class=\"permission-type\">Role Permission</div>\n </div>\n <span class=\"permission-badge\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n </div>\n </form>\n</mj-record-form-container>\n\n<!-- Query Run Dialog -->\n<mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n</mj-query-run-dialog>\n}\n", styles: [".k-pane {\n background-color: var(--mj-bg-surface);\n}\n\n.content-margin {\n margin: 10px;\n}\n\n\na {\n font-size: 14px;\n font-weight: bolder;\n}\n\n.tab-header-icon {\n margin-right: 5px;\n}\n\n.record-form {\n display: block;\n flex-direction: column;\n background-color: var(--mj-bg-surface);\n padding: 0;\n min-height: 100vh;\n}\n\n.record-form-group {\n margin-top: 0px;\n background-color: var(--mj-bg-surface);\n}\n\nbutton {\n margin-right: 5px;\n}\n\n.record-form h2 {\n margin-bottom: 10px;\n}\n\n.k-splitter {\n border-width: 0px;\n}\n\n.record-form-row {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: start;\n gap: 10px;\n margin-bottom: 12px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n\n.record-form .record-form-row > :first-child {\n font-weight: bold;\n padding-right: 10px;\n}\n\n.record-form .record-form-row > span {\n white-space: pre-line;\n max-height: 300px;\n overflow: auto;\n}\n\n@media (min-width: 768px) {\n .record-form-row {\n flex-direction: row;\n align-items: center;\n }\n\n .record-form-row label {\n width: 240px;\n margin-bottom: 0;\n }\n}\n\n/* Collapsible Panel Styles */\n.form-panels-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n background-color: var(--mj-bg-surface);\n}\n\n/* All field sections take full width */\n.form-panels-container > .form-card {\n width: 100%;\n}\n\n/* Related entity grid container - responsive layout */\n.form-panels-container .related-entity-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n width: 100%;\n}\n\n/* Responsive multi-column layout for related entities on wider screens */\n@media (min-width: 1400px) {\n .form-panels-container .related-entity-grid {\n grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));\n }\n}\n\n.form-card {\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n box-shadow: 0 2px 4px var(--mj-shadow-sm);\n overflow: hidden;\n}\n\n.collapsible-card {\n overflow: hidden;\n}\n\n.collapsible-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.collapsible-header:hover {\n background: var(--mj-bg-surface-sunken);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.collapsible-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n}\n\n.collapsible-title i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.collapsible-title h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.collapsible-header .collapse-icon {\n color: var(--mj-text-muted);\n transition: transform 0.3s ease;\n}\n\n.collapsible-body {\n max-height: 2000px;\n overflow: hidden;\n transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;\n opacity: 1;\n}\n\n.collapsible-body.collapsed {\n max-height: 0;\n padding: 0;\n opacity: 0;\n}\n\n.form-body {\n padding: 24px;\n}\n\n/* Related Entity Sections - Visual Distinction */\n.form-card.related-entity {\n background: var(--mj-bg-surface-card);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-header {\n background: var(--mj-bg-surface-sunken);\n}\n\n.form-card.related-entity .collapsible-header:hover {\n background: var(--mj-bg-surface-card);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.form-card.related-entity .collapsible-title i {\n color: var(--mj-brand-primary);\n}\n\n/* Section Controls */\n.form-section-controls {\n display: flex;\n gap: 10px;\n padding: 14px 18px;\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n align-items: center;\n flex-wrap: wrap;\n box-shadow: 0 1px 3px var(--mj-shadow-sm);\n}\n\n.form-section-controls .control-group {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.form-section-controls button {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n margin-right: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n}\n\n.form-section-controls button:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px var(--mj-shadow-md);\n}\n\n.form-section-controls button:active {\n transform: translateY(0);\n}\n\n.form-section-controls button i {\n margin-right: 0;\n font-size: 14px;\n}\n\n.form-section-controls .section-search {\n padding: 8px 14px;\n font-size: 13px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 6px;\n width: 240px;\n transition: all 0.2s;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.form-section-controls .section-search:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.form-section-controls .section-search::placeholder {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.form-section-controls .section-count {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-left: auto;\n font-weight: 500;\n}\n\n/* Hidden sections for search filter */\n.form-card.search-hidden {\n display: none;\n}\n\n/* Section count badge */\n.section-count-badge {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Search highlighting in section names */\n.collapsible-title h3 .search-highlight {\n background-color: var(--mj-status-warning);\n color: var(--mj-text-primary);\n padding: 2px 4px;\n border-radius: 3px;\n font-weight: 700;\n}\n\n/* Row count badge in section headers */\n.collapsible-title .row-count-badge {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n padding: 3px 6px 2px 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n margin-left: 8px;\n vertical-align: middle;\n position: relative;\n top: -2px;\n display: inline-block;\n line-height: 1;\n}\n\n/* Gray badge for zero rows (loaded but empty) */\n.collapsible-title .row-count-badge.zero-rows {\n background: var(--mj-text-muted);\n}\n", "/* Override shared form-styles to enable flex layout */\n:host {\n display: block;\n height: 100%;\n}\n\n/* Override the shared record-form min-height so flex layout works properly */\n.record-form {\n min-height: 0 !important;\n}\n\n/* ========================================\n Saving Overlay\n ======================================== */\n\n.saving-overlay {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 16px;\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n font-size: 13px;\n font-weight: 500;\n flex-shrink: 0;\n}\n\n.saving-spinner {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.content-saving {\n pointer-events: none;\n opacity: 0.6;\n}\n\n/* ========================================\n Header Section \u2014 matches Query Browser gradient\n ======================================== */\n\n.query-header {\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n border-bottom: none;\n padding: 0;\n}\n\n.query-header-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px 20px;\n}\n\n.query-header-top {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n}\n\n.query-name-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.query-title-icon {\n color: rgba(255, 255, 255, 0.85);\n font-size: 1.3em;\n flex-shrink: 0;\n}\n\n.query-name-input {\n font-size: 1.2em;\n font-weight: 600;\n min-width: 300px;\n flex: 1;\n}\n\n.query-name-display {\n margin: 0;\n color: var(--mj-text-inverse, white);\n font-weight: 600;\n font-size: 1.2em;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.query-header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.run-query-btn {\n white-space: nowrap;\n}\n\n/* Meta row (category + status) */\n.query-meta-row {\n display: flex;\n gap: 24px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.query-meta-item {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.meta-label {\n font-weight: 500;\n color: rgba(255, 255, 255, 0.75);\n font-size: var(--mj-text-sm);\n min-width: 60px;\n}\n\n.meta-value {\n color: rgba(255, 255, 255, 0.95);\n font-size: var(--mj-text-sm);\n}\n\n.meta-dropdown {\n min-width: 200px;\n}\n\n.status-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: var(--mj-radius-xl);\n color: var(--mj-text-inverse, white);\n font-size: var(--mj-text-sm);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-pill i {\n font-size: var(--mj-text-xs);\n}\n\n/* Description row */\n.query-description-row {\n margin-top: 2px;\n}\n\n.query-description-input {\n width: 100%;\n}\n\n.query-description-text {\n margin: 0;\n color: rgba(255, 255, 255, 0.8);\n font-size: var(--mj-text-sm);\n line-height: 1.4;\n}\n\n/* ========================================\n Status Warning Banner\n ======================================== */\n\n.status-warning-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n margin: 0;\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left: 4px solid var(--mj-status-warning);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.status-warning-banner i {\n font-size: var(--mj-text-base);\n flex-shrink: 0;\n}\n\n.status-warning-banner strong {\n font-weight: 600;\n}\n\n/* ========================================\n Main Content Area\n ======================================== */\n\n.query-content {\n flex: 1;\n min-height: 0;\n padding: 16px;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n}\n\n/* ========================================\n Accordion Panel Overrides \u2014 Modern Style\n ======================================== */\n\n.query-panel {\n margin-bottom: 12px;\n}\n\n::ng-deep .query-content mj-accordion-panel .mj-accordion-panel {\n border: none !important;\n border-radius: var(--mj-radius-md) !important;\n margin-bottom: 12px !important;\n box-shadow: var(--mj-shadow-sm) !important;\n background: var(--mj-bg-surface) !important;\n overflow: hidden !important;\n}\n\n::ng-deep .query-content .mj-accordion-header {\n background: var(--mj-bg-surface) !important;\n border: none !important;\n padding: 14px 18px !important;\n border-radius: var(--mj-radius-md) !important;\n color: var(--mj-text-primary) !important;\n font-weight: 600 !important;\n font-size: var(--mj-text-sm) !important;\n transition: background 0.15s ease !important;\n}\n\n::ng-deep .query-content .mj-accordion-header:hover {\n background: var(--mj-bg-surface-card) !important;\n}\n\n::ng-deep .query-content .mj-accordion-panel--expanded .mj-accordion-header {\n background: var(--mj-brand-primary) !important;\n color: white !important;\n border-radius: var(--mj-radius-md) var(--mj-radius-md) 0 0 !important;\n}\n\n::ng-deep .query-content .mj-accordion-body {\n padding: 0 !important;\n border: none !important;\n background: var(--mj-bg-surface) !important;\n border-radius: 0 0 var(--mj-radius-md) var(--mj-radius-md) !important;\n}\n\n/* ========================================\n Panel Title & Badges\n ======================================== */\n\n.panel-title-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n.panel-icon {\n font-size: var(--mj-text-sm);\n opacity: 0.7;\n}\n\n.sql-icon {\n color: var(--mj-brand-primary);\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-icon {\n color: rgba(255, 255, 255, 0.85) !important;\n opacity: 1;\n}\n\n.panel-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n}\n\n.panel-badge.defined {\n background: var(--mj-status-success);\n color: white;\n}\n\n.panel-badge.count {\n background: var(--mj-brand-primary);\n color: white;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.count {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n::ng-deep .mj-accordion-panel--expanded .panel-badge.defined {\n background: rgba(255, 255, 255, 0.25) !important;\n}\n\n.filters-help-btn {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-right: 8px;\n font-size: var(--mj-text-xs);\n}\n\n/* ========================================\n Panel Body & Loading\n ======================================== */\n\n.panel-body {\n padding: 16px 0;\n}\n\n.panel-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px;\n}\n\n.panel-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 0 20px 12px;\n}\n\n/* ========================================\n SQL Panel\n ======================================== */\n\n.sql-panel-content {\n display: flex;\n flex-direction: column;\n}\n\n.sql-editor {\n flex: 1;\n height: 400px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-sm);\n margin: 16px;\n}\n\n/* Filters Help */\n.filters-help {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n margin: 0 16px 16px;\n}\n\n.filters-help-title {\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: var(--mj-text-sm);\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 10px;\n}\n\n.filter-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n}\n\n.filter-card:hover {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n}\n\n.filter-name {\n font-family: 'Courier New', monospace;\n font-weight: bold;\n color: var(--mj-brand-primary);\n margin-bottom: 4px;\n}\n\n.filter-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n margin-bottom: 6px;\n}\n\n.filter-syntax {\n font-family: 'Courier New', monospace;\n font-size: var(--mj-text-xs);\n background: var(--mj-bg-surface-card);\n padding: 6px;\n border-radius: var(--mj-radius-sm);\n margin-bottom: 4px;\n}\n\n.filter-notes {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n/* ========================================\n Card Grid (Parameters, Fields, Entities)\n ======================================== */\n\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\n gap: 12px;\n padding: 0 20px 20px;\n}\n\n.item-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px;\n transition: all 0.15s ease;\n cursor: pointer;\n position: relative;\n}\n\n.item-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n.item-card.required {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.item-card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 10px;\n}\n\n.item-name {\n font-weight: 600;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.item-name-icon {\n font-size: var(--mj-text-sm);\n}\n\n.item-name-icon.param-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.field-icon {\n color: var(--mj-brand-primary);\n}\n\n.item-name-icon.entity-icon {\n color: var(--mj-status-success);\n}\n\n.item-badges {\n display: flex;\n gap: 6px;\n}\n\n.item-badge {\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: white;\n}\n\n.item-badge.required {\n background: var(--mj-status-warning);\n}\n\n.item-badge.type {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.item-badge.sequence {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: color-mix(in srgb, var(--mj-brand-primary) 80%, purple);\n}\n\n.item-card-body {\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n}\n\n.item-description {\n margin-bottom: 8px;\n}\n\n.item-meta {\n display: flex;\n gap: 16px;\n font-size: var(--mj-text-xs);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-code {\n background: var(--mj-bg-surface-card);\n padding: 1px 4px;\n border-radius: var(--mj-radius-sm);\n font-size: var(--mj-text-xs);\n}\n\n/* Card actions (edit/delete) */\n.item-actions {\n position: absolute;\n top: 10px;\n right: 10px;\n display: flex;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.item-card:hover .item-actions {\n opacity: 1;\n}\n\n.item-card-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.item-action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n border-radius: var(--mj-radius-sm);\n cursor: pointer;\n color: var(--mj-text-disabled);\n transition: all 0.15s ease;\n}\n\n.item-action-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.item-action-btn.delete:hover {\n background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n/* Entity dropdown in card */\n.entity-dropdown-wrapper {\n flex: 1;\n margin-left: 12px;\n}\n\n.entity-dropdown {\n width: 100%;\n}\n\n/* ========================================\n Details Grid\n ======================================== */\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n padding: 16px 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.detail-label {\n font-size: var(--mj-text-xs);\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 6px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n\n.detail-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--mj-text-sm);\n}\n\n.detail-tag.positive {\n color: var(--mj-status-success);\n}\n\n.detail-tag.neutral {\n color: var(--mj-text-disabled);\n}\n\n.detail-hint {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.detail-input-narrow {\n max-width: 120px;\n padding: 4px 8px;\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Permissions\n ======================================== */\n\n.permissions-list {\n padding: 0 20px;\n}\n\n.permission-card {\n display: flex;\n align-items: center;\n gap: 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 14px 16px;\n margin-bottom: 8px;\n}\n\n.permission-icon {\n font-size: 1.3em;\n color: var(--mj-brand-primary);\n}\n\n.permission-info {\n flex: 1;\n}\n\n.permission-role {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: var(--mj-text-sm);\n}\n\n.permission-type {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-disabled);\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--mj-brand-primary);\n color: white;\n padding: 4px 10px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xs);\n font-weight: 500;\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.empty-state-icon {\n font-size: 40px;\n margin-bottom: 14px;\n opacity: 0.25;\n color: var(--mj-text-primary);\n}\n\n.empty-state-title {\n font-size: var(--mj-text-base);\n font-weight: 600;\n margin-bottom: 6px;\n color: var(--mj-text-secondary);\n}\n\n.empty-state-text {\n font-size: var(--mj-text-sm);\n margin-bottom: 16px;\n color: var(--mj-text-disabled);\n}\n\n/* ========================================\n Buttons\n ======================================== */\n\n.add-item-btn {\n background: var(--mj-brand-primary);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.15s ease;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-weight: 500;\n font-size: var(--mj-text-sm);\n}\n\n.add-item-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 85%, black);\n box-shadow: 0 2px 6px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n/* ========================================\n Badge (reused across components)\n ======================================== */\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n/* ========================================\n Technical Description Panel\n ======================================== */\n\n.technical-description-textarea {\n width: 100%;\n font-family: 'Consolas', 'Monaco', 'Courier New', monospace;\n font-size: 13px;\n}\n\n.technical-description-preview {\n margin-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n padding-top: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.technical-description-view {\n max-height: 500px;\n overflow-y: auto;\n padding: 12px 16px;\n}\n\n/* Dependent Queries */\n.dependents-icon {\n color: var(--mj-status-warning);\n}\n\n.dependents-description {\n padding: 0 20px 12px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.dependents-description code {\n background: var(--mj-bg-surface-sunken);\n padding: 1px 5px;\n border-radius: 3px;\n font-size: 12px;\n}\n\n.dependent-card {\n cursor: pointer;\n border-left: 3px solid var(--mj-status-warning) !important;\n}\n\n.dependent-card:hover {\n border-left-color: var(--mj-status-warning-text) !important;\n background: color-mix(in srgb, var(--mj-status-warning) 8%, var(--mj-bg-surface)) !important;\n}\n\n.dependent-query-icon {\n color: var(--mj-status-warning) !important;\n}\n\n.item-card-footer {\n padding-top: 8px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n margin-top: 8px;\n}\n\n.open-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.dependent-card:hover .open-link {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Category selector row: tree-dropdown + create/edit icon buttons */\n.meta-dropdown-row {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.meta-dropdown-row .meta-dropdown {\n flex: 1;\n min-width: 0;\n}\n"] }]
|
|
2056
2004
|
}], null, { sqlEditor: [{
|
|
2057
2005
|
type: ViewChild,
|
|
2058
2006
|
args: ['sqlEditor']
|