@memberjunction/ng-core-entity-forms 5.4.1 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +6 -5
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +3 -2
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +22 -22
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +9 -8
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +4 -3
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +6 -5
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +10 -10
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +4 -3
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +2 -0
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +15 -11
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +7 -7
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +4 -4
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +4 -0
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +13 -5
- 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.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +3 -2
- 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.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +4 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +5 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +1 -0
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +7 -3
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJAIAction/mjaiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +90 -90
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJAIAgentNoteType/mjaiagentnotetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +11 -11
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js +13 -13
- package/dist/lib/generated/Entities/MJAIAgentStep/mjaiagentstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJAIAgentType/mjaiagenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJAIArchitecture/mjaiarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js +13 -13
- package/dist/lib/generated/Entities/MJAIConfiguration/mjaiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js +23 -23
- package/dist/lib/generated/Entities/MJAIModality/mjaimodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js +58 -58
- package/dist/lib/generated/Entities/MJAIModel/mjaimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIModelPriceType/mjaimodelpricetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIModelPriceUnitType/mjaimodelpriceunittype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJAIModelType/mjaimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIModelVendor/mjaimodelvendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +55 -55
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJAIPromptCategory/mjaipromptcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIPromptModel/mjaipromptmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJAIPromptRunMedia/mjaipromptrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJAIPromptType/mjaiprompttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +13 -13
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJAIVendorTypeDefinition/mjaivendortypedefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJAPIApplication/mjapiapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJAPIKey/mjapikey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJAPIScope/mjapiscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +44 -44
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js +11 -11
- package/dist/lib/generated/Entities/MJActionCategory/mjactioncategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJActionContextType/mjactioncontexttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJActionFilter/mjactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJActionParam/mjactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +19 -19
- package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js +8 -26
- package/dist/lib/generated/Entities/MJArtifact/mjartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJArtifactType/mjartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJArtifactVersion/mjartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJAuditLogType/mjauditlogtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js +19 -19
- package/dist/lib/generated/Entities/MJAuthorization/mjauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJCollection/mjcollection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJCommunicationBaseMessageType/mjcommunicationbasemessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJCommunicationProvider/mjcommunicationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJCommunicationProviderMessageType/mjcommunicationprovidermessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJCommunicationRun/mjcommunicationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +23 -41
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js +18 -18
- package/dist/lib/generated/Entities/MJCompanyIntegration/mjcompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJCompanyIntegrationRun/mjcompanyintegrationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJCompanyIntegrationRunDetail/mjcompanyintegrationrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js +15 -15
- package/dist/lib/generated/Entities/MJComponent/mjcomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJComponentLibrary/mjcomponentlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJComponentRegistry/mjcomponentregistry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJContentFileType/mjcontentfiletype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJContentItem/mjcontentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJContentSourceType/mjcontentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJContentType/mjcontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +17 -17
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJConversationArtifact/mjconversationartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJConversationArtifactVersion/mjconversationartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js +20 -20
- package/dist/lib/generated/Entities/MJConversationDetail/mjconversationdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJCredentialCategory/mjcredentialcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJDashboard/mjdashboard.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js +12 -12
- package/dist/lib/generated/Entities/MJDashboardCategory/mjdashboardcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJDataContext/mjdatacontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJDataset/mjdataset.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJDuplicateRun/mjduplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJDuplicateRunDetail/mjduplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js +22 -22
- package/dist/lib/generated/Entities/MJEmployee/mjemployee.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJEncryptionAlgorithm/mjencryptionalgorithm.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJEncryptionKey/mjencryptionkey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJEncryptionKeySource/mjencryptionkeysource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +217 -217
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJEntityAction/mjentityaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJEntityActionInvocationType/mjentityactioninvocationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJEntityCommunicationMessageType/mjentitycommunicationmessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJEntityDocument/mjentitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJEntityDocumentType/mjentitydocumenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJEntityRelationshipDisplayComponent/mjentityrelationshipdisplaycomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +18 -18
- package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +9 -9
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJFileCategory/mjfilecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +12 -12
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJGeneratedCodeCategory/mjgeneratedcodecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJIntegration/mjintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJLibrary/mjlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js +12 -12
- package/dist/lib/generated/Entities/MJList/mjlist.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJListCategory/mjlistcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJMCPServer/mjmcpserver.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJMCPServerConnection/mjmcpserverconnection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJMCPServerTool/mjmcpservertool.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js +16 -16
- package/dist/lib/generated/Entities/MJOpenApp/mjopenapp.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJOutputDeliveryType/mjoutputdeliverytype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJOutputFormatType/mjoutputformattype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJOutputTriggerType/mjoutputtriggertype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +74 -54
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJQueryCategory/mjquerycategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js +63 -0
- package/dist/lib/generated/Entities/MJQuerySQL/mjquerysql.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJQueue/mjqueue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJQueueType/mjqueuetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJRecommendation/mjrecommendation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJRecommendationProvider/mjrecommendationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJRecommendationRun/mjrecommendationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJRecordChangeReplayRun/mjrecordchangereplayrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJRecordMergeLog/mjrecordmergelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js +8 -8
- package/dist/lib/generated/Entities/MJReport/mjreport.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJReportCategory/mjreportcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js +18 -18
- package/dist/lib/generated/Entities/MJResourceType/mjresourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +28 -28
- package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJRowLevelSecurityFilter/mjrowlevelsecurityfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js +109 -0
- package/dist/lib/generated/Entities/MJSQLDialect/mjsqldialect.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJScheduledAction/mjscheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJScheduledJob/mjscheduledjob.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJScheduledJobRun/mjscheduledjobrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJScheduledJobType/mjscheduledjobtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJSkill/mjskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +16 -16
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJTaskType/mjtasktype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +34 -34
- package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJTemplateCategory/mjtemplatecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJTemplateContent/mjtemplatecontent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJTemplateContentType/mjtemplatecontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJTestRun/mjtestrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJTestRunOutputType/mjtestrunoutputtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +5 -5
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +3 -3
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js +4 -4
- package/dist/lib/generated/Entities/MJTestType/mjtesttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +334 -334
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJUserApplication/mjuserapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js +7 -7
- package/dist/lib/generated/Entities/MJUserNotificationType/mjusernotificationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js +14 -14
- package/dist/lib/generated/Entities/MJUserView/mjuserview.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJUserViewCategory/mjuserviewcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJUserViewRun/mjuserviewrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJVectorDatabase/mjvectordatabase.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js +18 -18
- package/dist/lib/generated/Entities/MJVersionLabel/mjversionlabel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js +10 -10
- package/dist/lib/generated/Entities/MJWorkflow/mjworkflow.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJWorkflowEngine/mjworkflowengine.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js +6 -6
- package/dist/lib/generated/Entities/MJWorkspace/mjworkspace.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +80 -78
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +25 -19
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/package.json +30 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts","../../../../src/lib/custom/Queries/query-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ViewChild, ChangeDetectorRef, AfterViewInit } from '@angular/core';\nimport { MJQueryEntity, MJQueryParameterEntity, MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryEntityEntity, MJQueryPermissionEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { MJQueryFormComponent } from '../../generated/Entities/MJQuery/mjquery.form.component';\nimport { Metadata, RunView, RUN_QUERY_SQL_FILTERS } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { CodeEditorComponent } from '@memberjunction/ng-code-editor';\nimport { Subject } from 'rxjs';\n\ninterface CategoryTreeNode {\n id: string;\n name: string;\n items?: CategoryTreeNode[];\n}\n\n@RegisterClass(BaseFormComponent, 'MJ: Queries')\n@Component({\n standalone: false,\n selector: 'mj-query-form',\n templateUrl: './query-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './query-form.component.css']\n})\nexport class MJQueryFormComponentExtended extends MJQueryFormComponent implements OnInit, OnDestroy, AfterViewInit {\n public record!: MJQueryEntity;\n public queryParameters: MJQueryParameterEntity[] = [];\n public queryFields: MJQueryFieldEntity[] = [];\n public queryEntities: MJQueryEntityEntity[] = [];\n public queryPermissions: MJQueryPermissionEntity[] = [];\n public isLoadingParameters = false;\n public isLoadingFields = false;\n public isLoadingEntities = false;\n public isLoadingPermissions = false;\n public hasUnsavedChanges = false;\n public showFiltersHelp = false;\n public showRunDialog = false;\n public showCategoryDialog = false;\n \n // Expansion panel states\n public sqlPanelExpanded = true;\n public parametersPanelExpanded = false;\n public fieldsPanelExpanded = false;\n public entitiesPanelExpanded = false;\n public detailsPanelExpanded = false;\n public permissionsPanelExpanded = false;\n \n // Category data\n public categoryOptions: Array<{text: string, value: string}> = [\n { text: 'Select Category...', value: '' }\n ];\n public categories: MJQueryCategoryEntity[] = [];\n public categoryTreeData: CategoryTreeNode[] = [];\n \n // Status options\n public statusOptions = [\n { text: 'Pending', value: 'Pending' },\n { text: 'Approved', value: 'Approved' },\n { text: 'Rejected', value: 'Rejected' },\n { text: 'Expired', value: 'Expired' }\n ];\n\n @ViewChild('sqlEditor') sqlEditor: CodeEditorComponent | null = null;\n \n // SQL Filters for help display\n public sqlFilters = RUN_QUERY_SQL_FILTERS;\n \n private destroy$ = new Subject<void>();\n private isUpdatingEditorValue = false;\n\n async ngOnInit() {\n await super.ngOnInit();\n \n // Load categories first to ensure they're available for the dropdown\n await this.loadCategories();\n \n // Then load other data in parallel\n await Promise.all([\n this.loadQueryParameters(),\n this.loadQueryFields(),\n this.loadQueryEntities(),\n this.loadQueryPermissions()\n ]);\n \n // Ensure form is properly initialized after all data is loaded\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n this.sqlEditor?.setEditable(this.EditMode);\n\n // Set initial SQL value in the editor\n this.updateEditorValue();\n }\n \n override EndEditMode(): void {\n super.EndEditMode();\n this.sqlEditor?.setEditable(false);\n }\n\n override StartEditMode(): void {\n super.StartEditMode();\n this.sqlEditor?.setEditable(true);\n \n // Force change detection after a brief delay to ensure form controls are initialized\n setTimeout(() => {\n this.cdr.detectChanges();\n }, 50);\n }\n\n override CancelEdit(): void {\n super.CancelEdit();\n this.updateEditorValue(); // Reset editor value to record SQL\n this.sqlEditor?.setEditable(false);\n this.updateUnsavedChangesFlag(); // Reset unsaved changes flag\n }\n\n private updateEditorValue() {\n if (!this.sqlEditor || this.isUpdatingEditorValue) {\n return;\n }\n \n // Use setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (!this.sqlEditor) {\n return;\n }\n \n this.isUpdatingEditorValue = true;\n const sqlValue = this.record?.SQL || '';\n \n // Use the setValue method from mj-code-editor component\n this.sqlEditor.setValue(sqlValue);\n this.isUpdatingEditorValue = false;\n }, 0);\n }\n\n public isFormReadOnly(): boolean {\n return !this.EditMode;\n }\n\n async loadQueryParameters() {\n if (this.record && this.record.ID) {\n this.isLoadingParameters = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryParameterEntity>({\n EntityName: 'MJ: Query Parameters',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryParameters = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query parameters:', error);\n } finally {\n this.isLoadingParameters = false;\n }\n }\n }\n\n async loadQueryFields() {\n if (this.record && this.record.ID) {\n this.isLoadingFields = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryFieldEntity>({\n EntityName: 'MJ: Query Fields',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Sequence ASC, Name ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryFields = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query fields:', error);\n } finally {\n this.isLoadingFields = false;\n }\n }\n }\n\n async loadQueryEntities() {\n if (this.record && this.record.ID) {\n this.isLoadingEntities = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryEntityEntity>({\n EntityName: 'MJ: Query Entities',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Entity ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryEntities = results.Results || [];\n console.log('Loaded query entities:', this.queryEntities);\n }\n } catch (error) {\n console.error('Error loading query entities:', error);\n } finally {\n this.isLoadingEntities = false;\n }\n }\n }\n\n async loadQueryPermissions() {\n if (this.record && this.record.ID) {\n this.isLoadingPermissions = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryPermissionEntity>({\n EntityName: 'MJ: Query Permissions',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Role ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryPermissions = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query permissions:', error);\n } finally {\n this.isLoadingPermissions = false;\n }\n }\n }\n\n async loadCategories() {\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryCategoryEntity>({\n EntityName: 'MJ: Query Categories',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n \n if (results.Success && results.Results) {\n this.categories = results.Results;\n \n // Build flat options for legacy compatibility\n this.categoryOptions = [\n { text: 'Select Category...', value: '' },\n ...this.categories.map(cat => ({\n text: cat.Name,\n value: cat.ID\n }))\n ];\n \n // Build tree data after options are set\n this.categoryTreeData = this.buildCategoryTree(this.categories);\n \n // Trigger change detection to update the view\n this.cdr.detectChanges();\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n this.categoryOptions = [{ text: 'Select Category...', value: '' }];\n this.categoryTreeData = [];\n }\n }\n \n private buildCategoryTree(categories: MJQueryCategoryEntity[]): CategoryTreeNode[] {\n const categoryMap = new Map<string, CategoryTreeNode>();\n const rootCategories: CategoryTreeNode[] = [];\n \n // Create nodes for all categories\n categories.forEach(cat => {\n categoryMap.set(cat.ID, {\n id: cat.ID,\n name: cat.Name,\n items: []\n });\n });\n \n // Build the tree structure\n categories.forEach(cat => {\n const node = categoryMap.get(cat.ID)!;\n if (cat.ParentID && categoryMap.has(cat.ParentID)) {\n const parent = categoryMap.get(cat.ParentID)!;\n if (!parent.items) parent.items = [];\n parent.items.push(node);\n } else {\n rootCategories.push(node);\n }\n });\n \n // Sort children alphabetically\n const sortNodes = (nodes: CategoryTreeNode[]) => {\n nodes.sort((a, b) => a.name.localeCompare(b.name));\n nodes.forEach(node => {\n if (node.items && node.items.length > 0) {\n sortNodes(node.items);\n }\n });\n };\n sortNodes(rootCategories);\n \n return rootCategories;\n }\n \n getCategoryPath(): string {\n if (!this.record.CategoryID) return '';\n \n const findPath = (categoryId: string): string[] => {\n const category = this.categories.find(c => c.ID === categoryId);\n if (!category) return [];\n \n if (category.ParentID) {\n return [...findPath(category.ParentID), category.Name];\n }\n return [category.Name];\n };\n \n return findPath(this.record.CategoryID).join(' / ');\n }\n\n async onCategoryChange(value: string) {\n // If it's a new category (string but not in existing options)\n if (value && !this.categoryOptions.find(opt => opt.value === value)) {\n // Check for duplicate category names (case-insensitive, trimmed)\n if (this.isDuplicateCategory(value)) {\n const existingCategory = this.categoryOptions.find(option => \n option.text && option.text.trim().toLowerCase() === value.trim().toLowerCase()\n );\n if (existingCategory) {\n // Use the existing category instead\n this.record.CategoryID = existingCategory.value;\n MJNotificationService.Instance.CreateSimpleNotification(\n `Category \"${existingCategory.text}\" already exists. Using existing category.`, \n 'warning',\n 3000\n );\n }\n return;\n }\n\n try {\n // Create new category with trimmed name\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = value.trim();\n const saved = await newCategory.Save();\n \n if (saved) {\n // Add to options and set the ID\n this.categoryOptions.push({\n text: newCategory.Name,\n value: newCategory.ID\n });\n this.record.CategoryID = newCategory.ID;\n MJNotificationService.Instance.CreateSimpleNotification(\n `New category \"${newCategory.Name}\" created successfully.`, \n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create new category. ${newCategory.LatestResult?.Message || ''}`, \n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error creating new category:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new category. Please try again.', \n 'error',\n 3000\n );\n }\n }\n }\n\n private isDuplicateCategory(categoryName: string): boolean {\n const normalizedName = categoryName?.trim().toLowerCase();\n return this.categoryOptions.some(option => \n option.text && option.text.trim().toLowerCase() === normalizedName\n );\n }\n\n /**\n * Updates the hasUnsavedChanges flag based on entity dirty states\n */\n private updateUnsavedChangesFlag() {\n this.hasUnsavedChanges = this.queryParameters.some(param => param.Dirty) || \n this.record?.Dirty || false;\n }\n\n toggleFiltersHelp() {\n this.showFiltersHelp = !this.showFiltersHelp;\n }\n\n /**\n * Run the query with parameter dialog\n */\n async runQuery() {\n if (!this.record?.IsSaved) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please save the query before running it.', \n 'warning',\n 3000\n );\n return;\n }\n\n // Save any unsaved changes first\n if (this.hasUnsavedChanges) {\n const saveResult = await this.SaveRecord(false); // Don't exit edit mode\n if (!saveResult) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to save query changes.', \n 'error',\n 3000\n );\n return;\n }\n }\n\n // Reload parameters in case they were updated\n await this.loadQueryParameters();\n this.cdr.detectChanges();\n\n // Show the run dialog\n this.showRunDialog = true;\n }\n\n /**\n * Handle run dialog close\n */\n onRunDialogClose() {\n this.showRunDialog = false;\n }\n \n /**\n * Add a new parameter\n */\n async addParameter() {\n try {\n const md = new Metadata();\n const newParam = await md.GetEntityObject<MJQueryParameterEntity>('MJ: Query Parameters');\n newParam.QueryID = this.record.ID;\n newParam.Name = `param${this.queryParameters.length + 1}`;\n newParam.Type = 'string';\n newParam.IsRequired = false;\n \n const saved = await newParam.Save();\n if (saved) {\n this.queryParameters.push(newParam);\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Parameter added successfully',\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add parameter',\n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error adding parameter:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding parameter',\n 'error',\n 3000\n );\n }\n }\n \n /**\n * Edit a parameter\n */\n async editParameter(param: MJQueryParameterEntity) {\n // TODO: Show parameter edit dialog\n console.log('Edit parameter:', param);\n }\n \n /**\n * Delete a parameter\n */\n async deleteParameter(param: MJQueryParameterEntity) {\n if (!confirm(`Are you sure you want to delete parameter \"${param.Name}\"?`)) {\n return;\n }\n \n try {\n const deleted = await param.Delete();\n if (deleted) {\n const index = this.queryParameters.indexOf(param);\n if (index > -1) {\n this.queryParameters.splice(index, 1);\n }\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Parameter deleted successfully',\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete parameter',\n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting parameter:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error deleting parameter',\n 'error',\n 3000\n );\n }\n }\n \n /**\n * Handle category creation from dialog\n */\n async onCategoryCreated(newCategory: MJQueryCategoryEntity) {\n // Reload categories to include the new one\n await this.loadCategories();\n \n // Set the new category as selected\n this.record.CategoryID = newCategory.ID;\n \n // Trigger change detection\n this.cdr.detectChanges();\n }\n \n /**\n * Format date for display\n */\n formatDate(date: Date | string | null): string {\n if (!date) return '-';\n const d = typeof date === 'string' ? new Date(date) : date;\n return d.toLocaleDateString() + ' ' + d.toLocaleTimeString();\n }\n\n async SaveRecord(StopEditModeAfterSave: boolean = true): Promise<boolean> {\n // Handle category creation before saving query\n if (this.record.CategoryID && !this.categoryOptions.find(opt => opt.value === this.record.CategoryID)) {\n if (this.isDuplicateCategory(this.record.CategoryID)) {\n const existingCategory = this.categoryOptions.find(option => \n option.text && option.text.trim().toLowerCase() === this.record.CategoryID?.trim().toLowerCase()\n );\n if (existingCategory) {\n this.record.CategoryID = existingCategory.value;\n MJNotificationService.Instance.CreateSimpleNotification(\n `Category \"${existingCategory.text}\" already exists. Using existing category.`, \n 'warning',\n 3000\n );\n }\n } else {\n try {\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = this.record.CategoryID.trim();\n const saved = await newCategory.Save();\n \n if (saved) {\n this.categoryOptions.push({\n text: newCategory.Name,\n value: newCategory.ID\n });\n this.record.CategoryID = newCategory.ID;\n } else {\n console.error('Failed to create new category');\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create new category. ${newCategory.LatestResult?.Message || ''}`, \n 'error'\n );\n return false;\n }\n } catch (error) {\n console.error('Error creating new category during save:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new category during save. Please try again.', \n 'error'\n );\n return false;\n }\n }\n }\n\n // Save any unsaved query entities first\n if (this.EditMode) {\n for (const entity of this.queryEntities) {\n if (!entity.IsSaved && entity.EntityID) {\n try {\n await entity.Save();\n } catch (error) {\n console.error('Error saving query entity:', error);\n }\n }\n }\n }\n\n // Call the parent save method\n const result = await super.SaveRecord(StopEditModeAfterSave);\n \n if (result) {\n this.updateUnsavedChangesFlag();\n \n // Reload related data after successful save as server-side processes may have updated them\n if (this.record && this.record.ID) {\n await Promise.all([\n this.loadQueryParameters(),\n this.loadQueryFields(),\n this.loadQueryEntities()\n ]);\n this.cdr.detectChanges();\n }\n }\n \n return result;\n }\n\n getStatusBadgeColor(): string {\n switch (this.record?.Status) {\n case 'Approved':\n return '#28a745';\n case 'Pending':\n return '#ffc107';\n case 'Rejected':\n return '#dc3545';\n default:\n return '#6c757d';\n }\n }\n\n /**\n * Handle SQL value changes from the code editor\n */\n onSQLChange(value: any) {\n if (this.isUpdatingEditorValue || !this.record) {\n return;\n }\n \n // Update the record SQL value\n this.record.SQL = value;\n this.updateUnsavedChangesFlag();\n }\n\n /**\n * Add a new field\n */\n async addField() {\n try {\n const md = new Metadata();\n const newField = await md.GetEntityObject<MJQueryFieldEntity>('MJ: Query Fields');\n newField.QueryID = this.record.ID;\n newField.Name = `field${this.queryFields.length + 1}`;\n newField.Description = '';\n newField.Sequence = (this.queryFields.length + 1) * 10;\n newField.SQLBaseType = 'nvarchar';\n newField.SQLFullType = 'nvarchar(255)';\n \n const saved = await newField.Save();\n if (saved) {\n this.queryFields.push(newField);\n this.queryFields.sort((a, b) => (a.Sequence || 0) - (b.Sequence || 0));\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Field added successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error adding field:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add field',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Delete a field\n */\n async deleteField(field: MJQueryFieldEntity) {\n if (!confirm(`Are you sure you want to delete field \"${field.Name}\"?`)) {\n return;\n }\n \n try {\n const deleted = await field.Delete();\n if (deleted) {\n this.queryFields = this.queryFields.filter(f => f.ID !== field.ID);\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Field deleted successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting field:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete field',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Add a new entity\n */\n async addEntity() {\n try {\n const md = new Metadata();\n const newEntity = await md.GetEntityObject<MJQueryEntityEntity>('MJ: Query Entities');\n newEntity.QueryID = this.record.ID;\n \n // Add to the list immediately for UI responsiveness\n this.queryEntities.push(newEntity);\n this.updateUnsavedChangesFlag();\n } catch (error) {\n console.error('Error adding entity:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add entity',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Delete an entity\n */\n async deleteEntity(entity: MJQueryEntityEntity) {\n if (!confirm(`Are you sure you want to delete entity \"${entity.Entity}\"?`)) {\n return;\n }\n \n try {\n const deleted = await entity.Delete();\n if (deleted) {\n this.queryEntities = this.queryEntities.filter(e => e.ID !== entity.ID);\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Entity deleted successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting entity:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete entity',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Get entity options for dropdown\n */\n getEntityOptions(): Array<{text: string, id: string}> {\n return Metadata.Provider.Entities.map(e => ({\n text: e.Name,\n id: e.ID\n })).sort((a, b) => a.text.localeCompare(b.text));\n }\n\n /**\n * Get the grid edit mode based on component edit mode\n */\n override GridEditMode(): \"None\" | \"Save\" | \"Queue\" {\n return this.EditMode ? \"Queue\" : \"None\";\n }\n\n}\n","<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"query-header\" style=\"flex-shrink: 0; background: #f8f9fa; border-bottom: 1px solid #dee2e6; padding: 20px;\">\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n\n <!-- Top Row: Name and Run Button -->\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;\">\n <!-- Left: Query Name -->\n <div style=\"flex: 1; min-width: 0;\">\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <i class=\"fa-solid fa-database\" style=\"color: #17a2b8; font-size: 1.4em;\"></i>\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\"\n style=\"font-size: 1.2em; font-weight: 600; min-width: 300px; flex: 1;\">\n </kendo-textbox>\n } @else {\n <h4 style=\"margin: 0; color: #495057; font-weight: 600; flex: 1;\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"action-buttons\" style=\"display: flex; gap: 8px; align-items: center;\">\n @if (record.ID) {\n <button kendoButton\n [themeColor]=\"'primary'\"\n [size]=\"'large'\"\n [disabled]=\"EditMode || record.Status !== 'Approved' || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\">\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 style=\"display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;\">\n <!-- Category -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: #495057; min-width: 80px;\">Category:</label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.CategoryID\"\n name=\"categoryId\"\n [data]=\"categoryOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n placeholder=\"Select category...\"\n style=\"flex: 1;\">\n </kendo-dropdownlist>\n } @else {\n <span style=\"color: #495057;\">{{ getCategoryPath() || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: #495057; min-width: 50px;\">Status:</label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n style=\"flex: 1;\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"badge\"\n [style.background]=\"getStatusBadgeColor()\"\n style=\"color: white; padding: 6px 12px; border-radius: 12px; font-size: 0.85em;\">\n @if (record.Status === 'Approved') {\n <i class=\"fa-solid fa-check-circle\"></i>\n }\n @if (record.Status === 'Pending') {\n <i class=\"fa-solid fa-clock\"></i>\n }\n @if (record.Status === 'Rejected') {\n <i class=\"fa-solid fa-times-circle\"></i>\n }\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div>\n @if (EditMode) {\n <kendo-textarea [(ngModel)]=\"record.Description\"\n name=\"description\"\n [rows]=\"2\"\n placeholder=\"Enter query description...\"\n style=\"width: 100%;\">\n </kendo-textarea>\n } @else {\n <p style=\"margin: 0; color: #6c757d; font-size: 0.9em; line-height: 1.4;\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" style=\"flex: 1; min-height: 0; padding: 20px; overflow-y: auto; background: #f5f7fa;\">\n\n <!-- SQL Query Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"sqlPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; justify-content: space-between; width: 100%;\">\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-code\" style=\"color: #17a2b8;\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"badge\" style=\"background: #28a745; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n <i class=\"fa-solid fa-check\"></i> Defined\n </span>\n }\n </span>\n <button type=\"button\"\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"toggleFiltersHelp(); $event.stopPropagation()\"\n title=\"Show/hide SQL filters help\"\n style=\"margin-right: 8px;\">\n <i class=\"fa-solid fa-question-circle\"></i>\n <span style=\"margin-left: 4px;\">Filters Help</span>\n <i class=\"fa-solid\" [ngClass]=\"showFiltersHelp ? 'fa-chevron-up' : 'fa-chevron-down'\" style=\"margin-left: 4px;\"></i>\n </button>\n </span>\n </ng-template>\n\n <div style=\"display: flex; flex-direction: column;\">\n <!-- Code Editor -->\n <mj-code-editor #sqlEditor\n (change)=\"onSQLChange($event)\"\n [language]=\"'sql'\"\n style=\"flex: 1; height: 400px; border: 1px solid #ced4da; border-radius: 4px;\">\n </mj-code-editor>\n\n <!-- SQL Filters Help (Below Editor) -->\n @if (showFiltersHelp) {\n <div class=\"filters-help\" style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px; padding: 16px; margin-top: 16px;\">\n <h6 style=\"margin: 0 0 12px 0; color: #495057; font-weight: 600;\">\n <i class=\"fa-solid fa-filter\"></i> Available SQL Filters for Parameterized Queries\n </h6>\n\n <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px;\">\n @for (filter of sqlFilters; track filter.name) {\n <div class=\"filter-card\" style=\"background: white; border: 1px solid #e9ecef; border-radius: 4px; padding: 12px;\">\n <div style=\"font-family: 'Courier New', monospace; font-weight: bold; color: #007bff; margin-bottom: 4px;\">\n {{ filter.name }}\n </div>\n <div style=\"font-size: 0.85em; color: #495057; margin-bottom: 8px;\">\n {{ filter.description }}\n </div>\n <div style=\"font-family: 'Courier New', monospace; font-size: 0.8em; background: #f1f3f4; padding: 6px; border-radius: 3px; margin-bottom: 4px;\">\n {{ filter.exampleSyntax }}\n </div>\n @if (filter.notes) {\n <div style=\"font-size: 0.75em; color: #6c757d; font-style: italic;\">\n {{ filter.notes }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Parameters Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"parametersPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sliders\" style=\"color: #6c757d;\"></i>\n Query Parameters\n @if (queryParameters.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryParameters.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingParameters) {\n <div style=\"display: flex; align-items: center; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Loading parameters...</span>\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-param-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Parameter\n </button>\n }\n </div>\n } @else {\n <!-- Parameters Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add Parameter\n </button>\n </div>\n }\n\n <!-- Parameters Grid -->\n <div class=\"parameters-grid\">\n @for (param of queryParameters; track param.ID || $index) {\n <div class=\"param-card\" [class.required]=\"param.IsRequired\" (click)=\"editParameter(param)\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-at\" style=\"color: #007bff;\"></i>\n {{ param.Name }}\n </div>\n <div class=\"param-badges\">\n @if (param.IsRequired) {\n <span class=\"param-badge required\">Required</span>\n }\n </div>\n </div>\n\n <div class=\"param-card-body\">\n @if (param.Description) {\n <div style=\"margin-bottom: 8px;\">{{ param.Description }}</div>\n }\n\n <div style=\"display: flex; gap: 16px; font-size: 0.85em;\">\n <div>\n <strong>Type:</strong> {{ param.Type || 'Text' }}\n </div>\n @if (param.DefaultValue) {\n <div>\n <strong>Default:</strong>\n <code style=\"background: #f1f3f4; padding: 2px 4px; border-radius: 3px;\">\n {{ param.DefaultValue }}\n </code>\n </div>\n }\n </div>\n </div>\n\n @if (EditMode) {\n <div class=\"param-actions\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"param-action-btn\" (click)=\"editParameter(param)\" title=\"Edit parameter\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button type=\"button\" class=\"param-action-btn delete\" (click)=\"deleteParameter(param)\" title=\"Delete parameter\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Query Fields Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"fieldsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-table\" style=\"color: #6c757d;\"></i>\n Query Fields\n @if (queryFields.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryFields.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingFields) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryFields.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-table\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Fields Defined</h5>\n <div style=\"color: #adb5bd; margin-bottom: 16px;\">\n Define output fields for your query results.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Field\n </button>\n }\n </div>\n } @else {\n <!-- Fields Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n </div>\n }\n\n <!-- Fields Grid -->\n <div class=\"parameters-grid\">\n @for (field of queryFields; track field.ID) {\n <div class=\"param-card\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-columns\" style=\"color: #17a2b8;\"></i>\n {{ field.Name }}\n </div>\n <div class=\"param-badges\">\n <span class=\"param-badge\" style=\"background: #e3f2fd; color: #1976d2;\">{{ field.SQLBaseType }}</span>\n @if (field.Sequence) {\n <span class=\"param-badge\" style=\"background: #f3e5f5; color: #7b1fa2;\">#{{ field.Sequence }}</span>\n }\n </div>\n </div>\n\n <div class=\"param-card-body\">\n @if (field.Description) {\n <div class=\"param-description\">{{ field.Description }}</div>\n }\n <div class=\"param-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-code\"></i> {{ field.SQLFullType || field.SQLBaseType }}\n </span>\n </div>\n </div>\n\n @if (EditMode) {\n <div class=\"param-card-actions\">\n <button type=\"button\" class=\"action-btn danger\" (click)=\"deleteField(field)\" title=\"Delete field\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Query Entities Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"entitiesPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-database\" style=\"color: #6c757d;\"></i>\n Query Entities\n @if (queryEntities.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryEntities.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingEntities) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryEntities.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Entities Tracked</h5>\n <div style=\"color: #adb5bd; margin-bottom: 16px;\">\n Track which entities this query uses for documentation.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Entity\n </button>\n }\n </div>\n } @else {\n <!-- Entities Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add Entity\n </button>\n </div>\n }\n\n <!-- Entities Grid -->\n <div class=\"parameters-grid\">\n @for (entity of queryEntities; track entity.ID) {\n <div class=\"param-card\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-table\" style=\"color: #28a745;\"></i>\n {{ entity.Entity || 'Select Entity...' }}\n </div>\n @if (EditMode) {\n <div style=\"flex: 1; margin-left: 12px;\">\n <kendo-dropdownlist\n [(ngModel)]=\"entity.EntityID\"\n [name]=\"'entity_' + entity.ID\"\n [data]=\"getEntityOptions()\"\n textField=\"text\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n placeholder=\"Select entity...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n </div>\n }\n </div>\n\n @if (!EditMode && entity.Entity) {\n <div class=\"param-card-body\">\n <div class=\"param-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-database\"></i> Data Source\n </span>\n </div>\n </div>\n }\n\n @if (EditMode) {\n <div class=\"param-card-actions\">\n <button type=\"button\" class=\"action-btn danger\" (click)=\"deleteEntity(entity)\" title=\"Delete entity\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Details Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"detailsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-info-circle\" style=\"color: #6c757d;\"></i>\n Query Details\n </span>\n </ng-template>\n\n <div style=\"padding: 20px;\">\n <div class=\"details-grid\">\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <kendo-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></kendo-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span style=\"color: #28a745;\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span style=\"color: #6c757d;\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"permissionsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-shield-alt\" style=\"color: #6c757d;\"></i>\n Query Permissions\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingPermissions) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Permissions Set</h5>\n <div style=\"color: #adb5bd;\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <!-- Edit Mode: Use the standard grid -->\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 <!-- Read Mode: Nice card-based display -->\n <div class=\"permissions-display\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\" style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 8px; padding: 16px; margin-bottom: 12px;\">\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <i class=\"fa-solid fa-users\" style=\"font-size: 1.5em; color: #6c757d;\"></i>\n <div style=\"flex: 1;\">\n <div style=\"font-weight: 600; color: #495057;\">\n {{ permission.Role }}\n </div>\n <div style=\"font-size: 0.85em; color: #6c757d;\">\n Role Permission\n </div>\n </div>\n <div style=\"display: flex; gap: 8px;\">\n <span class=\"permission-badge\" style=\"background: #6f42c1; color: white; padding: 4px 8px; border-radius: 4px; font-size: 0.8em;\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n </div>\n </form>\n\n <!-- Query Run Dialog -->\n <mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n </mj-query-run-dialog>\n\n <!-- Category Creation Dialog -->\n <mj-query-category-dialog\n [(isVisible)]=\"showCategoryDialog\"\n (onCategoryCreated)=\"onCategoryCreated($event)\">\n </mj-query-category-dialog>\n }\n</div>"]}
|
|
1
|
+
{"version":3,"file":"query-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts","../../../../src/lib/custom/Queries/query-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ViewChild, ChangeDetectorRef, AfterViewInit } from '@angular/core';\nimport { MJQueryEntity, MJQueryParameterEntity, MJQueryCategoryEntity, MJQueryFieldEntity, MJQueryEntityEntity, MJQueryPermissionEntity } from '@memberjunction/core-entities';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { MJQueryFormComponent } from '../../generated/Entities/MJQuery/mjquery.form.component';\nimport { Metadata, RunView, RUN_QUERY_SQL_FILTERS } from '@memberjunction/core';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { CodeEditorComponent } from '@memberjunction/ng-code-editor';\nimport { Subject } from 'rxjs';\n\ninterface CategoryTreeNode {\n id: string;\n name: string;\n items?: CategoryTreeNode[];\n}\n\n@RegisterClass(BaseFormComponent, 'MJ: Queries')\n@Component({\n standalone: false,\n selector: 'mj-query-form',\n templateUrl: './query-form.component.html',\n styleUrls: ['../../../shared/form-styles.css', './query-form.component.css']\n})\nexport class MJQueryFormComponentExtended extends MJQueryFormComponent implements OnInit, OnDestroy, AfterViewInit {\n public record!: MJQueryEntity;\n public queryParameters: MJQueryParameterEntity[] = [];\n public queryFields: MJQueryFieldEntity[] = [];\n public queryEntities: MJQueryEntityEntity[] = [];\n public queryPermissions: MJQueryPermissionEntity[] = [];\n public isLoadingParameters = false;\n public isLoadingFields = false;\n public isLoadingEntities = false;\n public isLoadingPermissions = false;\n public hasUnsavedChanges = false;\n public showFiltersHelp = false;\n public showRunDialog = false;\n public showCategoryDialog = false;\n \n // Expansion panel states\n public sqlPanelExpanded = true;\n public parametersPanelExpanded = false;\n public fieldsPanelExpanded = false;\n public entitiesPanelExpanded = false;\n public detailsPanelExpanded = false;\n public permissionsPanelExpanded = false;\n \n // Category data\n public categoryOptions: Array<{text: string, value: string}> = [\n { text: 'Select Category...', value: '' }\n ];\n public categories: MJQueryCategoryEntity[] = [];\n public categoryTreeData: CategoryTreeNode[] = [];\n \n // Status options\n public statusOptions = [\n { text: 'Pending', value: 'Pending' },\n { text: 'Approved', value: 'Approved' },\n { text: 'Rejected', value: 'Rejected' },\n { text: 'Expired', value: 'Expired' }\n ];\n\n @ViewChild('sqlEditor') sqlEditor: CodeEditorComponent | null = null;\n \n // SQL Filters for help display\n public sqlFilters = RUN_QUERY_SQL_FILTERS;\n \n private destroy$ = new Subject<void>();\n private isUpdatingEditorValue = false;\n\n async ngOnInit() {\n await super.ngOnInit();\n \n // Load categories first to ensure they're available for the dropdown\n await this.loadCategories();\n \n // Then load other data in parallel\n await Promise.all([\n this.loadQueryParameters(),\n this.loadQueryFields(),\n this.loadQueryEntities(),\n this.loadQueryPermissions()\n ]);\n \n // Ensure form is properly initialized after all data is loaded\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n this.sqlEditor?.setEditable(this.EditMode);\n\n // Set initial SQL value in the editor\n this.updateEditorValue();\n }\n \n override EndEditMode(): void {\n super.EndEditMode();\n this.sqlEditor?.setEditable(false);\n }\n\n override StartEditMode(): void {\n super.StartEditMode();\n this.sqlEditor?.setEditable(true);\n \n // Force change detection after a brief delay to ensure form controls are initialized\n setTimeout(() => {\n this.cdr.detectChanges();\n }, 50);\n }\n\n override CancelEdit(): void {\n super.CancelEdit();\n this.updateEditorValue(); // Reset editor value to record SQL\n this.sqlEditor?.setEditable(false);\n this.updateUnsavedChangesFlag(); // Reset unsaved changes flag\n }\n\n private updateEditorValue() {\n if (!this.sqlEditor || this.isUpdatingEditorValue) {\n return;\n }\n \n // Use setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\n setTimeout(() => {\n if (!this.sqlEditor) {\n return;\n }\n \n this.isUpdatingEditorValue = true;\n const sqlValue = this.record?.SQL || '';\n \n // Use the setValue method from mj-code-editor component\n this.sqlEditor.setValue(sqlValue);\n this.isUpdatingEditorValue = false;\n }, 0);\n }\n\n public isFormReadOnly(): boolean {\n return !this.EditMode;\n }\n\n async loadQueryParameters() {\n if (this.record && this.record.ID) {\n this.isLoadingParameters = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryParameterEntity>({\n EntityName: 'MJ: Query Parameters',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Name ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryParameters = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query parameters:', error);\n } finally {\n this.isLoadingParameters = false;\n }\n }\n }\n\n async loadQueryFields() {\n if (this.record && this.record.ID) {\n this.isLoadingFields = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryFieldEntity>({\n EntityName: 'MJ: Query Fields',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Sequence ASC, Name ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryFields = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query fields:', error);\n } finally {\n this.isLoadingFields = false;\n }\n }\n }\n\n async loadQueryEntities() {\n if (this.record && this.record.ID) {\n this.isLoadingEntities = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryEntityEntity>({\n EntityName: 'MJ: Query Entities',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Entity ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryEntities = results.Results || [];\n console.log('Loaded query entities:', this.queryEntities);\n }\n } catch (error) {\n console.error('Error loading query entities:', error);\n } finally {\n this.isLoadingEntities = false;\n }\n }\n }\n\n async loadQueryPermissions() {\n if (this.record && this.record.ID) {\n this.isLoadingPermissions = true;\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryPermissionEntity>({\n EntityName: 'MJ: Query Permissions',\n ExtraFilter: `QueryID='${this.record.ID}'`,\n OrderBy: 'Role ASC',\n ResultType: 'entity_object'\n });\n \n if (results.Success) {\n this.queryPermissions = results.Results || [];\n }\n } catch (error) {\n console.error('Error loading query permissions:', error);\n } finally {\n this.isLoadingPermissions = false;\n }\n }\n }\n\n async loadCategories() {\n try {\n const rv = new RunView();\n const results = await rv.RunView<MJQueryCategoryEntity>({\n EntityName: 'MJ: Query Categories',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n \n if (results.Success && results.Results) {\n this.categories = results.Results;\n \n // Build flat options for legacy compatibility\n this.categoryOptions = [\n { text: 'Select Category...', value: '' },\n ...this.categories.map(cat => ({\n text: cat.Name,\n value: cat.ID\n }))\n ];\n \n // Build tree data after options are set\n this.categoryTreeData = this.buildCategoryTree(this.categories);\n \n // Trigger change detection to update the view\n this.cdr.detectChanges();\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n this.categoryOptions = [{ text: 'Select Category...', value: '' }];\n this.categoryTreeData = [];\n }\n }\n \n private buildCategoryTree(categories: MJQueryCategoryEntity[]): CategoryTreeNode[] {\n const categoryMap = new Map<string, CategoryTreeNode>();\n const rootCategories: CategoryTreeNode[] = [];\n \n // Create nodes for all categories\n categories.forEach(cat => {\n categoryMap.set(cat.ID, {\n id: cat.ID,\n name: cat.Name,\n items: []\n });\n });\n \n // Build the tree structure\n categories.forEach(cat => {\n const node = categoryMap.get(cat.ID)!;\n if (cat.ParentID && categoryMap.has(cat.ParentID)) {\n const parent = categoryMap.get(cat.ParentID)!;\n if (!parent.items) parent.items = [];\n parent.items.push(node);\n } else {\n rootCategories.push(node);\n }\n });\n \n // Sort children alphabetically\n const sortNodes = (nodes: CategoryTreeNode[]) => {\n nodes.sort((a, b) => a.name.localeCompare(b.name));\n nodes.forEach(node => {\n if (node.items && node.items.length > 0) {\n sortNodes(node.items);\n }\n });\n };\n sortNodes(rootCategories);\n \n return rootCategories;\n }\n \n getCategoryPath(): string {\n if (!this.record.CategoryID) return '';\n \n const findPath = (categoryId: string): string[] => {\n const category = this.categories.find(c => UUIDsEqual(c.ID, categoryId));\n if (!category) return [];\n \n if (category.ParentID) {\n return [...findPath(category.ParentID), category.Name];\n }\n return [category.Name];\n };\n \n return findPath(this.record.CategoryID).join(' / ');\n }\n\n async onCategoryChange(value: string) {\n // If it's a new category (string but not in existing options)\n if (value && !this.categoryOptions.find(opt => opt.value === value)) {\n // Check for duplicate category names (case-insensitive, trimmed)\n if (this.isDuplicateCategory(value)) {\n const existingCategory = this.categoryOptions.find(option => \n option.text && option.text.trim().toLowerCase() === value.trim().toLowerCase()\n );\n if (existingCategory) {\n // Use the existing category instead\n this.record.CategoryID = existingCategory.value;\n MJNotificationService.Instance.CreateSimpleNotification(\n `Category \"${existingCategory.text}\" already exists. Using existing category.`, \n 'warning',\n 3000\n );\n }\n return;\n }\n\n try {\n // Create new category with trimmed name\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = value.trim();\n const saved = await newCategory.Save();\n \n if (saved) {\n // Add to options and set the ID\n this.categoryOptions.push({\n text: newCategory.Name,\n value: newCategory.ID\n });\n this.record.CategoryID = newCategory.ID;\n MJNotificationService.Instance.CreateSimpleNotification(\n `New category \"${newCategory.Name}\" created successfully.`, \n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create new category. ${newCategory.LatestResult?.Message || ''}`, \n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error creating new category:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new category. Please try again.', \n 'error',\n 3000\n );\n }\n }\n }\n\n private isDuplicateCategory(categoryName: string): boolean {\n const normalizedName = categoryName?.trim().toLowerCase();\n return this.categoryOptions.some(option => \n option.text && option.text.trim().toLowerCase() === normalizedName\n );\n }\n\n /**\n * Updates the hasUnsavedChanges flag based on entity dirty states\n */\n private updateUnsavedChangesFlag() {\n this.hasUnsavedChanges = this.queryParameters.some(param => param.Dirty) || \n this.record?.Dirty || false;\n }\n\n toggleFiltersHelp() {\n this.showFiltersHelp = !this.showFiltersHelp;\n }\n\n /**\n * Run the query with parameter dialog\n */\n async runQuery() {\n if (!this.record?.IsSaved) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Please save the query before running it.', \n 'warning',\n 3000\n );\n return;\n }\n\n // Save any unsaved changes first\n if (this.hasUnsavedChanges) {\n const saveResult = await this.SaveRecord(false); // Don't exit edit mode\n if (!saveResult) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to save query changes.', \n 'error',\n 3000\n );\n return;\n }\n }\n\n // Reload parameters in case they were updated\n await this.loadQueryParameters();\n this.cdr.detectChanges();\n\n // Show the run dialog\n this.showRunDialog = true;\n }\n\n /**\n * Handle run dialog close\n */\n onRunDialogClose() {\n this.showRunDialog = false;\n }\n \n /**\n * Add a new parameter\n */\n async addParameter() {\n try {\n const md = new Metadata();\n const newParam = await md.GetEntityObject<MJQueryParameterEntity>('MJ: Query Parameters');\n newParam.QueryID = this.record.ID;\n newParam.Name = `param${this.queryParameters.length + 1}`;\n newParam.Type = 'string';\n newParam.IsRequired = false;\n \n const saved = await newParam.Save();\n if (saved) {\n this.queryParameters.push(newParam);\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Parameter added successfully',\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add parameter',\n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error adding parameter:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error adding parameter',\n 'error',\n 3000\n );\n }\n }\n \n /**\n * Edit a parameter\n */\n async editParameter(param: MJQueryParameterEntity) {\n // TODO: Show parameter edit dialog\n console.log('Edit parameter:', param);\n }\n \n /**\n * Delete a parameter\n */\n async deleteParameter(param: MJQueryParameterEntity) {\n if (!confirm(`Are you sure you want to delete parameter \"${param.Name}\"?`)) {\n return;\n }\n \n try {\n const deleted = await param.Delete();\n if (deleted) {\n const index = this.queryParameters.indexOf(param);\n if (index > -1) {\n this.queryParameters.splice(index, 1);\n }\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Parameter deleted successfully',\n 'success',\n 3000\n );\n } else {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete parameter',\n 'error',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting parameter:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error deleting parameter',\n 'error',\n 3000\n );\n }\n }\n \n /**\n * Handle category creation from dialog\n */\n async onCategoryCreated(newCategory: MJQueryCategoryEntity) {\n // Reload categories to include the new one\n await this.loadCategories();\n \n // Set the new category as selected\n this.record.CategoryID = newCategory.ID;\n \n // Trigger change detection\n this.cdr.detectChanges();\n }\n \n /**\n * Format date for display\n */\n formatDate(date: Date | string | null): string {\n if (!date) return '-';\n const d = typeof date === 'string' ? new Date(date) : date;\n return d.toLocaleDateString() + ' ' + d.toLocaleTimeString();\n }\n\n async SaveRecord(StopEditModeAfterSave: boolean = true): Promise<boolean> {\n // Handle category creation before saving query\n if (this.record.CategoryID && !this.categoryOptions.find(opt => opt.value === this.record.CategoryID)) {\n if (this.isDuplicateCategory(this.record.CategoryID)) {\n const existingCategory = this.categoryOptions.find(option => \n option.text && option.text.trim().toLowerCase() === this.record.CategoryID?.trim().toLowerCase()\n );\n if (existingCategory) {\n this.record.CategoryID = existingCategory.value;\n MJNotificationService.Instance.CreateSimpleNotification(\n `Category \"${existingCategory.text}\" already exists. Using existing category.`, \n 'warning',\n 3000\n );\n }\n } else {\n try {\n const md = new Metadata();\n const newCategory = await md.GetEntityObject<MJQueryCategoryEntity>('MJ: Query Categories');\n newCategory.Name = this.record.CategoryID.trim();\n const saved = await newCategory.Save();\n \n if (saved) {\n this.categoryOptions.push({\n text: newCategory.Name,\n value: newCategory.ID\n });\n this.record.CategoryID = newCategory.ID;\n } else {\n console.error('Failed to create new category');\n MJNotificationService.Instance.CreateSimpleNotification(\n `Failed to create new category. ${newCategory.LatestResult?.Message || ''}`, \n 'error'\n );\n return false;\n }\n } catch (error) {\n console.error('Error creating new category during save:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Error creating new category during save. Please try again.', \n 'error'\n );\n return false;\n }\n }\n }\n\n // Save any unsaved query entities first\n if (this.EditMode) {\n for (const entity of this.queryEntities) {\n if (!entity.IsSaved && entity.EntityID) {\n try {\n await entity.Save();\n } catch (error) {\n console.error('Error saving query entity:', error);\n }\n }\n }\n }\n\n // Call the parent save method\n const result = await super.SaveRecord(StopEditModeAfterSave);\n \n if (result) {\n this.updateUnsavedChangesFlag();\n \n // Reload related data after successful save as server-side processes may have updated them\n if (this.record && this.record.ID) {\n await Promise.all([\n this.loadQueryParameters(),\n this.loadQueryFields(),\n this.loadQueryEntities()\n ]);\n this.cdr.detectChanges();\n }\n }\n \n return result;\n }\n\n getStatusBadgeColor(): string {\n switch (this.record?.Status) {\n case 'Approved':\n return '#28a745';\n case 'Pending':\n return '#ffc107';\n case 'Rejected':\n return '#dc3545';\n default:\n return '#6c757d';\n }\n }\n\n /**\n * Handle SQL value changes from the code editor\n */\n onSQLChange(value: any) {\n if (this.isUpdatingEditorValue || !this.record) {\n return;\n }\n \n // Update the record SQL value\n this.record.SQL = value;\n this.updateUnsavedChangesFlag();\n }\n\n /**\n * Add a new field\n */\n async addField() {\n try {\n const md = new Metadata();\n const newField = await md.GetEntityObject<MJQueryFieldEntity>('MJ: Query Fields');\n newField.QueryID = this.record.ID;\n newField.Name = `field${this.queryFields.length + 1}`;\n newField.Description = '';\n newField.Sequence = (this.queryFields.length + 1) * 10;\n newField.SQLBaseType = 'nvarchar';\n newField.SQLFullType = 'nvarchar(255)';\n \n const saved = await newField.Save();\n if (saved) {\n this.queryFields.push(newField);\n this.queryFields.sort((a, b) => (a.Sequence || 0) - (b.Sequence || 0));\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Field added successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error adding field:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add field',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Delete a field\n */\n async deleteField(field: MJQueryFieldEntity) {\n if (!confirm(`Are you sure you want to delete field \"${field.Name}\"?`)) {\n return;\n }\n \n try {\n const deleted = await field.Delete();\n if (deleted) {\n this.queryFields = this.queryFields.filter(f => !UUIDsEqual(f.ID, field.ID));\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Field deleted successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting field:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete field',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Add a new entity\n */\n async addEntity() {\n try {\n const md = new Metadata();\n const newEntity = await md.GetEntityObject<MJQueryEntityEntity>('MJ: Query Entities');\n newEntity.QueryID = this.record.ID;\n \n // Add to the list immediately for UI responsiveness\n this.queryEntities.push(newEntity);\n this.updateUnsavedChangesFlag();\n } catch (error) {\n console.error('Error adding entity:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to add entity',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Delete an entity\n */\n async deleteEntity(entity: MJQueryEntityEntity) {\n if (!confirm(`Are you sure you want to delete entity \"${entity.Entity}\"?`)) {\n return;\n }\n \n try {\n const deleted = await entity.Delete();\n if (deleted) {\n this.queryEntities = this.queryEntities.filter(e => !UUIDsEqual(e.ID, entity.ID));\n this.updateUnsavedChangesFlag();\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Entity deleted successfully',\n 'success',\n 3000\n );\n }\n } catch (error) {\n console.error('Error deleting entity:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to delete entity',\n 'error',\n 3000\n );\n }\n }\n\n /**\n * Get entity options for dropdown\n */\n getEntityOptions(): Array<{text: string, id: string}> {\n return Metadata.Provider.Entities.map(e => ({\n text: e.Name,\n id: e.ID\n })).sort((a, b) => a.text.localeCompare(b.text));\n }\n\n /**\n * Get the grid edit mode based on component edit mode\n */\n override GridEditMode(): \"None\" | \"Save\" | \"Queue\" {\n return this.EditMode ? \"Queue\" : \"None\";\n }\n\n}\n","<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"query-header\" style=\"flex-shrink: 0; background: #f8f9fa; border-bottom: 1px solid #dee2e6; padding: 20px;\">\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n\n <!-- Top Row: Name and Run Button -->\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;\">\n <!-- Left: Query Name -->\n <div style=\"flex: 1; min-width: 0;\">\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <i class=\"fa-solid fa-database\" style=\"color: #17a2b8; font-size: 1.4em;\"></i>\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\"\n name=\"queryName\"\n placeholder=\"Enter query name...\"\n style=\"font-size: 1.2em; font-weight: 600; min-width: 300px; flex: 1;\">\n </kendo-textbox>\n } @else {\n <h4 style=\"margin: 0; color: #495057; font-weight: 600; flex: 1;\">{{ record.Name || 'Untitled Query' }}</h4>\n }\n </div>\n </div>\n\n <!-- Right: Action Buttons -->\n <div class=\"action-buttons\" style=\"display: flex; gap: 8px; align-items: center;\">\n @if (record.ID) {\n <button kendoButton\n [themeColor]=\"'primary'\"\n [size]=\"'large'\"\n [disabled]=\"EditMode || record.Status !== 'Approved' || !record.SQL || record.SQL.trim().length === 0\"\n (click)=\"runQuery()\"\n title=\"Run Query\">\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 style=\"display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;\">\n <!-- Category -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: #495057; min-width: 80px;\">Category:</label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.CategoryID\"\n name=\"categoryId\"\n [data]=\"categoryOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n placeholder=\"Select category...\"\n style=\"flex: 1;\">\n </kendo-dropdownlist>\n } @else {\n <span style=\"color: #495057;\">{{ getCategoryPath() || 'Uncategorized' }}</span>\n }\n </div>\n\n <!-- Status -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: #495057; min-width: 50px;\">Status:</label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.Status\"\n name=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n style=\"flex: 1;\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"badge\"\n [style.background]=\"getStatusBadgeColor()\"\n style=\"color: white; padding: 6px 12px; border-radius: 12px; font-size: 0.85em;\">\n @if (record.Status === 'Approved') {\n <i class=\"fa-solid fa-check-circle\"></i>\n }\n @if (record.Status === 'Pending') {\n <i class=\"fa-solid fa-clock\"></i>\n }\n @if (record.Status === 'Rejected') {\n <i class=\"fa-solid fa-times-circle\"></i>\n }\n {{ record.Status || 'Unknown' }}\n </span>\n }\n </div>\n </div>\n\n <!-- Third Row: Description -->\n @if (EditMode || record.Description) {\n <div>\n @if (EditMode) {\n <kendo-textarea [(ngModel)]=\"record.Description\"\n name=\"description\"\n [rows]=\"2\"\n placeholder=\"Enter query description...\"\n style=\"width: 100%;\">\n </kendo-textarea>\n } @else {\n <p style=\"margin: 0; color: #6c757d; font-size: 0.9em; line-height: 1.4;\">{{ record.Description }}</p>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Main Content Area with Expansion Panels -->\n <div class=\"query-content\" style=\"flex: 1; min-height: 0; padding: 20px; overflow-y: auto; background: #f5f7fa;\">\n\n <!-- SQL Query Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"sqlPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; justify-content: space-between; width: 100%;\">\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-code\" style=\"color: #17a2b8;\"></i>\n SQL\n @if (record.SQL) {\n <span class=\"badge\" style=\"background: #28a745; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n <i class=\"fa-solid fa-check\"></i> Defined\n </span>\n }\n </span>\n <button type=\"button\"\n kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"toggleFiltersHelp(); $event.stopPropagation()\"\n title=\"Show/hide SQL filters help\"\n style=\"margin-right: 8px;\">\n <i class=\"fa-solid fa-question-circle\"></i>\n <span style=\"margin-left: 4px;\">Filters Help</span>\n <i class=\"fa-solid\" [ngClass]=\"showFiltersHelp ? 'fa-chevron-up' : 'fa-chevron-down'\" style=\"margin-left: 4px;\"></i>\n </button>\n </span>\n </ng-template>\n\n <div style=\"display: flex; flex-direction: column;\">\n <!-- Code Editor -->\n <mj-code-editor #sqlEditor\n (change)=\"onSQLChange($event)\"\n [language]=\"'sql'\"\n style=\"flex: 1; height: 400px; border: 1px solid #ced4da; border-radius: 4px;\">\n </mj-code-editor>\n\n <!-- SQL Filters Help (Below Editor) -->\n @if (showFiltersHelp) {\n <div class=\"filters-help\" style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px; padding: 16px; margin-top: 16px;\">\n <h6 style=\"margin: 0 0 12px 0; color: #495057; font-weight: 600;\">\n <i class=\"fa-solid fa-filter\"></i> Available SQL Filters for Parameterized Queries\n </h6>\n\n <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px;\">\n @for (filter of sqlFilters; track filter.name) {\n <div class=\"filter-card\" style=\"background: white; border: 1px solid #e9ecef; border-radius: 4px; padding: 12px;\">\n <div style=\"font-family: 'Courier New', monospace; font-weight: bold; color: #007bff; margin-bottom: 4px;\">\n {{ filter.name }}\n </div>\n <div style=\"font-size: 0.85em; color: #495057; margin-bottom: 8px;\">\n {{ filter.description }}\n </div>\n <div style=\"font-family: 'Courier New', monospace; font-size: 0.8em; background: #f1f3f4; padding: 6px; border-radius: 3px; margin-bottom: 4px;\">\n {{ filter.exampleSyntax }}\n </div>\n @if (filter.notes) {\n <div style=\"font-size: 0.75em; color: #6c757d; font-style: italic;\">\n {{ filter.notes }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Parameters Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"parametersPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sliders\" style=\"color: #6c757d;\"></i>\n Query Parameters\n @if (queryParameters.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryParameters.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingParameters) {\n <div style=\"display: flex; align-items: center; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Loading parameters...</span>\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-param-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Parameter\n </button>\n }\n </div>\n } @else {\n <!-- Parameters Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addParameter()\">\n <i class=\"fa-solid fa-plus\"></i> Add Parameter\n </button>\n </div>\n }\n\n <!-- Parameters Grid -->\n <div class=\"parameters-grid\">\n @for (param of queryParameters; track param.ID || $index) {\n <div class=\"param-card\" [class.required]=\"param.IsRequired\" (click)=\"editParameter(param)\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-at\" style=\"color: #007bff;\"></i>\n {{ param.Name }}\n </div>\n <div class=\"param-badges\">\n @if (param.IsRequired) {\n <span class=\"param-badge required\">Required</span>\n }\n </div>\n </div>\n\n <div class=\"param-card-body\">\n @if (param.Description) {\n <div style=\"margin-bottom: 8px;\">{{ param.Description }}</div>\n }\n\n <div style=\"display: flex; gap: 16px; font-size: 0.85em;\">\n <div>\n <strong>Type:</strong> {{ param.Type || 'Text' }}\n </div>\n @if (param.DefaultValue) {\n <div>\n <strong>Default:</strong>\n <code style=\"background: #f1f3f4; padding: 2px 4px; border-radius: 3px;\">\n {{ param.DefaultValue }}\n </code>\n </div>\n }\n </div>\n </div>\n\n @if (EditMode) {\n <div class=\"param-actions\" (click)=\"$event.stopPropagation()\">\n <button type=\"button\" class=\"param-action-btn\" (click)=\"editParameter(param)\" title=\"Edit parameter\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button type=\"button\" class=\"param-action-btn delete\" (click)=\"deleteParameter(param)\" title=\"Delete parameter\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Query Fields Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"fieldsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-table\" style=\"color: #6c757d;\"></i>\n Query Fields\n @if (queryFields.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryFields.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingFields) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryFields.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-table\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Fields Defined</h5>\n <div style=\"color: #adb5bd; margin-bottom: 16px;\">\n Define output fields for your query results.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Field\n </button>\n }\n </div>\n } @else {\n <!-- Fields Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addField()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n </div>\n }\n\n <!-- Fields Grid -->\n <div class=\"parameters-grid\">\n @for (field of queryFields; track field.ID) {\n <div class=\"param-card\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-columns\" style=\"color: #17a2b8;\"></i>\n {{ field.Name }}\n </div>\n <div class=\"param-badges\">\n <span class=\"param-badge\" style=\"background: #e3f2fd; color: #1976d2;\">{{ field.SQLBaseType }}</span>\n @if (field.Sequence) {\n <span class=\"param-badge\" style=\"background: #f3e5f5; color: #7b1fa2;\">#{{ field.Sequence }}</span>\n }\n </div>\n </div>\n\n <div class=\"param-card-body\">\n @if (field.Description) {\n <div class=\"param-description\">{{ field.Description }}</div>\n }\n <div class=\"param-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-code\"></i> {{ field.SQLFullType || field.SQLBaseType }}\n </span>\n </div>\n </div>\n\n @if (EditMode) {\n <div class=\"param-card-actions\">\n <button type=\"button\" class=\"action-btn danger\" (click)=\"deleteField(field)\" title=\"Delete field\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Query Entities Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"entitiesPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-database\" style=\"color: #6c757d;\"></i>\n Query Entities\n @if (queryEntities.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ queryEntities.length }}\n </span>\n }\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingEntities) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryEntities.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Entities Tracked</h5>\n <div style=\"color: #adb5bd; margin-bottom: 16px;\">\n Track which entities this query uses for documentation.\n </div>\n @if (EditMode) {\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add First Entity\n </button>\n }\n </div>\n } @else {\n <!-- Entities Header with Add Button -->\n @if (EditMode) {\n <div style=\"display: flex; justify-content: flex-end; margin-bottom: 16px; padding: 0 20px;\">\n <button type=\"button\" class=\"add-param-btn\" (click)=\"addEntity()\">\n <i class=\"fa-solid fa-plus\"></i> Add Entity\n </button>\n </div>\n }\n\n <!-- Entities Grid -->\n <div class=\"parameters-grid\">\n @for (entity of queryEntities; track entity.ID) {\n <div class=\"param-card\">\n <div class=\"param-card-header\">\n <div class=\"param-name\">\n <i class=\"fa-solid fa-table\" style=\"color: #28a745;\"></i>\n {{ entity.Entity || 'Select Entity...' }}\n </div>\n @if (EditMode) {\n <div style=\"flex: 1; margin-left: 12px;\">\n <kendo-dropdownlist\n [(ngModel)]=\"entity.EntityID\"\n [name]=\"'entity_' + entity.ID\"\n [data]=\"getEntityOptions()\"\n textField=\"text\"\n valueField=\"id\"\n [valuePrimitive]=\"true\"\n placeholder=\"Select entity...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n </div>\n }\n </div>\n\n @if (!EditMode && entity.Entity) {\n <div class=\"param-card-body\">\n <div class=\"param-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-database\"></i> Data Source\n </span>\n </div>\n </div>\n }\n\n @if (EditMode) {\n <div class=\"param-card-actions\">\n <button type=\"button\" class=\"action-btn danger\" (click)=\"deleteEntity(entity)\" title=\"Delete entity\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n\n <!-- Details Panel -->\n <kendo-expansionpanel\n [(expanded)]=\"detailsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-info-circle\" style=\"color: #6c757d;\"></i>\n Query Details\n </span>\n </ng-template>\n\n <div style=\"padding: 20px;\">\n <div class=\"details-grid\">\n <!-- Uses Template -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-file-code\"></i> Template Usage\n </label>\n @if (EditMode) {\n <kendo-switch [(ngModel)]=\"record.UsesTemplate\" name=\"usesTemplate\"></kendo-switch>\n } @else {\n <div class=\"detail-value\">\n @if (record.UsesTemplate) {\n <span style=\"color: #28a745;\"><i class=\"fa-solid fa-check\"></i> Uses Templates</span>\n } @else {\n <span style=\"color: #6c757d;\"><i class=\"fa-solid fa-times\"></i> No Templates</span>\n }\n </div>\n }\n </div>\n\n <!-- Created Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-plus\"></i> Created\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_CreatedAt) }}</div>\n </div>\n\n <!-- Updated Date -->\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-calendar-check\"></i> Last Updated\n </label>\n <div class=\"detail-value\">{{ formatDate(record.__mj_UpdatedAt) }}</div>\n </div>\n\n <!-- Quality Rank -->\n @if (record.QualityRank != null) {\n <div class=\"detail-item\">\n <label class=\"detail-label\">\n <i class=\"fa-solid fa-star\"></i> Quality Rank\n </label>\n <div class=\"detail-value\">{{ record.QualityRank }}/10</div>\n </div>\n }\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Permissions Panel -->\n @if (record.IsSaved) {\n <kendo-expansionpanel\n [(expanded)]=\"permissionsPanelExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-shield-alt\" style=\"color: #6c757d;\"></i>\n Query Permissions\n </span>\n </ng-template>\n\n <div style=\"padding: 16px 0;\">\n @if (isLoadingPermissions) {\n <div style=\"display: flex; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 2em; color: #007bff;\"></i>\n </div>\n } @else {\n @if (queryPermissions.length === 0 && !EditMode) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-shield-alt\" style=\"font-size: 3em; color: #dee2e6; margin-bottom: 12px;\"></i>\n <h5 style=\"color: #6c757d; margin-bottom: 8px;\">No Permissions Set</h5>\n <div style=\"color: #adb5bd;\">\n This query uses default permissions.\n </div>\n </div>\n } @else {\n @if (EditMode) {\n <!-- Edit Mode: Use the standard grid -->\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 <!-- Read Mode: Nice card-based display -->\n <div class=\"permissions-display\">\n @for (permission of queryPermissions; track permission.ID) {\n <div class=\"permission-card\" style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 8px; padding: 16px; margin-bottom: 12px;\">\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <i class=\"fa-solid fa-users\" style=\"font-size: 1.5em; color: #6c757d;\"></i>\n <div style=\"flex: 1;\">\n <div style=\"font-weight: 600; color: #495057;\">\n {{ permission.Role }}\n </div>\n <div style=\"font-size: 0.85em; color: #6c757d;\">\n Role Permission\n </div>\n </div>\n <div style=\"display: flex; gap: 8px;\">\n <span class=\"permission-badge\" style=\"background: #6f42c1; color: white; padding: 4px 8px; border-radius: 4px; font-size: 0.8em;\">\n <i class=\"fa-solid fa-play\"></i> Can Execute\n </span>\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n }\n </div>\n </kendo-expansionpanel>\n }\n </div>\n </form>\n\n <!-- Query Run Dialog -->\n <mj-query-run-dialog\n [query]=\"record\"\n [parameters]=\"queryParameters\"\n [(isVisible)]=\"showRunDialog\"\n (onClose)=\"onRunDialogClose()\">\n </mj-query-run-dialog>\n\n <!-- Category Creation Dialog -->\n <mj-query-category-dialog\n [(isVisible)]=\"showCategoryDialog\"\n (onCategoryCreated)=\"onCategoryCreated($event)\">\n </mj-query-category-dialog>\n }\n</div>"]}
|
|
@@ -208,6 +208,10 @@ export declare class MJTestSuiteFormComponentExtended extends MJTestSuiteFormCom
|
|
|
208
208
|
* Toggle keyboard shortcuts visibility and save preference
|
|
209
209
|
*/
|
|
210
210
|
toggleShortcuts(): Promise<void>;
|
|
211
|
+
/** Case-insensitive UUID check whether a run is the currently selected Run A (baseline). */
|
|
212
|
+
IsCompareRunA(run: MJTestSuiteRunEntity): boolean;
|
|
213
|
+
/** Case-insensitive UUID check whether a run is the currently selected Run B (compare). */
|
|
214
|
+
IsCompareRunB(run: MJTestSuiteRunEntity): boolean;
|
|
211
215
|
static ɵfac: i0.ɵɵFactoryDeclaration<MJTestSuiteFormComponentExtended, never>;
|
|
212
216
|
static ɵcmp: i0.ɵɵComponentDeclaration<MJTestSuiteFormComponentExtended, "mj-test-suite-form", never, {}, {}, never, never, false, never>;
|
|
213
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-suite-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Tests/test-suite-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAyC,aAAa,EAA+B,UAAU,EAAU,MAAM,eAAe,CAAC;AAKpK,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,eAAe,EAAgE,MAAM,+BAA+B,CAAC;AAK9L,OAAO,EAAE,wBAAwB,EAAE,MAAM,iEAAiE,CAAC;AAC3G,OAAO,EAGL,iBAAiB,EAEjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;;AAKpC,qBAQa,gCAAiC,SAAQ,wBAAyB,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IACxG,MAAM,EAAG,iBAAiB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAuB;IAGvC,SAAS,SAAc;IACvB,OAAO,UAAS;IAChB,YAAY,UAAS;IACrB,WAAW,UAAS;IACpB,gBAAgB,UAAS;IACzB,cAAc,UAAS;IACvB,WAAW,UAAS;IACpB,UAAU,UAAS;IACnB,eAAe,UAAS;IACxB,YAAY,UAAS;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,UAAU,EAAE,qBAAqB,EAAE,CAAM;IACzC,SAAS,EAAE,oBAAoB,EAAE,CAAM;IAGvC,aAAa,EAAE,kBAAkB,EAAE,CAAM;IACzC,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,kBAAkB,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAS;IACzD,aAAa,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAa;IAC1D,UAAU,EAAE,eAAe,EAAE,CAAM;IACnC,aAAa,UAAS;IACtB,YAAY,UAAS;IAGQ,cAAc,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzE,OAAO,CAAC,aAAa,CAAS;IAG9B,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IAChD,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IAChD,cAAc,EAAE,iBAAiB,EAAE,CAAM;IACzC,gBAAgB,EAAE,eAAe,EAAE,CAAM;IACzC,gBAAgB,EAAE,eAAe,EAAE,CAAM;IAGzC,wBAAwB,UAAQ;IAChC,aAAa,UAAS;IACtB,OAAO,CAAC,sBAAsB,CAAoC;IAClE,OAAO,CAAC,QAAQ,CAAkB;IAGlC,eAAe,EAAE,qBAAqB,CAA6D;IAGnG,gBAAgB,UAAS;IAGzB,YAAY,EAAE,UAAU,GAAG,MAAM,CAAc;IAC/C,aAAa,UAAQ;IAGrB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,gBAAgB,SAAM;IACtB,OAAO,CAAC,oBAAoB,CAAyB;IAGrD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,oBAAoB,CAAgC;IAC5D,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAA8B;IAE1C,QAAQ;IA6Bd,eAAe;IAIf,WAAW;IAOX,sBAAsB,CAAC,KAAK,EAAE,aAAa;IA6B3C,SAAS,CAAC,GAAG,EAAE,MAAM;YAQP,SAAS;YAyBT,QAAQ;IA0BtB,cAAc,IAAI,MAAM;IASxB,cAAc,IAAI,MAAM;IAIxB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWzC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAcxC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM;IAgBnD,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM;IAO9C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAIvB,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,0BAA0B,IAAI,IAAI;IAO5B,QAAQ;IAMR,OAAO;YA4CC,aAAa;IAyC3B,OAAO,CAAC,cAAc;IAmBtB,wBAAwB,IAAI,kBAAkB,EAAE;IA+BhD,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;IAShD;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAoBlC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInC,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO;IAYrD;;OAEG;IACH,OAAO,CAAC,gBAAgB;YAKV,cAAc;IA4F5B;;;OAGG;YACW,wBAAwB;IAiCtC,wBAAwB,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE;IAoCpF;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAU5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKvC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAMzB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAMzE,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM;IAazD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAaxC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAShE;;OAEG;IACH,YAAY,IAAI,MAAM;IAYtB;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;IAQ/C;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;IAI9C;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI;IAYnD;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;IAQ9C;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI;IAYlD;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;IAQ7C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAWpE;;;OAGG;IACH,OAAO,CAAC,WAAW;IAihBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgHzB,kBAAkB,IAAI,MAAM;IAM5B,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,MAAM;IAM5B,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI;QAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAiB1E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAYvC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU1B,iBAAiB,CAAC,GAAG,EAAE,oBAAoB;IAK3C,iBAAiB,CAAC,GAAG,EAAE,oBAAoB;IAKjD,qBAAqB;YASP,eAAe;IA2C7B,OAAO,CAAC,sBAAsB;IA8C9B,sBAAsB,IAAI,MAAM,GAAG,IAAI;IAOvC,sBAAsB,IAAI,MAAM,GAAG,IAAI;IAOvC,yBAAyB,IAAI,MAAM;IAKnC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAOnC,uBAAuB,IAAI,MAAM;IAOjC,wBAAwB,IAAI,MAAM;IAW5B,aAAa;IAgCnB,OAAO,CAAC,aAAa;IA2BrB,UAAU,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAI/C;;OAEG;IACH,iBAAiB;IAqDjB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"test-suite-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Tests/test-suite-form.component.ts"],"names":[],"mappings":"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"}
|