@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.1
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/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- 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 +80 -16
- 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 +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +794 -262
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- 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 +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- 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 +145 -45
- 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 +71 -17
- 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 +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +686 -238
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +209 -28
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +494 -138
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +429 -109
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +110 -4
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +858 -86
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +142 -17
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +333 -113
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +217 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +549 -169
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +390 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1015 -343
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +2 -2
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- 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 +446 -138
- 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-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- 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 +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +59 -51
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +155 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +133 -14
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +322 -124
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +43 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-run-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-run-dialog.component.ts","../../../../src/lib/custom/Queries/query-run-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, inject } from '@angular/core';\nimport { MJQueryEntity, MJQueryParameterEntity } from '@memberjunction/core-entities';\nimport { GraphQLDataProvider } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { Metadata } from '@memberjunction/core';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\ninterface QueryRunResult {\n QueryID: string;\n QueryName: string;\n Success: boolean;\n Results: string; // This is a JSON string that needs to be parsed\n ErrorMessage: string;\n RowCount: number;\n TotalRowCount: number;\n ExecutionTime: number;\n AppliedParameters?: string; // JSON string of applied parameters\n}\n\ninterface ParameterPair {\n name: string;\n value: string;\n type: string;\n defaultValue: string;\n description: string;\n isRequired: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-query-run-dialog',\n templateUrl: './query-run-dialog.component.html',\n styleUrls: ['./query-run-dialog.component.css']\n})\nexport class QueryRunDialogComponent extends BaseAngularComponent implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n\n @Input() query: MJQueryEntity | null = null;\n @Input() parameters: MJQueryParameterEntity[] = [];\n @Input() isVisible = false;\n @Output() isVisibleChange = new EventEmitter<boolean>();\n @Output() onClose = new EventEmitter<void>();\n\n public isRunning = false;\n public isLoadingParams = false;\n public parameterPairs: ParameterPair[] = [];\n public parametersExpanded = true;\n public resultsExpanded = true;\n public paginationExpanded = false;\n public runResult: QueryRunResult | null = null;\n public resultColumns: any[] = [];\n public resultRows: any[] = [];\n public selectedRows: any[] = [];\n public maxRows: number | null = null;\n public startRow: number = 0;\n\n ngOnInit() {\n this.initializeParameters();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['isVisible'] && changes['isVisible'].currentValue) {\n this.initializeParameters();\n }\n if (changes['parameters']) {\n this.initializeParameters();\n }\n }\n\n private initializeParameters() {\n if (!this.query || !this.parameters) return;\n\n // Create parameter pairs from defined query parameters only\n this.parameterPairs = this.parameters.map(param => ({\n name: param.Name,\n value: param.DefaultValue || '',\n type: param.Type || 'string',\n defaultValue: param.DefaultValue || '',\n description: param.Description || '',\n isRequired: param.IsRequired || false\n }));\n }\n\n getValueListOptions(valueList: string): Array<{text: string, value: string}> {\n if (!valueList) return [];\n \n try {\n const options = valueList.split(',').map(v => v.trim());\n return options.map(opt => ({ text: opt, value: opt }));\n } catch {\n return [];\n }\n }\n\n isParameterValid(param: ParameterPair): boolean {\n if (param.isRequired && !param.value) {\n return false;\n }\n \n // Additional type-specific validation could go here\n if (param.type === 'number' && param.value) {\n return !isNaN(Number(param.value));\n }\n \n return true;\n }\n\n async runQuery(isPaginationRequest: boolean = false) {\n if (!this.query?.ID) return;\n\n // Validate required parameters\n const invalidParams = this.parameterPairs.filter(p => p.isRequired && !p.value);\n if (invalidParams.length > 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Required parameters missing: ${invalidParams.map(p => p.name).join(', ')}`,\n 'warning',\n 3000\n );\n return;\n }\n\n this.isRunning = true;\n this.runResult = null;\n\n try {\n // Build parameters object\n const queryParameters: Record<string, any> = {};\n this.parameterPairs.forEach(param => {\n if (param.value) {\n try {\n // Try to parse as JSON first, fallback to string\n queryParameters[param.name] = JSON.parse(param.value);\n } catch {\n // If JSON parsing fails, treat as string or number based on type\n if (param.type === 'number') {\n queryParameters[param.name] = Number(param.value);\n } else {\n queryParameters[param.name] = param.value;\n }\n }\n }\n });\n\n // Get GraphQL data provider\n const dataProvider = this.ProviderToUse as GraphQLDataProvider;\n \n // Execute the GetQueryData GraphQL query\n const query = `\n query GetQueryData($QueryID: String!, $Parameters: JSONObject, $MaxRows: Int, $StartRow: Int) {\n GetQueryData(QueryID: $QueryID, Parameters: $Parameters, MaxRows: $MaxRows, StartRow: $StartRow) {\n QueryID\n QueryName\n Success\n Results\n ErrorMessage\n RowCount\n TotalRowCount\n ExecutionTime\n AppliedParameters\n }\n }\n `;\n\n const variables: any = {\n QueryID: this.query.ID,\n Parameters: queryParameters\n };\n \n // Only include MaxRows if it's set\n if (this.maxRows && this.maxRows > 0) {\n variables.MaxRows = this.maxRows;\n }\n \n // Only include StartRow if it's set and greater than 0\n if (this.startRow && this.startRow > 0) {\n variables.StartRow = this.startRow;\n }\n\n console.log('Executing query with variables:', variables);\n \n const response = await dataProvider.ExecuteGQL(\n query, \n variables\n ) as {GetQueryData: QueryRunResult};\n\n if (response?.GetQueryData) {\n this.runResult = response.GetQueryData;\n \n if (this.runResult.Success && this.runResult.Results) {\n // Parse the JSON string results\n try {\n const parsedResults = JSON.parse(this.runResult.Results);\n this.processResults(parsedResults);\n // Only show notification on first run (not pagination)\n if (!isPaginationRequest) {\n const rowCountMsg = this.runResult.TotalRowCount > this.runResult.RowCount\n ? `Query executed successfully. Showing ${this.runResult.RowCount} of ${this.runResult.TotalRowCount} total rows.`\n : `Query executed successfully. ${this.runResult.RowCount} rows returned.`;\n MJNotificationService.Instance.CreateSimpleNotification(\n rowCountMsg,\n 'success',\n 3000\n );\n }\n \n // Automatically expand results and collapse other sections\n this.parametersExpanded = false;\n this.paginationExpanded = false;\n this.resultsExpanded = true;\n } catch (error) {\n console.error('Error parsing results:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to parse query results',\n 'error',\n 3000\n );\n }\n } else {\n console.error('Query execution failed:', this.runResult);\n MJNotificationService.Instance.CreateSimpleNotification(\n this.runResult?.ErrorMessage || 'Query execution failed',\n 'error',\n 3000\n );\n \n // Expand results section to show error\n this.parametersExpanded = false;\n this.paginationExpanded = false;\n this.resultsExpanded = true;\n }\n } else {\n throw new Error('No response from server');\n }\n } catch (error) {\n console.error('Error running query:', error);\n this.runResult = {\n QueryID: this.query.ID,\n QueryName: this.query.Name,\n Success: false,\n Results: '[]',\n ErrorMessage: error instanceof Error ? error.message : 'Unknown error occurred',\n RowCount: 0,\n TotalRowCount: 0,\n ExecutionTime: 0\n };\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to execute query. Please check your parameters and try again.',\n 'error',\n 3000\n );\n } finally {\n this.isRunning = false;\n this.cdr.detectChanges();\n }\n }\n\n private processResults(results: any[]) {\n if (!results || results.length === 0) {\n this.resultColumns = [];\n this.resultRows = [];\n return;\n }\n\n // Extract columns from first row\n const firstRow = results[0];\n this.resultColumns = Object.keys(firstRow).map(key => ({\n field: key,\n title: this.formatColumnTitle(key),\n width: this.calculateColumnWidth(key, results)\n }));\n\n // Set rows\n this.resultRows = results;\n }\n\n private formatColumnTitle(field: string): string {\n // Convert camelCase or snake_case to Title Case\n return field\n .replace(/([A-Z])/g, ' $1')\n .replace(/_/g, ' ')\n .replace(/^\\s+/, '')\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n }\n\n private calculateColumnWidth(field: string, data: any[]): number {\n // Calculate appropriate column width based on content\n const maxLength = Math.max(\n field.length,\n ...data.slice(0, 10).map(row => String(row[field] || '').length)\n );\n return Math.min(Math.max(maxLength * 10, 100), 300);\n }\n\n exportToCSV() {\n if (!this.resultRows || this.resultRows.length === 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'No data to export',\n 'warning',\n 3000\n );\n return;\n }\n\n // Create CSV content\n const headers = this.resultColumns.map(col => col.title).join(',');\n const rows = this.resultRows.map(row =>\n this.resultColumns.map(col => {\n const value = row[col.field];\n // Escape values containing commas or quotes\n if (typeof value === 'string' && (value.includes(',') || value.includes('\"'))) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n }).join(',')\n );\n\n const csv = [headers, ...rows].join('\\n');\n\n // Create and download file\n const blob = new Blob([csv], { type: 'text/csv' });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${this.query?.Name || 'query'}_results_${new Date().toISOString().slice(0, 10)}.csv`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Results exported to CSV',\n 'success',\n 3000\n );\n }\n\n async copyToClipboard() {\n if (!this.resultRows || this.resultRows.length === 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'No data to copy',\n 'warning',\n 3000\n );\n return;\n }\n\n try {\n // Create tab-delimited content for pasting into Excel\n const headers = this.resultColumns.map(col => col.title).join('\\t');\n const rows = this.resultRows.map(row =>\n this.resultColumns.map(col => row[col.field] || '').join('\\t')\n );\n\n const content = [headers, ...rows].join('\\n');\n await navigator.clipboard.writeText(content);\n\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Results copied to clipboard',\n 'success',\n 3000\n );\n } catch (error) {\n console.error('Failed to copy to clipboard:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to copy to clipboard',\n 'error',\n 3000\n );\n }\n }\n\n close() {\n this.isVisible = false;\n this.isVisibleChange.emit(false);\n this.onClose.emit();\n \n // Reset state\n this.runResult = null;\n this.resultColumns = [];\n this.resultRows = [];\n this.selectedRows = [];\n this.startRow = 0;\n }\n\n getAppliedParametersCount(): number {\n return this.parameterPairs.filter(p => p.value).length;\n }\n \n hasInvalidParameters(): boolean {\n return this.parameterPairs.some(p => !this.isParameterValid(p));\n }\n \n // Pagination methods\n goToFirstPage() {\n this.startRow = 0;\n this.runQuery(true);\n }\n \n goToPreviousPage() {\n if (this.startRow > 0 && this.maxRows) {\n this.startRow = Math.max(0, this.startRow - this.maxRows);\n this.runQuery(true);\n }\n }\n \n goToNextPage() {\n if (this.maxRows && this.runResult && this.startRow + this.runResult.RowCount < this.runResult.TotalRowCount) {\n this.startRow += this.maxRows;\n this.runQuery(true);\n }\n }\n \n goToLastPage() {\n if (this.maxRows && this.runResult) {\n const totalPages = Math.ceil(this.runResult.TotalRowCount / this.maxRows);\n this.startRow = (totalPages - 1) * this.maxRows;\n this.runQuery(true);\n }\n }\n}","@if (isVisible) {\n <mj-dialog\n [Visible]=\"true\"\n [Width]=\"900\"\n (Close)=\"close()\">\n <mj-dialog-titlebar>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <i class=\"fa-solid fa-play-circle\" style=\"color: var(--mj-brand-primary);\"></i>\n Run Query: {{ query?.Name || 'Untitled' }}\n </div>\n </mj-dialog-titlebar>\n <div style=\"display: flex; flex-direction: column; height: 100%; overflow-y: auto; overflow-x: hidden;\">\n @if (isLoadingParams) {\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: var(--mj-text-muted); margin-right: 12px;\"></i>\n <span style=\"color: var(--mj-text-muted);\">Loading query parameters...</span>\n </div>\n } @else {\n <!-- Query Parameters Section -->\n @if (parameterPairs.length > 0) {\n <mj-accordion-panel\n [(Expanded)]=\"parametersExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sliders\" style=\"color: var(--mj-text-muted);\"></i>\n Query Parameters\n <span style=\"background: var(--mj-status-info); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ parameterPairs.length }}\n </span>\n </span>\n </ng-template>\n <div style=\"padding: 12px 0;\">\n <div style=\"margin-bottom: 12px; color: var(--mj-text-muted); font-size: 0.85em;\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Configure parameter values for query execution.\n </div>\n <!-- Parameters List -->\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n @for (param of parameterPairs; track param.name) {\n <div style=\"background: var(--mj-bg-surface-sunken); border: 1px solid var(--mj-border-default); border-radius: 6px; padding: 16px;\">\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px;\">\n <div>\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-at\" style=\"color: var(--mj-brand-primary);\"></i>\n {{ param.name }}\n @if (param.isRequired) {\n <span style=\"color: #dc3545;\">*</span>\n }\n </label>\n @if (param.description) {\n <div style=\"font-size: 0.85em; color: var(--mj-text-muted); margin-top: 4px;\">\n {{ param.description }}\n </div>\n }\n </div>\n <div style=\"display: flex; gap: 8px; align-items: center;\">\n <span class=\"badge\" style=\"background: var(--mj-text-muted); color: white; padding: 2px 6px; border-radius: 4px; font-size: 0.75em;\">\n {{ param.type }}\n </span>\n @if (!isParameterValid(param)) {\n <i class=\"fa-solid fa-exclamation-triangle\" style=\"color: #dc3545;\" title=\"Required parameter is empty\"></i>\n }\n </div>\n </div>\n <!-- Parameter Value Input -->\n @if (param.type === 'number') {\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"param.value\"\n placeholder=\"Enter number value...\"\n style=\"width: 100%;\" />\n } @else {\n <textarea class=\"mj-input\"\n [(ngModel)]=\"param.value\"\n rows=\"2\"\n placeholder=\"Enter value (JSON, string, or number)...\"\n style=\"width: 100%; font-family: 'Courier New', monospace;\">\n </textarea>\n }\n @if (param.defaultValue) {\n <div style=\"font-size: 0.8em; color: var(--mj-text-muted); margin-top: 4px;\">\n Default: <code style=\"background: var(--mj-bg-surface-sunken); padding: 2px 4px; border-radius: 3px;\">{{ param.defaultValue }}</code>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n } @else {\n <div style=\"padding: 20px; background: var(--mj-bg-surface-sunken); border-radius: 6px; margin-bottom: 16px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-info-circle\"></i> This query has no parameters.\n </div>\n }\n <!-- Pagination Settings -->\n <mj-accordion-panel\n [(Expanded)]=\"paginationExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-table-list\" style=\"color: var(--mj-text-muted);\"></i>\n Pagination Settings\n @if (maxRows && maxRows > 0) {\n <span style=\"background: var(--mj-text-muted); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ maxRows }} rows/page\n </span>\n }\n </span>\n </ng-template>\n <div style=\"padding: 12px 0;\">\n <div style=\"display: flex; flex-direction: column; gap: 12px;\">\n <!-- Max Rows -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); white-space: nowrap; min-width: 100px;\">\n <i class=\"fa-solid fa-list-ol\" style=\"color: var(--mj-text-muted); margin-right: 6px;\"></i>\n Max Rows:\n </label>\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"maxRows\"\n min=\"1\"\n step=\"100\"\n placeholder=\"All rows\"\n style=\"width: 150px;\" />\n <span style=\"font-size: 0.85em; color: var(--mj-text-muted);\">\n Leave empty to return all rows\n </span>\n </div>\n <!-- Start Row -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); white-space: nowrap; min-width: 100px;\">\n <i class=\"fa-solid fa-forward\" style=\"color: var(--mj-text-muted); margin-right: 6px;\"></i>\n Start Row:\n </label>\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"startRow\"\n min=\"0\"\n step=\"1\"\n placeholder=\"0\"\n style=\"width: 150px;\" />\n <span style=\"font-size: 0.85em; color: var(--mj-text-muted);\">\n 0-based offset for pagination\n </span>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Results Section -->\n @if (runResult) {\n <mj-accordion-panel\n [(Expanded)]=\"resultsExpanded\"\n style=\"flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n @if (runResult.Success) {\n <i class=\"fa-solid fa-table\" style=\"color: var(--mj-status-success);\"></i>\n Query Results\n <span style=\"background: var(--mj-status-success); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ runResult.RowCount }} rows@if (runResult.TotalRowCount > runResult.RowCount) { of {{ runResult.TotalRowCount }} total}\n </span>\n @if (runResult.ExecutionTime) {\n <span style=\"color: var(--mj-text-muted); font-size: 0.85em; font-weight: normal;\">— {{ runResult.ExecutionTime }}ms</span>\n }\n } @else {\n <i class=\"fa-solid fa-exclamation-circle\" style=\"color: var(--mj-status-error);\"></i>\n Query Results — Error\n }\n </span>\n </ng-template>\n <div style=\"flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0;\">\n @if (runResult.Success) {\n @if (resultRows.length > 0) {\n <!-- Export and Pagination Controls -->\n <div style=\"display: flex; justify-content: space-between; align-items: center; padding: 12px; border-bottom: 1px solid var(--mj-border-default);\">\n <!-- Pagination Info and Controls -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n @if (runResult.TotalRowCount > runResult.RowCount || startRow > 0) {\n <span style=\"font-size: 0.9em; color: var(--mj-text-muted);\">\n Showing rows {{ startRow + 1 }} - {{ startRow + runResult.RowCount }} of {{ runResult.TotalRowCount }}\n </span>\n <div style=\"display: flex; gap: 4px;\">\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow === 0\"\n (click)=\"goToFirstPage()\"\n title=\"First page\">\n <i class=\"fa-solid fa-angles-left\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow === 0\"\n (click)=\"goToPreviousPage()\"\n title=\"Previous page\">\n <i class=\"fa-solid fa-angle-left\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow + runResult.RowCount >= runResult.TotalRowCount\"\n (click)=\"goToNextPage()\"\n title=\"Next page\">\n <i class=\"fa-solid fa-angle-right\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow + runResult.RowCount >= runResult.TotalRowCount\"\n (click)=\"goToLastPage()\"\n title=\"Last page\">\n <i class=\"fa-solid fa-angles-right\"></i>\n </button>\n </div>\n }\n </div>\n <!-- Export Buttons -->\n <div style=\"display: flex; gap: 8px;\">\n <button mjButton\n variant=\"flat\"\n (click)=\"copyToClipboard()\"\n title=\"Copy to clipboard\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n (click)=\"exportToCSV()\"\n title=\"Export to CSV\">\n <i class=\"fa-solid fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n <!-- Results Grid -->\n <div class=\"results-table-container\" style=\"flex: 1; overflow: auto; border: 1px solid var(--mj-border-default); border-radius: 4px; min-height: 0;\">\n <table class=\"results-table\" style=\"width: 100%; border-collapse: collapse; font-size: 14px;\">\n <thead style=\"position: sticky; top: 0; background: var(--mj-bg-surface-sunken); z-index: 10;\">\n <tr>\n @for (col of resultColumns; track col.field) {\n <th style=\"padding: 12px 16px; text-align: left; font-weight: 600; color: var(--mj-text-secondary); border-bottom: 2px solid var(--mj-border-default); background: var(--mj-bg-surface-sunken); white-space: nowrap;\">\n {{ col.title }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of resultRows; track $index) {\n <tr style=\"border-bottom: 1px solid var(--mj-border-default); transition: background-color 0.2s;\">\n @for (col of resultColumns; track col.field) {\n <td style=\"padding: 10px 16px; color: var(--mj-text-primary); max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\"\n [title]=\"row[col.field]\">\n {{ row[col.field] || '' }}\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n @if (resultRows.length === 0) {\n <div style=\"padding: 40px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-table\" style=\"font-size: 48px; margin-bottom: 12px; opacity: 0.3;\"></i>\n <p>No data in results</p>\n </div>\n }\n </div>\n } @else {\n <div style=\"display: flex; align-items: center; justify-content: center; height: 200px; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-inbox\" style=\"font-size: 48px; margin-bottom: 12px;\"></i>\n <p>No results returned</p>\n </div>\n }\n } @else {\n <mj-alert Variant=\"error\" Title=\"Query execution failed\">\n @if (runResult.ErrorMessage) {\n <div style=\"margin-top: 8px; font-family: 'Courier New', monospace; font-size: 0.9em;\">\n {{ runResult.ErrorMessage }}\n </div>\n }\n </mj-alert>\n }\n </div>\n </mj-accordion-panel>\n }\n }\n </div>\n <mj-dialog-actions>\n @if (!runResult) {\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button mjButton\n variant=\"primary\"\n [disabled]=\"isRunning || hasInvalidParameters()\"\n (click)=\"runQuery()\">\n @if (isRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run Query\n }\n </button>\n } @else {\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Close\n </button>\n <button mjButton\n variant=\"primary\"\n [disabled]=\"isRunning\"\n (click)=\"runQuery()\">\n <i class=\"fa-solid fa-refresh\"></i> Run Again\n </button>\n }\n </mj-dialog-actions>\n </mj-dialog>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"query-run-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-run-dialog.component.ts","../../../../src/lib/custom/Queries/query-run-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, inject } from '@angular/core';\nimport { MJQueryEntity, MJQueryParameterEntity } from '@memberjunction/core-entities';\nimport { GraphQLDataProvider } from '@memberjunction/graphql-dataprovider';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { Metadata } from '@memberjunction/core';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\ninterface QueryRunResult {\n QueryID: string;\n QueryName: string;\n Success: boolean;\n Results: string; // This is a JSON string that needs to be parsed\n ErrorMessage: string;\n RowCount: number;\n TotalRowCount: number;\n ExecutionTime: number;\n AppliedParameters?: string; // JSON string of applied parameters\n}\n\ninterface ParameterPair {\n name: string;\n value: string;\n type: string;\n defaultValue: string;\n description: string;\n isRequired: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-query-run-dialog',\n templateUrl: './query-run-dialog.component.html',\n styleUrls: ['./query-run-dialog.component.css']\n})\nexport class QueryRunDialogComponent extends BaseAngularComponent implements OnInit, OnChanges {\n private cdr = inject(ChangeDetectorRef);\n\n @Input() query: MJQueryEntity | null = null;\n @Input() parameters: MJQueryParameterEntity[] = [];\n @Input() IsVisible = false;\n\n /** @deprecated Use {@link IsVisible}. */\n @Input() set isVisible(value: QueryRunDialogComponent['IsVisible']) {\n this.IsVisible = value;\n }\n /** @deprecated Use {@link IsVisible}. */\n get isVisible(): QueryRunDialogComponent['IsVisible'] {\n return this.IsVisible;\n }\n @Output() IsVisibleChange = new EventEmitter<boolean>();\n\n /**\n * @deprecated Use {@link IsVisibleChange}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (isVisibleChange) keeps working. Must stay AFTER IsVisibleChange: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() isVisibleChange = this.IsVisibleChange;\n @Output() OnClose = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link OnClose}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (onClose) keeps working. Must stay AFTER OnClose: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() onClose = this.OnClose;\n\n public IsRunning = false;\n\n /** @deprecated Use {@link IsRunning}. */\n public get isRunning() {\n return this.IsRunning;\n }\n /** @deprecated Use {@link IsRunning}. */\n public set isRunning(value) {\n this.IsRunning = value;\n }\n public IsLoadingParams = false;\n\n /** @deprecated Use {@link IsLoadingParams}. */\n public get isLoadingParams() {\n return this.IsLoadingParams;\n }\n /** @deprecated Use {@link IsLoadingParams}. */\n public set isLoadingParams(value) {\n this.IsLoadingParams = value;\n }\n public ParameterPairs: ParameterPair[] = [];\n\n /** @deprecated Use {@link ParameterPairs}. */\n public get parameterPairs(): ParameterPair[] {\n return this.ParameterPairs;\n }\n /** @deprecated Use {@link ParameterPairs}. */\n public set parameterPairs(value: ParameterPair[]) {\n this.ParameterPairs = value;\n }\n public ParametersExpanded = true;\n\n /** @deprecated Use {@link ParametersExpanded}. */\n public get parametersExpanded() {\n return this.ParametersExpanded;\n }\n /** @deprecated Use {@link ParametersExpanded}. */\n public set parametersExpanded(value) {\n this.ParametersExpanded = value;\n }\n public ResultsExpanded = true;\n\n /** @deprecated Use {@link ResultsExpanded}. */\n public get resultsExpanded() {\n return this.ResultsExpanded;\n }\n /** @deprecated Use {@link ResultsExpanded}. */\n public set resultsExpanded(value) {\n this.ResultsExpanded = value;\n }\n public PaginationExpanded = false;\n\n /** @deprecated Use {@link PaginationExpanded}. */\n public get paginationExpanded() {\n return this.PaginationExpanded;\n }\n /** @deprecated Use {@link PaginationExpanded}. */\n public set paginationExpanded(value) {\n this.PaginationExpanded = value;\n }\n public RunResult: QueryRunResult | null = null;\n\n /** @deprecated Use {@link RunResult}. */\n public get runResult(): QueryRunResult | null {\n return this.RunResult;\n }\n /** @deprecated Use {@link RunResult}. */\n public set runResult(value: QueryRunResult | null) {\n this.RunResult = value;\n }\n public ResultColumns: any[] = [];\n\n /** @deprecated Use {@link ResultColumns}. */\n public get resultColumns(): any[] {\n return this.ResultColumns;\n }\n /** @deprecated Use {@link ResultColumns}. */\n public set resultColumns(value: any[]) {\n this.ResultColumns = value;\n }\n public ResultRows: any[] = [];\n\n /** @deprecated Use {@link ResultRows}. */\n public get resultRows(): any[] {\n return this.ResultRows;\n }\n /** @deprecated Use {@link ResultRows}. */\n public set resultRows(value: any[]) {\n this.ResultRows = value;\n }\n public SelectedRows: any[] = [];\n\n /** @deprecated Use {@link SelectedRows}. */\n public get selectedRows(): any[] {\n return this.SelectedRows;\n }\n /** @deprecated Use {@link SelectedRows}. */\n public set selectedRows(value: any[]) {\n this.SelectedRows = value;\n }\n public MaxRows: number | null = null;\n\n /** @deprecated Use {@link MaxRows}. */\n public get maxRows(): number | null {\n return this.MaxRows;\n }\n /** @deprecated Use {@link MaxRows}. */\n public set maxRows(value: number | null) {\n this.MaxRows = value;\n }\n public StartRow: number = 0;\n\n /** @deprecated Use {@link StartRow}. */\n public get startRow(): number {\n return this.StartRow;\n }\n /** @deprecated Use {@link StartRow}. */\n public set startRow(value: number) {\n this.StartRow = value;\n }\n\n ngOnInit() {\n this.initializeParameters();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['isVisible'] && changes['isVisible'].currentValue) {\n this.initializeParameters();\n }\n if (changes['parameters']) {\n this.initializeParameters();\n }\n }\n\n private initializeParameters() {\n if (!this.query || !this.parameters) return;\n\n // Create parameter pairs from defined query parameters only\n this.ParameterPairs = this.parameters.map(param => ({\n name: param.Name,\n value: param.DefaultValue || '',\n type: param.Type || 'string',\n defaultValue: param.DefaultValue || '',\n description: param.Description || '',\n isRequired: param.IsRequired || false\n }));\n }\n\n GetValueListOptions(valueList: string): Array<{text: string, value: string}> {\n if (!valueList) return [];\n \n try {\n const options = valueList.split(',').map(v => v.trim());\n return options.map(opt => ({ text: opt, value: opt }));\n } catch {\n return [];\n }\n }\n\n /** @deprecated Use {@link GetValueListOptions}. */\n getValueListOptions(valueList: string): Array<{text: string, value: string}> {\n return this.GetValueListOptions(valueList);\n }\n\n IsParameterValid(param: ParameterPair): boolean {\n if (param.isRequired && !param.value) {\n return false;\n }\n \n // Additional type-specific validation could go here\n if (param.type === 'number' && param.value) {\n return !isNaN(Number(param.value));\n }\n \n return true;\n }\n\n /** @deprecated Use {@link IsParameterValid}. */\n isParameterValid(param: ParameterPair): boolean {\n return this.IsParameterValid(param);\n }\n\n async RunQuery(isPaginationRequest: boolean = false) {\n if (!this.query?.ID) return;\n\n // Validate required parameters\n const invalidParams = this.ParameterPairs.filter(p => p.isRequired && !p.value);\n if (invalidParams.length > 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n `Required parameters missing: ${invalidParams.map(p => p.name).join(', ')}`,\n 'warning',\n 3000\n );\n return;\n }\n\n this.IsRunning = true;\n this.RunResult = null;\n\n try {\n // Build parameters object\n const queryParameters: Record<string, any> = {};\n this.ParameterPairs.forEach(param => {\n if (param.value) {\n try {\n // Try to parse as JSON first, fallback to string\n queryParameters[param.name] = JSON.parse(param.value);\n } catch {\n // If JSON parsing fails, treat as string or number based on type\n if (param.type === 'number') {\n queryParameters[param.name] = Number(param.value);\n } else {\n queryParameters[param.name] = param.value;\n }\n }\n }\n });\n\n // Get GraphQL data provider\n const dataProvider = this.ProviderToUse as GraphQLDataProvider;\n \n // Execute the GetQueryData GraphQL query\n const query = `\n query GetQueryData($QueryID: String!, $Parameters: JSONObject, $MaxRows: Int, $StartRow: Int) {\n GetQueryData(QueryID: $QueryID, Parameters: $Parameters, MaxRows: $MaxRows, StartRow: $StartRow) {\n QueryID\n QueryName\n Success\n Results\n ErrorMessage\n RowCount\n TotalRowCount\n ExecutionTime\n AppliedParameters\n }\n }\n `;\n\n const variables: any = {\n QueryID: this.query.ID,\n Parameters: queryParameters\n };\n \n // Only include MaxRows if it's set\n if (this.MaxRows && this.MaxRows > 0) {\n variables.MaxRows = this.MaxRows;\n }\n \n // Only include StartRow if it's set and greater than 0\n if (this.StartRow && this.StartRow > 0) {\n variables.StartRow = this.StartRow;\n }\n\n console.log('Executing query with variables:', variables);\n \n const response = await dataProvider.ExecuteGQL(\n query, \n variables\n ) as {GetQueryData: QueryRunResult};\n\n if (response?.GetQueryData) {\n this.RunResult = response.GetQueryData;\n \n if (this.RunResult.Success && this.RunResult.Results) {\n // Parse the JSON string results\n try {\n const parsedResults = JSON.parse(this.RunResult.Results);\n this.processResults(parsedResults);\n // Only show notification on first run (not pagination)\n if (!isPaginationRequest) {\n const rowCountMsg = this.RunResult.TotalRowCount > this.RunResult.RowCount\n ? `Query executed successfully. Showing ${this.RunResult.RowCount} of ${this.RunResult.TotalRowCount} total rows.`\n : `Query executed successfully. ${this.RunResult.RowCount} rows returned.`;\n MJNotificationService.Instance.CreateSimpleNotification(\n rowCountMsg,\n 'success',\n 3000\n );\n }\n \n // Automatically expand results and collapse other sections\n this.ParametersExpanded = false;\n this.PaginationExpanded = false;\n this.ResultsExpanded = true;\n } catch (error) {\n console.error('Error parsing results:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to parse query results',\n 'error',\n 3000\n );\n }\n } else {\n console.error('Query execution failed:', this.RunResult);\n MJNotificationService.Instance.CreateSimpleNotification(\n this.RunResult?.ErrorMessage || 'Query execution failed',\n 'error',\n 3000\n );\n \n // Expand results section to show error\n this.ParametersExpanded = false;\n this.PaginationExpanded = false;\n this.ResultsExpanded = true;\n }\n } else {\n throw new Error('No response from server');\n }\n } catch (error) {\n console.error('Error running query:', error);\n this.RunResult = {\n QueryID: this.query.ID,\n QueryName: this.query.Name,\n Success: false,\n Results: '[]',\n ErrorMessage: error instanceof Error ? error.message : 'Unknown error occurred',\n RowCount: 0,\n TotalRowCount: 0,\n ExecutionTime: 0\n };\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to execute query. Please check your parameters and try again.',\n 'error',\n 3000\n );\n } finally {\n this.IsRunning = false;\n this.cdr.detectChanges();\n }\n }\n\n /** @deprecated Use {@link RunQuery}. */\n async runQuery(isPaginationRequest: boolean = false) {\n return this.RunQuery(isPaginationRequest);\n }\n\n private processResults(results: any[]) {\n if (!results || results.length === 0) {\n this.ResultColumns = [];\n this.ResultRows = [];\n return;\n }\n\n // Extract columns from first row\n const firstRow = results[0];\n this.ResultColumns = Object.keys(firstRow).map(key => ({\n field: key,\n title: this.formatColumnTitle(key),\n width: this.calculateColumnWidth(key, results)\n }));\n\n // Set rows\n this.ResultRows = results;\n }\n\n private formatColumnTitle(field: string): string {\n // Convert camelCase or snake_case to Title Case\n return field\n .replace(/([A-Z])/g, ' $1')\n .replace(/_/g, ' ')\n .replace(/^\\s+/, '')\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n }\n\n private calculateColumnWidth(field: string, data: any[]): number {\n // Calculate appropriate column width based on content\n const maxLength = Math.max(\n field.length,\n ...data.slice(0, 10).map(row => String(row[field] || '').length)\n );\n return Math.min(Math.max(maxLength * 10, 100), 300);\n }\n\n ExportToCSV() {\n if (!this.ResultRows || this.ResultRows.length === 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'No data to export',\n 'warning',\n 3000\n );\n return;\n }\n\n // Create CSV content\n const headers = this.ResultColumns.map(col => col.title).join(',');\n const rows = this.ResultRows.map(row =>\n this.ResultColumns.map(col => {\n const value = row[col.field];\n // Escape values containing commas or quotes\n if (typeof value === 'string' && (value.includes(',') || value.includes('\"'))) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n }).join(',')\n );\n\n const csv = [headers, ...rows].join('\\n');\n\n // Create and download file\n const blob = new Blob([csv], { type: 'text/csv' });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${this.query?.Name || 'query'}_results_${new Date().toISOString().slice(0, 10)}.csv`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Results exported to CSV',\n 'success',\n 3000\n );\n }\n\n /** @deprecated Use {@link ExportToCSV}. */\n exportToCSV() {\n return this.ExportToCSV();\n }\n\n async CopyToClipboard() {\n if (!this.ResultRows || this.ResultRows.length === 0) {\n MJNotificationService.Instance.CreateSimpleNotification(\n 'No data to copy',\n 'warning',\n 3000\n );\n return;\n }\n\n try {\n // Create tab-delimited content for pasting into Excel\n const headers = this.ResultColumns.map(col => col.title).join('\\t');\n const rows = this.ResultRows.map(row =>\n this.ResultColumns.map(col => row[col.field] || '').join('\\t')\n );\n\n const content = [headers, ...rows].join('\\n');\n await navigator.clipboard.writeText(content);\n\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Results copied to clipboard',\n 'success',\n 3000\n );\n } catch (error) {\n console.error('Failed to copy to clipboard:', error);\n MJNotificationService.Instance.CreateSimpleNotification(\n 'Failed to copy to clipboard',\n 'error',\n 3000\n );\n }\n }\n\n /** @deprecated Use {@link CopyToClipboard}. */\n async copyToClipboard() {\n return this.CopyToClipboard();\n }\n\n close() {\n this.IsVisible = false;\n this.IsVisibleChange.emit(false);\n this.OnClose.emit();\n \n // Reset state\n this.RunResult = null;\n this.ResultColumns = [];\n this.ResultRows = [];\n this.SelectedRows = [];\n this.StartRow = 0;\n }\n\n GetAppliedParametersCount(): number {\n return this.ParameterPairs.filter(p => p.value).length;\n }\n\n /** @deprecated Use {@link GetAppliedParametersCount}. */\n getAppliedParametersCount(): number {\n return this.GetAppliedParametersCount();\n }\n \n HasInvalidParameters(): boolean {\n return this.ParameterPairs.some(p => !this.IsParameterValid(p));\n }\n\n /** @deprecated Use {@link HasInvalidParameters}. */\n hasInvalidParameters(): boolean {\n return this.HasInvalidParameters();\n }\n \n // Pagination methods\n GoToFirstPage() {\n this.StartRow = 0;\n this.RunQuery(true);\n }\n\n /** @deprecated Use {@link GoToFirstPage}. */\n goToFirstPage() {\n return this.GoToFirstPage();\n }\n \n GoToPreviousPage() {\n if (this.StartRow > 0 && this.MaxRows) {\n this.StartRow = Math.max(0, this.StartRow - this.MaxRows);\n this.RunQuery(true);\n }\n }\n\n /** @deprecated Use {@link GoToPreviousPage}. */\n goToPreviousPage() {\n return this.GoToPreviousPage();\n }\n \n GoToNextPage() {\n if (this.MaxRows && this.RunResult && this.StartRow + this.RunResult.RowCount < this.RunResult.TotalRowCount) {\n this.StartRow += this.MaxRows;\n this.RunQuery(true);\n }\n }\n\n /** @deprecated Use {@link GoToNextPage}. */\n goToNextPage() {\n return this.GoToNextPage();\n }\n \n GoToLastPage() {\n if (this.MaxRows && this.RunResult) {\n const totalPages = Math.ceil(this.RunResult.TotalRowCount / this.MaxRows);\n this.StartRow = (totalPages - 1) * this.MaxRows;\n this.RunQuery(true);\n }\n }\n\n /** @deprecated Use {@link GoToLastPage}. */\n goToLastPage() {\n return this.GoToLastPage();\n }\n}","@if (isVisible) {\n <mj-dialog\n [Visible]=\"true\"\n [Width]=\"900\"\n (Close)=\"close()\">\n <mj-dialog-titlebar>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <i class=\"fa-solid fa-play-circle\" style=\"color: var(--mj-brand-primary);\"></i>\n Run Query: {{ query?.Name || 'Untitled' }}\n </div>\n </mj-dialog-titlebar>\n <div style=\"display: flex; flex-direction: column; height: 100%; overflow-y: auto; overflow-x: hidden;\">\n @if (isLoadingParams) {\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: var(--mj-text-muted); margin-right: 12px;\"></i>\n <span style=\"color: var(--mj-text-muted);\">Loading query parameters...</span>\n </div>\n } @else {\n <!-- Query Parameters Section -->\n @if (parameterPairs.length > 0) {\n <mj-accordion-panel\n [(Expanded)]=\"parametersExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sliders\" style=\"color: var(--mj-text-muted);\"></i>\n Query Parameters\n <span style=\"background: var(--mj-status-info); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ parameterPairs.length }}\n </span>\n </span>\n </ng-template>\n <div style=\"padding: 12px 0;\">\n <div style=\"margin-bottom: 12px; color: var(--mj-text-muted); font-size: 0.85em;\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Configure parameter values for query execution.\n </div>\n <!-- Parameters List -->\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n @for (param of parameterPairs; track param.name) {\n <div style=\"background: var(--mj-bg-surface-sunken); border: 1px solid var(--mj-border-default); border-radius: 6px; padding: 16px;\">\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px;\">\n <div>\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-at\" style=\"color: var(--mj-brand-primary);\"></i>\n {{ param.name }}\n @if (param.isRequired) {\n <span style=\"color: #dc3545;\">*</span>\n }\n </label>\n @if (param.description) {\n <div style=\"font-size: 0.85em; color: var(--mj-text-muted); margin-top: 4px;\">\n {{ param.description }}\n </div>\n }\n </div>\n <div style=\"display: flex; gap: 8px; align-items: center;\">\n <span class=\"badge\" style=\"background: var(--mj-text-muted); color: white; padding: 2px 6px; border-radius: 4px; font-size: 0.75em;\">\n {{ param.type }}\n </span>\n @if (!isParameterValid(param)) {\n <i class=\"fa-solid fa-exclamation-triangle\" style=\"color: #dc3545;\" title=\"Required parameter is empty\"></i>\n }\n </div>\n </div>\n <!-- Parameter Value Input -->\n @if (param.type === 'number') {\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"param.value\"\n placeholder=\"Enter number value...\"\n style=\"width: 100%;\" />\n } @else {\n <textarea class=\"mj-input\"\n [(ngModel)]=\"param.value\"\n rows=\"2\"\n placeholder=\"Enter value (JSON, string, or number)...\"\n style=\"width: 100%; font-family: 'Courier New', monospace;\">\n </textarea>\n }\n @if (param.defaultValue) {\n <div style=\"font-size: 0.8em; color: var(--mj-text-muted); margin-top: 4px;\">\n Default: <code style=\"background: var(--mj-bg-surface-sunken); padding: 2px 4px; border-radius: 3px;\">{{ param.defaultValue }}</code>\n </div>\n }\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n } @else {\n <div style=\"padding: 20px; background: var(--mj-bg-surface-sunken); border-radius: 6px; margin-bottom: 16px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-info-circle\"></i> This query has no parameters.\n </div>\n }\n <!-- Pagination Settings -->\n <mj-accordion-panel\n [(Expanded)]=\"paginationExpanded\"\n style=\"margin-bottom: 16px;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-table-list\" style=\"color: var(--mj-text-muted);\"></i>\n Pagination Settings\n @if (maxRows && maxRows > 0) {\n <span style=\"background: var(--mj-text-muted); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ maxRows }} rows/page\n </span>\n }\n </span>\n </ng-template>\n <div style=\"padding: 12px 0;\">\n <div style=\"display: flex; flex-direction: column; gap: 12px;\">\n <!-- Max Rows -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); white-space: nowrap; min-width: 100px;\">\n <i class=\"fa-solid fa-list-ol\" style=\"color: var(--mj-text-muted); margin-right: 6px;\"></i>\n Max Rows:\n </label>\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"maxRows\"\n min=\"1\"\n step=\"100\"\n placeholder=\"All rows\"\n style=\"width: 150px;\" />\n <span style=\"font-size: 0.85em; color: var(--mj-text-muted);\">\n Leave empty to return all rows\n </span>\n </div>\n <!-- Start Row -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <label style=\"font-weight: 600; color: var(--mj-text-secondary); white-space: nowrap; min-width: 100px;\">\n <i class=\"fa-solid fa-forward\" style=\"color: var(--mj-text-muted); margin-right: 6px;\"></i>\n Start Row:\n </label>\n <input type=\"number\" class=\"mj-input\"\n [(ngModel)]=\"startRow\"\n min=\"0\"\n step=\"1\"\n placeholder=\"0\"\n style=\"width: 150px;\" />\n <span style=\"font-size: 0.85em; color: var(--mj-text-muted);\">\n 0-based offset for pagination\n </span>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Results Section -->\n @if (runResult) {\n <mj-accordion-panel\n [(Expanded)]=\"resultsExpanded\"\n style=\"flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0;\">\n <ng-template mjAccordionTitle>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n @if (runResult.Success) {\n <i class=\"fa-solid fa-table\" style=\"color: var(--mj-status-success);\"></i>\n Query Results\n <span style=\"background: var(--mj-status-success); color: var(--mj-text-inverse); padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ runResult.RowCount }} rows@if (runResult.TotalRowCount > runResult.RowCount) { of {{ runResult.TotalRowCount }} total}\n </span>\n @if (runResult.ExecutionTime) {\n <span style=\"color: var(--mj-text-muted); font-size: 0.85em; font-weight: normal;\">— {{ runResult.ExecutionTime }}ms</span>\n }\n } @else {\n <i class=\"fa-solid fa-exclamation-circle\" style=\"color: var(--mj-status-error);\"></i>\n Query Results — Error\n }\n </span>\n </ng-template>\n <div style=\"flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0;\">\n @if (runResult.Success) {\n @if (resultRows.length > 0) {\n <!-- Export and Pagination Controls -->\n <div style=\"display: flex; justify-content: space-between; align-items: center; padding: 12px; border-bottom: 1px solid var(--mj-border-default);\">\n <!-- Pagination Info and Controls -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n @if (runResult.TotalRowCount > runResult.RowCount || startRow > 0) {\n <span style=\"font-size: 0.9em; color: var(--mj-text-muted);\">\n Showing rows {{ startRow + 1 }} - {{ startRow + runResult.RowCount }} of {{ runResult.TotalRowCount }}\n </span>\n <div style=\"display: flex; gap: 4px;\">\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow === 0\"\n (click)=\"goToFirstPage()\"\n title=\"First page\">\n <i class=\"fa-solid fa-angles-left\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow === 0\"\n (click)=\"goToPreviousPage()\"\n title=\"Previous page\">\n <i class=\"fa-solid fa-angle-left\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow + runResult.RowCount >= runResult.TotalRowCount\"\n (click)=\"goToNextPage()\"\n title=\"Next page\">\n <i class=\"fa-solid fa-angle-right\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n [disabled]=\"startRow + runResult.RowCount >= runResult.TotalRowCount\"\n (click)=\"goToLastPage()\"\n title=\"Last page\">\n <i class=\"fa-solid fa-angles-right\"></i>\n </button>\n </div>\n }\n </div>\n <!-- Export Buttons -->\n <div style=\"display: flex; gap: 8px;\">\n <button mjButton\n variant=\"flat\"\n (click)=\"copyToClipboard()\"\n title=\"Copy to clipboard\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button mjButton\n variant=\"flat\"\n (click)=\"exportToCSV()\"\n title=\"Export to CSV\">\n <i class=\"fa-solid fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n <!-- Results Grid -->\n <div class=\"results-table-container\" style=\"flex: 1; overflow: auto; border: 1px solid var(--mj-border-default); border-radius: 4px; min-height: 0;\">\n <table class=\"results-table\" style=\"width: 100%; border-collapse: collapse; font-size: 14px;\">\n <thead style=\"position: sticky; top: 0; background: var(--mj-bg-surface-sunken); z-index: 10;\">\n <tr>\n @for (col of resultColumns; track col.field) {\n <th style=\"padding: 12px 16px; text-align: left; font-weight: 600; color: var(--mj-text-secondary); border-bottom: 2px solid var(--mj-border-default); background: var(--mj-bg-surface-sunken); white-space: nowrap;\">\n {{ col.title }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of resultRows; track $index) {\n <tr style=\"border-bottom: 1px solid var(--mj-border-default); transition: background-color 0.2s;\">\n @for (col of resultColumns; track col.field) {\n <td style=\"padding: 10px 16px; color: var(--mj-text-primary); max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\"\n [title]=\"row[col.field]\">\n {{ row[col.field] || '' }}\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n @if (resultRows.length === 0) {\n <div style=\"padding: 40px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-table\" style=\"font-size: 48px; margin-bottom: 12px; opacity: 0.3;\"></i>\n <p>No data in results</p>\n </div>\n }\n </div>\n } @else {\n <div style=\"display: flex; align-items: center; justify-content: center; height: 200px; color: var(--mj-text-muted);\">\n <i class=\"fa-solid fa-inbox\" style=\"font-size: 48px; margin-bottom: 12px;\"></i>\n <p>No results returned</p>\n </div>\n }\n } @else {\n <mj-alert Variant=\"error\" Title=\"Query execution failed\">\n @if (runResult.ErrorMessage) {\n <div style=\"margin-top: 8px; font-family: 'Courier New', monospace; font-size: 0.9em;\">\n {{ runResult.ErrorMessage }}\n </div>\n }\n </mj-alert>\n }\n </div>\n </mj-accordion-panel>\n }\n }\n </div>\n <mj-dialog-actions>\n @if (!runResult) {\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button mjButton\n variant=\"primary\"\n [disabled]=\"isRunning || hasInvalidParameters()\"\n (click)=\"runQuery()\">\n @if (isRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run Query\n }\n </button>\n } @else {\n <button mjButton (click)=\"close()\">\n <i class=\"fa-solid fa-times\"></i> Close\n </button>\n <button mjButton\n variant=\"primary\"\n [disabled]=\"isRunning\"\n (click)=\"runQuery()\">\n <i class=\"fa-solid fa-refresh\"></i> Run Again\n </button>\n }\n </mj-dialog-actions>\n </mj-dialog>\n}\n"]}
|
|
@@ -1,7 +1,60 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { BaseFormPolicy, FormChromeContext, FormChromeSpec } from '@memberjunction/ng-base-forms';
|
|
3
3
|
import { MJRecordProcessFormComponent } from '../../generated/Entities/MJRecordProcess/mjrecordprocess.form.component';
|
|
4
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
5
|
+
import type { DataFeatureSpec, SpecValidationIssue, EntityMetadataStub } from '@memberjunction/feature-pipelines';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* View-model representing an individual feature output in the pipeline schema table.
|
|
9
|
+
*/
|
|
10
|
+
export interface FeatureOutputViewModel {
|
|
11
|
+
Name: string;
|
|
12
|
+
Ref: string;
|
|
13
|
+
FeatureKind: string;
|
|
14
|
+
TargetField: string;
|
|
15
|
+
TargetFieldExists: boolean;
|
|
16
|
+
TargetFieldType: string;
|
|
17
|
+
ConstraintSummary: string;
|
|
18
|
+
ViolationPolicy: string;
|
|
19
|
+
ReasoningTarget: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* View-model representing a parameter resolution mapping for the AI prompt.
|
|
23
|
+
*/
|
|
24
|
+
export interface PromptParamViewModel {
|
|
25
|
+
Param: string;
|
|
26
|
+
Field: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Pure helper function to format raw JSON.
|
|
30
|
+
*/
|
|
31
|
+
export declare function FormatRawPipelineJson(configuration?: string | null): string;
|
|
32
|
+
/** @deprecated Use {@link FormatRawPipelineJson}. */
|
|
33
|
+
export declare function formatRawPipelineJson(configuration?: string | null): string;
|
|
34
|
+
/**
|
|
35
|
+
* Pure helper function to parse DataFeatureSpec safely.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ParsePipelineSpec(configuration?: string | null): DataFeatureSpec | null;
|
|
38
|
+
/** @deprecated Use {@link ParsePipelineSpec}. */
|
|
39
|
+
export declare function parsePipelineSpec(configuration?: string | null): DataFeatureSpec | null;
|
|
40
|
+
/**
|
|
41
|
+
* Pure helper function to validate pipeline spec against entity stub.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ValidatePipelineSpec(spec: DataFeatureSpec | null, entityStub?: EntityMetadataStub): SpecValidationIssue[];
|
|
44
|
+
/** @deprecated Use {@link ValidatePipelineSpec}. */
|
|
45
|
+
export declare function validatePipelineSpec(spec: DataFeatureSpec | null, entityStub?: EntityMetadataStub): SpecValidationIssue[];
|
|
46
|
+
/**
|
|
47
|
+
* Pure helper to build feature output view-models from spec or output mapping.
|
|
48
|
+
*/
|
|
49
|
+
export declare function BuildFeatureOutputViewModels(spec: DataFeatureSpec | null, entityInfo?: EntityInfo | null, outputMapping?: string | null): FeatureOutputViewModel[];
|
|
50
|
+
/** @deprecated Use {@link BuildFeatureOutputViewModels}. */
|
|
51
|
+
export declare function buildFeatureOutputViewModels(spec: DataFeatureSpec | null, entityInfo?: EntityInfo | null, outputMapping?: string | null): FeatureOutputViewModel[];
|
|
52
|
+
/**
|
|
53
|
+
* Pure helper to build prompt parameter resolution mappings.
|
|
54
|
+
*/
|
|
55
|
+
export declare function BuildPromptParamViewModels(spec: DataFeatureSpec | null, inputMapping?: string | null): PromptParamViewModel[];
|
|
56
|
+
/** @deprecated Use {@link BuildPromptParamViewModels}. */
|
|
57
|
+
export declare function buildPromptParamViewModels(spec: DataFeatureSpec | null, inputMapping?: string | null): PromptParamViewModel[];
|
|
5
58
|
/**
|
|
6
59
|
* Custom form override for `MJ: Record Processes` (priority 100).
|
|
7
60
|
* Presents the Record Process / Feature Pipeline in a first-class MJ form with:
|
|
@@ -9,24 +62,77 @@ import * as i0 from "@angular/core";
|
|
|
9
62
|
* - Builder panel: "Pipeline Configuration" embedding the visual <mj-feature-pipeline-builder> for Infer / Feature Pipelines,
|
|
10
63
|
* or the <mj-record-process-editor> for Field Rules.
|
|
11
64
|
* - History panel: "Prior Runs" embedding <mj-record-process-history> with run status, metrics, and per-record diff drill-down.
|
|
12
|
-
* -
|
|
65
|
+
* - Details panel (Option A Structured Cards): First-class semantic cards for Infer pipelines, replacing raw JSON
|
|
66
|
+
* with configuration health diagnostics, prompt context binding, feature output schema & column validation,
|
|
67
|
+
* scope preview, and a collapsible raw JSON drawer.
|
|
13
68
|
* - Related entity sections: Watermarks, ML Model Scoring Bindings, Feature Values, Feature Value Caches.
|
|
14
69
|
* - System Metadata panel.
|
|
15
70
|
*/
|
|
16
71
|
export declare class RecordProcessFormComponentExtended extends MJRecordProcessFormComponent implements OnInit {
|
|
17
|
-
|
|
72
|
+
PipelineValid: boolean;
|
|
73
|
+
/** @deprecated Use {@link PipelineValid}. */
|
|
74
|
+
get pipelineValid(): boolean;
|
|
75
|
+
/** @deprecated Use {@link PipelineValid}. */
|
|
76
|
+
set pipelineValid(value: boolean);
|
|
77
|
+
RawJsonExpanded: boolean;
|
|
78
|
+
/** @deprecated Use {@link RawJsonExpanded}. */
|
|
79
|
+
get rawJsonExpanded(): boolean;
|
|
80
|
+
/** @deprecated Use {@link RawJsonExpanded}. */
|
|
81
|
+
set rawJsonExpanded(value: boolean);
|
|
82
|
+
RawJsonCopied: boolean;
|
|
83
|
+
/** @deprecated Use {@link RawJsonCopied}. */
|
|
84
|
+
get rawJsonCopied(): boolean;
|
|
85
|
+
/** @deprecated Use {@link RawJsonCopied}. */
|
|
86
|
+
set rawJsonCopied(value: boolean);
|
|
87
|
+
LoadedQuery: {
|
|
88
|
+
ID: string;
|
|
89
|
+
Name: string;
|
|
90
|
+
SQL: string;
|
|
91
|
+
} | null;
|
|
92
|
+
/** @deprecated Use {@link LoadedQuery}. */
|
|
93
|
+
get loadedQuery(): {
|
|
94
|
+
ID: string;
|
|
95
|
+
Name: string;
|
|
96
|
+
SQL: string;
|
|
97
|
+
} | null;
|
|
98
|
+
/** @deprecated Use {@link LoadedQuery}. */
|
|
99
|
+
set loadedQuery(value: {
|
|
100
|
+
ID: string;
|
|
101
|
+
Name: string;
|
|
102
|
+
SQL: string;
|
|
103
|
+
} | null);
|
|
18
104
|
ngOnInit(): Promise<void>;
|
|
105
|
+
private loadContextQuery;
|
|
19
106
|
get TargetEntityName(): string;
|
|
107
|
+
get TargetEntityInfo(): EntityInfo | undefined;
|
|
20
108
|
get WorkTypeIcon(): string;
|
|
21
109
|
get StatusBadgeClass(): string;
|
|
22
110
|
OnPipelineSpecChange(): void;
|
|
23
111
|
OnPipelineValidChange(valid: boolean): void;
|
|
112
|
+
ToggleRawJson(): void;
|
|
113
|
+
/** @deprecated Use {@link ToggleRawJson}. */
|
|
114
|
+
toggleRawJson(): void;
|
|
115
|
+
CopyRawJson(): Promise<void>;
|
|
116
|
+
/** @deprecated Use {@link CopyRawJson}. */
|
|
117
|
+
copyRawJson(): Promise<void>;
|
|
118
|
+
get FormattedRawJson(): string;
|
|
119
|
+
get ParsedSpec(): DataFeatureSpec | null;
|
|
120
|
+
get EntityStub(): EntityMetadataStub | undefined;
|
|
121
|
+
get SpecIssues(): SpecValidationIssue[];
|
|
122
|
+
get IsSpecValid(): boolean;
|
|
123
|
+
get FeatureOutputs(): FeatureOutputViewModel[];
|
|
124
|
+
get TotalFeaturesCount(): number;
|
|
125
|
+
get BoundFeaturesCount(): number;
|
|
126
|
+
get ParameterMappings(): PromptParamViewModel[];
|
|
127
|
+
get ContextModeText(): string;
|
|
128
|
+
get ContextQueryDisplay(): string;
|
|
129
|
+
get FormattedScopeFilter(): string;
|
|
24
130
|
static ɵfac: i0.ɵɵFactoryDeclaration<RecordProcessFormComponentExtended, never>;
|
|
25
131
|
static ɵcmp: i0.ɵɵComponentDeclaration<RecordProcessFormComponentExtended, "mj-record-process-form-extended", never, {}, {}, never, never, false, never>;
|
|
26
132
|
}
|
|
27
133
|
/**
|
|
28
|
-
* Form policy ensuring the Overview
|
|
29
|
-
*
|
|
134
|
+
* Form policy ensuring the Overview panel sits as the lead group
|
|
135
|
+
* on the left-nav rail with proper title and icon.
|
|
30
136
|
*/
|
|
31
137
|
export declare class RecordProcessFormPolicy extends BaseFormPolicy {
|
|
32
138
|
DecorateChrome(spec: FormChromeSpec, _ctx: FormChromeContext): FormChromeSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-process-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/RecordProcesses/record-process-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAqB,cAAc,EAAE,iBAAiB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"record-process-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/RecordProcesses/record-process-form.component.ts"],"names":[],"mappings":"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"}
|