@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.2
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-form-tabs.d.ts +1 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-form-tabs.js +2 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.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 +1322 -783
- 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 +694 -252
- 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/pending-records.d.ts +11 -0
- package/dist/lib/custom/AIPrompts/pending-records.d.ts.map +1 -0
- package/dist/lib/custom/AIPrompts/pending-records.js +21 -0
- package/dist/lib/custom/AIPrompts/pending-records.js.map +1 -0
- 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 +217 -29
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +734 -285
- 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 +129 -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 +904 -90
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts +37 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js +399 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts +69 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js +587 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts +67 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js +534 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts +25 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js +299 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts +31 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js +395 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -0
- 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 +153 -19
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +434 -217
- 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 +223 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +951 -530
- 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 +395 -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 +1719 -1007
- 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 +3 -3
- 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/custom-forms.module.d.ts +56 -48
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +60 -0
- package/dist/lib/custom/custom-forms.module.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/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +61 -43
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +37 -19
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +78 -52
- 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/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +156 -84
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.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/MJRecordChange/mjrecordchange.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js +135 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js +87 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js +155 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js +183 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js +120 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js +103 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js +171 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +19 -11
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.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 +209 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +436 -422
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +44 -2
- package/dist/lib/generated/generated-forms.module.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/panels/record-clone/entity-clone-config-editor.component.d.ts +116 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts.map +1 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js +820 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js.map +1 -0
- package/dist/lib/shared/components/template-editor.component.d.ts +158 -15
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +389 -127
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +5 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +5 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +47 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps-model-detail.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/MLModels/ps-model-detail.component.ts","../../../../src/lib/custom/MLModels/ps-model-detail.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport {\n MJMLModelEntity,\n PredictiveStudioPromoteModelOperation,\n PredictiveStudioModelTargetStatus,\n} from '@memberjunction/core-entities';\n\nimport {\n PSFeatureBar,\n PSMetricDisplay,\n PS_FEATURE_DOMINANCE_THRESHOLD,\n formatMetricValue,\n humanizeFeatureName,\n maxFeatureImportance,\n metricsToDisplay,\n overfitGap,\n parseFeatureImportance,\n parseMetrics,\n primaryModelScore,\n} from './ml-model-view-models';\n\n/** A pending promote/archive action awaiting user confirmation. */\ninterface PendingPromotion {\n modelId: string;\n modelName: string;\n targetStatus: PredictiveStudioModelTargetStatus;\n leakageFlagged: boolean;\n}\n\n/**\n * **PSModelDetailComponent** — Unified enterprise component for inspecting, evaluating,\n * and promoting versioned ML Models. Shared between:\n * 1. **Predictive Studio Model Registry** (`PSRegistryComponent`)\n * 2. **Custom Entity Form for `MJ: ML Models`** (`MLModelFormComponentExtended`)\n *\n * Renders:\n * - Identity & immutable snapshot badge\n * - Progressive 4-stage lifecycle stepper (Draft → Validated → Published → Archived)\n * - In-sample train vs out-of-sample holdout performance cards and overfit gap check\n * - Key feature importance rankings with single-feature dominance warnings\n * - Target leakage gate verification and required sign-off rationale capture\n * - Remote Operation lifecycle promotion (Validate, Publish, Archive)\n */\n@Component({\n standalone: true,\n selector: 'ps-model-detail',\n templateUrl: './ps-model-detail.component.html',\n styleUrls: ['./ps-model-detail.component.css'],\n imports: [CommonModule, FormsModule, MJButtonDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PSModelDetailComponent {\n @Input() model: MJMLModelEntity | null = null;\n @Input() provider: IMetadataProvider | null = null;\n @Input() currentUser: UserInfo | null = null;\n @Input() showActions = true;\n\n @Output() statusChanged = new EventEmitter<{ modelId: string; newStatus: string }>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly notifications = inject(MJNotificationService);\n\n public readonly lifecycleSteps = ['Draft', 'Validated', 'Published', 'Archived'] as const;\n public readonly dominanceThreshold = PS_FEATURE_DOMINANCE_THRESHOLD.toFixed(2);\n\n public pending: PendingPromotion | null = null;\n public pendingReason = '';\n public busy = false;\n\n @Input() displayName?: string;\n\n public get modelDisplayName(): string {\n if (this.displayName) return this.displayName;\n if (!this.model) return '';\n return this.model.Pipeline || (this.model.Algorithm ? `${this.model.Algorithm} Model` : 'ML Model');\n }\n\n // ── Badges & Lifecycle Stepper ──\n\n public statusBadgeClass(status: string | null | undefined): string {\n switch ((status ?? '').toLowerCase()) {\n case 'published':\n return 'green';\n case 'validated':\n return 'blue';\n case 'draft':\n return 'amber';\n case 'archived':\n return 'gray';\n default:\n return 'gray';\n }\n }\n\n public stepState(step: string): 'done' | 'curr' | 'todo' {\n const order = ['Draft', 'Validated', 'Published', 'Archived'];\n const currIdx = order.indexOf(this.model?.Status ?? 'Draft');\n const stepIdx = order.indexOf(step);\n if (stepIdx < currIdx) return 'done';\n if (stepIdx === currIdx) return 'curr';\n return 'todo';\n }\n\n public get targetSuffix(): string {\n const target = this.model?.TargetVariable;\n return target ? ` · predicts ${target}` : '';\n }\n\n // ── Metrics & Performance Derivations ──\n\n public get primaryScoreLabel(): string {\n if (!this.model) return 'Score';\n const score = primaryModelScore(this.model);\n return score?.label ?? 'AUC';\n }\n\n public get trainPrimaryScore(): string {\n if (!this.model) return '—';\n const score = primaryModelScore(this.model);\n const trainMetrics = parseMetrics(this.model.Metrics);\n if (score && trainMetrics[score.key] != null) {\n return formatMetricValue(score.key, trainMetrics[score.key]!);\n }\n return trainMetrics.AUC != null ? trainMetrics.AUC.toFixed(3) : '—';\n }\n\n public get holdoutPrimaryScore(): string {\n if (!this.model) return '—';\n const score = primaryModelScore(this.model);\n const holdoutMetrics = parseMetrics(this.model.HoldoutMetrics);\n if (score && holdoutMetrics[score.key] != null) {\n return formatMetricValue(score.key, holdoutMetrics[score.key]!);\n }\n return holdoutMetrics.AUC != null ? holdoutMetrics.AUC.toFixed(3) : '—';\n }\n\n public get secondaryMetrics(): PSMetricDisplay[] {\n if (!this.model) return [];\n const score = primaryModelScore(this.model);\n const primaryKey = score?.key;\n const holdout = metricsToDisplay(parseMetrics(this.model.HoldoutMetrics), { excludeAuc: false });\n const all = holdout.length > 0 ? holdout : metricsToDisplay(parseMetrics(this.model.Metrics), { excludeAuc: false });\n return primaryKey ? all.filter((m) => m.key !== primaryKey) : all.filter((m) => m.key !== 'AUC');\n }\n\n public get gapText(): string {\n if (!this.model) return '';\n const gap = overfitGap(this.model);\n return gap == null ? '' : Math.abs(gap).toFixed(3);\n }\n\n public get gapVerdict(): string {\n if (!this.model) return '';\n const gap = overfitGap(this.model);\n if (gap == null) return '';\n return gap > 0.1 ? 'is wide — watch for overfitting' : 'is within tolerance — no overfitting flag';\n }\n\n // ── Feature Importance & Leakage Gate ──\n\n public get importance(): PSFeatureBar[] {\n if (!this.model) return [];\n return parseFeatureImportance(this.model.FeatureImportance, 6).map((b) => ({\n ...b,\n name: humanizeFeatureName(b.name),\n }));\n }\n\n public get importanceCaption(): string {\n const n = this.importance.length;\n return n === 0 ? 'no data' : `normalized · top ${n}`;\n }\n\n public get topFeatureName(): string {\n return this.importance[0]?.name ?? '—';\n }\n\n public get topFeatureValue(): string {\n return this.importance[0]?.value ?? '—';\n }\n\n public get leakageFlagged(): boolean {\n if (!this.model) return false;\n const max = maxFeatureImportance(this.model.FeatureImportance);\n return max != null && max >= PS_FEATURE_DOMINANCE_THRESHOLD;\n }\n\n // ── Actions & Promotion Flow ──\n\n public get canValidate(): boolean {\n return this.model?.Status === 'Draft';\n }\n\n public get canPublish(): boolean {\n return this.model?.Status === 'Validated';\n }\n\n public get canArchive(): boolean {\n return this.model?.Status === 'Published' || this.model?.Status === 'Validated';\n }\n\n public get actionHint(): string {\n switch (this.model?.Status) {\n case 'Draft':\n return 'Verify metrics and feature importance before validating or publishing.';\n case 'Validated':\n return 'Validated and sign-off clear. Ready to promote to production serving.';\n case 'Published':\n return 'Active in production serving. Archiving will detach live predictions.';\n case 'Archived':\n return 'Archived snapshot. Preserved for governance and historical auditing.';\n default:\n return '';\n }\n }\n\n public requestPromote(targetStatus: PredictiveStudioModelTargetStatus): void {\n if (!this.model) return;\n this.pendingReason = '';\n this.pending = {\n modelId: this.model.ID,\n modelName: `${this.modelDisplayName} v${this.model.Version}`,\n targetStatus,\n leakageFlagged: this.leakageFlagged && targetStatus !== 'Archived',\n };\n this.cdr.markForCheck();\n }\n\n public cancelPromote(): void {\n if (this.busy) return;\n this.pending = null;\n this.pendingReason = '';\n this.cdr.markForCheck();\n }\n\n public get pendingTitle(): string {\n if (!this.pending) return '';\n return this.pending.targetStatus === 'Archived' ? 'Archive model' : `Promote to ${this.pending.targetStatus}`;\n }\n\n public get pendingIcon(): string {\n if (!this.pending) return 'fa-solid fa-check';\n return this.pending.targetStatus === 'Archived' ? 'fa-solid fa-box-archive' : 'fa-solid fa-arrow-up';\n }\n\n public get pendingConfirmLabel(): string {\n if (!this.pending) return 'Confirm';\n return this.pending.targetStatus === 'Archived' ? 'Archive' : `Promote to ${this.pending.targetStatus}`;\n }\n\n public get pendingVariant(): 'info' | 'warn' | 'danger' {\n if (!this.pending) return 'info';\n if (this.pending.targetStatus === 'Archived') return 'warn';\n return this.pending.leakageFlagged ? 'warn' : 'info';\n }\n\n public get pendingMessage(): string {\n if (!this.pending) return '';\n const name = this.escapeHtml(this.pending.modelName);\n if (this.pending.targetStatus === 'Archived') {\n return `Archive <strong>${name}</strong>? This detaches any active scoring bindings and removes it from production scoring. The model artifact remains immutable and recoverable.`;\n }\n if (this.pending.leakageFlagged) {\n return `<strong>${name}</strong> is flagged for possible target leakage. Publishing requires an explicit sign-off — confirm you understand the risk and provide a reason below.`;\n }\n return `Promote <strong>${name}</strong> to <strong>${this.pending.targetStatus}</strong>? This changes only the lifecycle state — the trained weights never change.`;\n }\n\n public async confirmPromote(reason: string): Promise<void> {\n if (!this.pending || this.busy || !this.model) return;\n this.busy = true;\n this.cdr.markForCheck();\n\n const { modelId, modelName, targetStatus, leakageFlagged } = this.pending;\n\n try {\n const op = new PredictiveStudioPromoteModelOperation();\n const result = await op.Execute(\n {\n modelId,\n targetStatus,\n signOff: leakageFlagged ? true : undefined,\n reason: reason || undefined,\n },\n { provider: this.provider ?? undefined, user: this.currentUser ?? undefined },\n );\n\n if (result.Success && result.Output?.promoted) {\n const newStatus = result.Output.status;\n this.model.Status = newStatus as 'Draft' | 'Validated' | 'Published' | 'Archived';\n this.notifications.CreateSimpleNotification(`${modelName} → ${newStatus}`, 'success', 3500);\n this.statusChanged.emit({ modelId, newStatus });\n this.pending = null;\n this.pendingReason = '';\n } else {\n this.notifications.CreateSimpleNotification(\n result.ErrorMessage || `Could not promote ${modelName} (status: ${result.Output?.status ?? 'unchanged'}).`,\n 'error',\n 5000,\n );\n }\n } catch (e) {\n this.notifications.CreateSimpleNotification(\n `Promotion failed: ${e instanceof Error ? e.message : String(e)}`,\n 'error',\n 5000,\n );\n } finally {\n this.busy = false;\n this.cdr.markForCheck();\n }\n }\n\n private escapeHtml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n }\n}\n","<div class=\"ps-model-detail\" data-testid=\"ps-model-detail\">\n @if (model) {\n <!-- 1. Header Card -->\n <div class=\"ps-card\">\n <div class=\"ps-card-body dh\">\n <div class=\"big-ico\"><i class=\"fa-solid fa-cube\"></i></div>\n <div style=\"flex:1;min-width:0;\">\n <h2 data-testid=\"ps-registry-detail-name\">\n {{ modelDisplayName }}\n <span class=\"ps-tag ps-mono\">v{{ model.Version }}</span>\n </h2>\n <div class=\"ps-muted ps-small sub\">\n {{ model.Algorithm || 'Model' }}{{ targetSuffix }} • immutable snapshot\n </div>\n </div>\n <span class=\"ps-badge\" [class]=\"statusBadgeClass(model.Status)\">{{ model.Status }}</span>\n </div>\n </div>\n\n <!-- 2. Lifecycle Stepper -->\n <div class=\"ps-card\">\n <div class=\"ps-card-body\">\n <div class=\"ps-section-title\">Lifecycle</div>\n <div class=\"ps-stepper\">\n @for (step of lifecycleSteps; track step; let last = $last) {\n <div class=\"ps-step\" [class.done]=\"stepState(step) === 'done'\" [class.curr]=\"stepState(step) === 'curr'\">\n <span class=\"pip\">\n @if (stepState(step) === 'done') {\n <i class=\"fa-solid fa-check\"></i>\n } @else {\n {{ $index + 1 }}\n }\n </span>\n {{ step }}\n </div>\n @if (!last) {\n <span class=\"ln\"></span>\n }\n }\n </div>\n <div class=\"ps-small ps-muted\" style=\"margin-top:10px\">\n Models are immutable once registered; promotion only changes lifecycle state, never weights.\n </div>\n </div>\n </div>\n\n <!-- 3. Performance Metrics -->\n <div class=\"ps-card\">\n <div class=\"ps-card-head\">\n <h3>Performance</h3>\n <span class=\"ps-muted ps-small\">Holdout = held-out test fold, never seen in training</span>\n </div>\n <div class=\"ps-card-body\">\n <div class=\"metric-pair\">\n <div class=\"mtile\">\n <div class=\"ps-section-title\">Train {{ primaryScoreLabel }}</div>\n <div class=\"v\">{{ trainPrimaryScore }}</div>\n <div class=\"ps-muted ps-small\">in-sample • optimistic</div>\n </div>\n <div class=\"mtile honest\">\n <div class=\"ps-section-title\">Holdout {{ primaryScoreLabel }}</div>\n <div class=\"v\">{{ holdoutPrimaryScore }}</div>\n <div class=\"ps-muted ps-small\">out-of-sample • the honest number</div>\n </div>\n </div>\n\n @if (secondaryMetrics.length > 0) {\n <div class=\"stat-bar\">\n @for (s of secondaryMetrics; track s.key) {\n <div class=\"b\">\n <span class=\"ps-muted ps-small\">{{ s.label }}</span>\n <strong>{{ s.value }}</strong>\n </div>\n }\n </div>\n } @else {\n <div class=\"ps-small ps-muted\" style=\"margin-top:6px\">No secondary metrics recorded for this model.</div>\n }\n\n @if (gapText) {\n <div class=\"ps-small ps-muted\" style=\"margin-top:10px\">\n Train–holdout gap of <strong>{{ gapText }}</strong> {{ gapVerdict }}.\n </div>\n }\n </div>\n </div>\n\n <!-- 4. Feature Importance -->\n <div class=\"ps-card\">\n <div class=\"ps-card-head\">\n <h3>Feature Importance</h3>\n <span class=\"ps-muted ps-small\">{{ importanceCaption }}</span>\n </div>\n <div class=\"ps-card-body\">\n @if (importance.length > 0) {\n @for (f of importance; track f.name) {\n <div class=\"ps-fbar\">\n <span class=\"name ps-small\" [title]=\"f.name\">{{ f.name }}</span>\n <div class=\"track\">\n <span [class.warn]=\"f.warning\" [style.width.%]=\"f.pct\"></span>\n </div>\n <span class=\"ps-mono\">{{ f.value }}</span>\n </div>\n }\n } @else {\n <div class=\"ps-small ps-muted\">No feature-importance data was recorded for this model.</div>\n }\n </div>\n </div>\n\n <!-- 5. Leakage Sign-Off Gate -->\n @if (importance.length > 0) {\n <div class=\"ps-callout gate\" [class.success]=\"!leakageFlagged\" [class.warn]=\"leakageFlagged\">\n <i [class]=\"leakageFlagged ? 'fa-solid fa-triangle-exclamation' : 'fa-solid fa-shield-halved'\"></i>\n <div>\n @if (leakageFlagged) {\n <strong>Leakage flag raised.</strong> A single feature dominates — top importance is\n <strong>{{ topFeatureName }} at {{ topFeatureValue }}</strong>, at/above the\n <strong>{{ dominanceThreshold }}</strong> dominance threshold.\n <div class=\"ps-small\" style=\"margin-top:6px\">\n <i class=\"fa-solid fa-pen\"></i> Sign-off with a reason is required to publish this model.\n </div>\n } @else {\n <strong>Leakage gate clear.</strong> No single feature dominates — top importance is\n <strong>{{ topFeatureName }} at {{ topFeatureValue }}</strong>, below the\n <strong>{{ dominanceThreshold }}</strong> dominance threshold.\n <div class=\"ps-small\" style=\"margin-top:6px\">\n <i class=\"fa-solid fa-check\"></i> Sign-off required before any Validated → Published promotion.\n </div>\n }\n </div>\n </div>\n }\n\n <!-- 6. Lifecycle Actions -->\n @if (showActions) {\n <div class=\"ps-card\">\n <div class=\"ps-card-body ps-row\" style=\"align-items:center;flex-wrap:wrap;gap:8px\">\n <span class=\"ps-muted ps-small\" style=\"flex:1\">{{ actionHint }}</span>\n @if (canValidate) {\n <button mjButton variant=\"secondary\" size=\"sm\" data-testid=\"ps-registry-validate\" (click)=\"requestPromote('Validated')\">\n <i class=\"fa-solid fa-circle-check\"></i> Mark Validated\n </button>\n }\n @if (canPublish) {\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-registry-promote\" (click)=\"requestPromote('Published')\">\n <i class=\"fa-solid fa-arrow-up\"></i> Promote to Published\n </button>\n }\n @if (canArchive) {\n <button mjButton variant=\"secondary\" size=\"sm\" data-testid=\"ps-registry-archive\" (click)=\"requestPromote('Archived')\">\n <i class=\"fa-solid fa-box-archive\"></i> Archive\n </button>\n }\n </div>\n </div>\n }\n\n <!-- 7. Confirm Promotion Modal -->\n @if (pending) {\n <div class=\"ps-modal-backdrop\" (click)=\"cancelPromote()\">\n <div class=\"ps-modal\" (click)=\"$event.stopPropagation()\" data-testid=\"ps-confirm-modal\">\n <div class=\"ps-modal-head\" [class.warn]=\"pendingVariant === 'warn'\" [class.danger]=\"pendingVariant === 'danger'\">\n <span class=\"ico\"><i [class]=\"pendingIcon\"></i></span>\n <h3>{{ pendingTitle }}</h3>\n </div>\n <div class=\"ps-modal-body\">\n <div [innerHTML]=\"pendingMessage\"></div>\n @if (pending.leakageFlagged || pending.targetStatus === 'Archived') {\n <div class=\"ps-field\" style=\"margin-top:12px\">\n <label>\n {{ pending.leakageFlagged ? 'Leakage sign-off reason' : 'Reason (optional)' }}\n {{ pending.leakageFlagged ? ' *' : '' }}\n </label>\n <textarea\n class=\"ps-input\"\n rows=\"3\"\n [(ngModel)]=\"pendingReason\"\n [placeholder]=\"pending.leakageFlagged ? 'Explain why this model is safe to publish despite the leakage flag…' : 'Add an optional note for the record…'\"\n [disabled]=\"busy\"></textarea>\n </div>\n }\n </div>\n <div class=\"ps-modal-foot\">\n <button\n mjButton\n [variant]=\"pendingVariant === 'danger' ? 'danger' : 'primary'\"\n size=\"sm\"\n [disabled]=\"busy || (pending.leakageFlagged && !pendingReason.trim())\"\n (click)=\"confirmPromote(pendingReason.trim())\">\n @if (busy) {\n <i class=\"fa-solid fa-circle-notch fa-spin\"></i>\n } @else {\n <i [class]=\"pendingIcon\"></i>\n }\n {{ pendingConfirmLabel }}\n </button>\n <span class=\"ps-spacer\" style=\"flex:1\"></span>\n <button mjButton variant=\"secondary\" size=\"sm\" [disabled]=\"busy\" (click)=\"cancelPromote()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n }\n } @else {\n <div class=\"ps-empty\" style=\"padding: 32px; text-align: center;\">\n <span class=\"ps-empty-ico\"><i class=\"fa-solid fa-cube\"></i></span>\n <h3>No Model Selected</h3>\n <p class=\"ps-muted\">Select an ML Model from the list to inspect its configuration and metrics.</p>\n </div>\n }\n</div>\n"]}
|
|
1
|
+
{"version":3,"file":"ps-model-detail.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/MLModels/ps-model-detail.component.ts","../../../../src/lib/custom/MLModels/ps-model-detail.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport {\n MJMLModelEntity,\n PredictiveStudioPromoteModelOperation,\n PredictiveStudioModelTargetStatus,\n} from '@memberjunction/core-entities';\n\nimport {\n PSFeatureBar,\n PSMetricDisplay,\n PS_FEATURE_DOMINANCE_THRESHOLD,\n FormatMetricValue,\n HumanizeFeatureName,\n MaxFeatureImportance,\n MetricsToDisplay,\n OverfitGap,\n ParseFeatureImportance,\n ParseMetrics,\n PrimaryModelScore,\n} from './ml-model-view-models';\n\n/** A pending promote/archive action awaiting user confirmation. */\ninterface PendingPromotion {\n modelId: string;\n modelName: string;\n targetStatus: PredictiveStudioModelTargetStatus;\n leakageFlagged: boolean;\n}\n\n/**\n * **PSModelDetailComponent** — Unified enterprise component for inspecting, evaluating,\n * and promoting versioned ML Models. Shared between:\n * 1. **Predictive Studio Model Registry** (`PSRegistryComponent`)\n * 2. **Custom Entity Form for `MJ: ML Models`** (`MLModelFormComponentExtended`)\n *\n * Renders:\n * - Identity & immutable snapshot badge\n * - Progressive 4-stage lifecycle stepper (Draft → Validated → Published → Archived)\n * - In-sample train vs out-of-sample holdout performance cards and overfit gap check\n * - Key feature importance rankings with single-feature dominance warnings\n * - Target leakage gate verification and required sign-off rationale capture\n * - Remote Operation lifecycle promotion (Validate, Publish, Archive)\n */\n@Component({\n standalone: true,\n selector: 'ps-model-detail',\n templateUrl: './ps-model-detail.component.html',\n styleUrls: ['./ps-model-detail.component.css'],\n imports: [CommonModule, FormsModule, MJButtonDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PSModelDetailComponent {\n @Input() Model: MJMLModelEntity | null = null;\n\n /** @deprecated Use {@link Model}. */\n @Input() set model(value: MJMLModelEntity | null) {\n this.Model = value;\n }\n /** @deprecated Use {@link Model}. */\n get model(): MJMLModelEntity | null {\n return this.Model;\n }\n @Input() Provider: IMetadataProvider | null = null;\n\n /** @deprecated Use {@link Provider}. */\n @Input() set provider(value: IMetadataProvider | null) {\n this.Provider = value;\n }\n /** @deprecated Use {@link Provider}. */\n get provider(): IMetadataProvider | null {\n return this.Provider;\n }\n @Input() CurrentUser: UserInfo | null = null;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo | null) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo | null {\n return this.CurrentUser;\n }\n @Input() ShowActions = true;\n\n /** @deprecated Use {@link ShowActions}. */\n @Input() set showActions(value: PSModelDetailComponent['ShowActions']) {\n this.ShowActions = value;\n }\n /** @deprecated Use {@link ShowActions}. */\n get showActions(): PSModelDetailComponent['ShowActions'] {\n return this.ShowActions;\n }\n\n @Output() StatusChanged = new EventEmitter<{ modelId: string; newStatus: string }>();\n\n /**\n * @deprecated Use {@link StatusChanged}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (statusChanged) keeps working. Must stay AFTER StatusChanged: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() statusChanged = this.StatusChanged;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly notifications = inject(MJNotificationService);\n\n public readonly LifecycleSteps = ['Draft', 'Validated', 'Published', 'Archived'] as const;\n\n /** @deprecated Use {@link LifecycleSteps}. */\n public get lifecycleSteps() {\n return this.LifecycleSteps;\n }\n public readonly DominanceThreshold = PS_FEATURE_DOMINANCE_THRESHOLD.toFixed(2);\n\n /** @deprecated Use {@link DominanceThreshold}. */\n public get dominanceThreshold() {\n return this.DominanceThreshold;\n }\n\n public Pending: PendingPromotion | null = null;\n\n /** @deprecated Use {@link Pending}. */\n public get pending(): PendingPromotion | null {\n return this.Pending;\n }\n /** @deprecated Use {@link Pending}. */\n public set pending(value: PendingPromotion | null) {\n this.Pending = value;\n }\n public PendingReason = '';\n\n /** @deprecated Use {@link PendingReason}. */\n public get pendingReason() {\n return this.PendingReason;\n }\n /** @deprecated Use {@link PendingReason}. */\n public set pendingReason(value) {\n this.PendingReason = value;\n }\n public Busy = false;\n\n /** @deprecated Use {@link Busy}. */\n public get busy() {\n return this.Busy;\n }\n /** @deprecated Use {@link Busy}. */\n public set busy(value) {\n this.Busy = value;\n }\n\n @Input() displayName?: string;\n\n public get ModelDisplayName(): string {\n if (this.displayName) return this.displayName;\n if (!this.Model) return '';\n return this.Model.Pipeline || (this.Model.Algorithm ? `${this.Model.Algorithm} Model` : 'ML Model');\n }\n\n /** @deprecated Use {@link ModelDisplayName}. */\n public get modelDisplayName(): string {\n return this.ModelDisplayName;\n }\n\n // ── Badges & Lifecycle Stepper ──\n\n public StatusBadgeClass(status: string | null | undefined): string {\n switch ((status ?? '').toLowerCase()) {\n case 'published':\n return 'green';\n case 'validated':\n return 'blue';\n case 'draft':\n return 'amber';\n case 'archived':\n return 'gray';\n default:\n return 'gray';\n }\n }\n\n /** @deprecated Use {@link StatusBadgeClass}. */\n public statusBadgeClass(status: string | null | undefined): string {\n return this.StatusBadgeClass(status);\n }\n\n public StepState(step: string): 'done' | 'curr' | 'todo' {\n const order = ['Draft', 'Validated', 'Published', 'Archived'];\n const currIdx = order.indexOf(this.Model?.Status ?? 'Draft');\n const stepIdx = order.indexOf(step);\n if (stepIdx < currIdx) return 'done';\n if (stepIdx === currIdx) return 'curr';\n return 'todo';\n }\n\n /** @deprecated Use {@link StepState}. */\n public stepState(step: string): 'done' | 'curr' | 'todo' {\n return this.StepState(step);\n }\n\n public get TargetSuffix(): string {\n const target = this.Model?.TargetVariable;\n return target ? ` · predicts ${target}` : '';\n }\n\n /** @deprecated Use {@link TargetSuffix}. */\n public get targetSuffix(): string {\n return this.TargetSuffix;\n }\n\n // ── Metrics & Performance Derivations ──\n\n public get PrimaryScoreLabel(): string {\n if (!this.Model) return 'Score';\n const score = PrimaryModelScore(this.Model);\n return score?.label ?? 'AUC';\n }\n\n /** @deprecated Use {@link PrimaryScoreLabel}. */\n public get primaryScoreLabel(): string {\n return this.PrimaryScoreLabel;\n }\n\n public get TrainPrimaryScore(): string {\n if (!this.Model) return '—';\n const score = PrimaryModelScore(this.Model);\n const trainMetrics = ParseMetrics(this.Model.Metrics);\n if (score && trainMetrics[score.key] != null) {\n return FormatMetricValue(score.key, trainMetrics[score.key]!);\n }\n return trainMetrics.AUC != null ? trainMetrics.AUC.toFixed(3) : '—';\n }\n\n /** @deprecated Use {@link TrainPrimaryScore}. */\n public get trainPrimaryScore(): string {\n return this.TrainPrimaryScore;\n }\n\n public get HoldoutPrimaryScore(): string {\n if (!this.Model) return '—';\n const score = PrimaryModelScore(this.Model);\n const holdoutMetrics = ParseMetrics(this.Model.HoldoutMetrics);\n if (score && holdoutMetrics[score.key] != null) {\n return FormatMetricValue(score.key, holdoutMetrics[score.key]!);\n }\n return holdoutMetrics.AUC != null ? holdoutMetrics.AUC.toFixed(3) : '—';\n }\n\n /** @deprecated Use {@link HoldoutPrimaryScore}. */\n public get holdoutPrimaryScore(): string {\n return this.HoldoutPrimaryScore;\n }\n\n public get SecondaryMetrics(): PSMetricDisplay[] {\n if (!this.Model) return [];\n const score = PrimaryModelScore(this.Model);\n const primaryKey = score?.key;\n const holdout = MetricsToDisplay(ParseMetrics(this.Model.HoldoutMetrics), { excludeAuc: false });\n const all = holdout.length > 0 ? holdout : MetricsToDisplay(ParseMetrics(this.Model.Metrics), { excludeAuc: false });\n return primaryKey ? all.filter((m) => m.key !== primaryKey) : all.filter((m) => m.key !== 'AUC');\n }\n\n /** @deprecated Use {@link SecondaryMetrics}. */\n public get secondaryMetrics(): PSMetricDisplay[] {\n return this.SecondaryMetrics;\n }\n\n public get GapText(): string {\n if (!this.Model) return '';\n const gap = OverfitGap(this.Model);\n return gap == null ? '' : Math.abs(gap).toFixed(3);\n }\n\n /** @deprecated Use {@link GapText}. */\n public get gapText(): string {\n return this.GapText;\n }\n\n public get GapVerdict(): string {\n if (!this.Model) return '';\n const gap = OverfitGap(this.Model);\n if (gap == null) return '';\n return gap > 0.1 ? 'is wide — watch for overfitting' : 'is within tolerance — no overfitting flag';\n }\n\n /** @deprecated Use {@link GapVerdict}. */\n public get gapVerdict(): string {\n return this.GapVerdict;\n }\n\n // ── Feature Importance & Leakage Gate ──\n\n public get Importance(): PSFeatureBar[] {\n if (!this.Model) return [];\n return ParseFeatureImportance(this.Model.FeatureImportance, 6).map((b) => ({\n ...b,\n name: HumanizeFeatureName(b.name),\n }));\n }\n\n /** @deprecated Use {@link Importance}. */\n public get importance(): PSFeatureBar[] {\n return this.Importance;\n }\n\n public get ImportanceCaption(): string {\n const n = this.Importance.length;\n return n === 0 ? 'no data' : `normalized · top ${n}`;\n }\n\n /** @deprecated Use {@link ImportanceCaption}. */\n public get importanceCaption(): string {\n return this.ImportanceCaption;\n }\n\n public get TopFeatureName(): string {\n return this.Importance[0]?.name ?? '—';\n }\n\n /** @deprecated Use {@link TopFeatureName}. */\n public get topFeatureName(): string {\n return this.TopFeatureName;\n }\n\n public get TopFeatureValue(): string {\n return this.Importance[0]?.value ?? '—';\n }\n\n /** @deprecated Use {@link TopFeatureValue}. */\n public get topFeatureValue(): string {\n return this.TopFeatureValue;\n }\n\n public get LeakageFlagged(): boolean {\n if (!this.Model) return false;\n const max = MaxFeatureImportance(this.Model.FeatureImportance);\n return max != null && max >= PS_FEATURE_DOMINANCE_THRESHOLD;\n }\n\n /** @deprecated Use {@link LeakageFlagged}. */\n public get leakageFlagged(): boolean {\n return this.LeakageFlagged;\n }\n\n // ── Actions & Promotion Flow ──\n\n public get CanValidate(): boolean {\n return this.Model?.Status === 'Draft';\n }\n\n /** @deprecated Use {@link CanValidate}. */\n public get canValidate(): boolean {\n return this.CanValidate;\n }\n\n public get CanPublish(): boolean {\n return this.Model?.Status === 'Validated';\n }\n\n /** @deprecated Use {@link CanPublish}. */\n public get canPublish(): boolean {\n return this.CanPublish;\n }\n\n public get CanArchive(): boolean {\n return this.Model?.Status === 'Published' || this.Model?.Status === 'Validated';\n }\n\n /** @deprecated Use {@link CanArchive}. */\n public get canArchive(): boolean {\n return this.CanArchive;\n }\n\n public get ActionHint(): string {\n switch (this.Model?.Status) {\n case 'Draft':\n return 'Verify metrics and feature importance before validating or publishing.';\n case 'Validated':\n return 'Validated and sign-off clear. Ready to promote to production serving.';\n case 'Published':\n return 'Active in production serving. Archiving will detach live predictions.';\n case 'Archived':\n return 'Archived snapshot. Preserved for governance and historical auditing.';\n default:\n return '';\n }\n }\n\n /** @deprecated Use {@link ActionHint}. */\n public get actionHint(): string {\n return this.ActionHint;\n }\n\n public RequestPromote(targetStatus: PredictiveStudioModelTargetStatus): void {\n if (!this.Model) return;\n this.PendingReason = '';\n this.Pending = {\n modelId: this.Model.ID,\n modelName: `${this.ModelDisplayName} v${this.Model.Version}`,\n targetStatus,\n leakageFlagged: this.LeakageFlagged && targetStatus !== 'Archived',\n };\n this.cdr.markForCheck();\n }\n\n /** @deprecated Use {@link RequestPromote}. */\n public requestPromote(targetStatus: PredictiveStudioModelTargetStatus): void {\n return this.RequestPromote(targetStatus);\n }\n\n public CancelPromote(): void {\n if (this.Busy) return;\n this.Pending = null;\n this.PendingReason = '';\n this.cdr.markForCheck();\n }\n\n /** @deprecated Use {@link CancelPromote}. */\n public cancelPromote(): void {\n return this.CancelPromote();\n }\n\n public get PendingTitle(): string {\n if (!this.Pending) return '';\n return this.Pending.targetStatus === 'Archived' ? 'Archive model' : `Promote to ${this.Pending.targetStatus}`;\n }\n\n /** @deprecated Use {@link PendingTitle}. */\n public get pendingTitle(): string {\n return this.PendingTitle;\n }\n\n public get PendingIcon(): string {\n if (!this.Pending) return 'fa-solid fa-check';\n return this.Pending.targetStatus === 'Archived' ? 'fa-solid fa-box-archive' : 'fa-solid fa-arrow-up';\n }\n\n /** @deprecated Use {@link PendingIcon}. */\n public get pendingIcon(): string {\n return this.PendingIcon;\n }\n\n public get PendingConfirmLabel(): string {\n if (!this.Pending) return 'Confirm';\n return this.Pending.targetStatus === 'Archived' ? 'Archive' : `Promote to ${this.Pending.targetStatus}`;\n }\n\n /** @deprecated Use {@link PendingConfirmLabel}. */\n public get pendingConfirmLabel(): string {\n return this.PendingConfirmLabel;\n }\n\n public get PendingVariant(): 'info' | 'warn' | 'danger' {\n if (!this.Pending) return 'info';\n if (this.Pending.targetStatus === 'Archived') return 'warn';\n return this.Pending.leakageFlagged ? 'warn' : 'info';\n }\n\n /** @deprecated Use {@link PendingVariant}. */\n public get pendingVariant(): 'info' | 'warn' | 'danger' {\n return this.PendingVariant;\n }\n\n public get PendingMessage(): string {\n if (!this.Pending) return '';\n const name = this.escapeHtml(this.Pending.modelName);\n if (this.Pending.targetStatus === 'Archived') {\n return `Archive <strong>${name}</strong>? This detaches any active scoring bindings and removes it from production scoring. The model artifact remains immutable and recoverable.`;\n }\n if (this.Pending.leakageFlagged) {\n return `<strong>${name}</strong> is flagged for possible target leakage. Publishing requires an explicit sign-off — confirm you understand the risk and provide a reason below.`;\n }\n return `Promote <strong>${name}</strong> to <strong>${this.Pending.targetStatus}</strong>? This changes only the lifecycle state — the trained weights never change.`;\n }\n\n /** @deprecated Use {@link PendingMessage}. */\n public get pendingMessage(): string {\n return this.PendingMessage;\n }\n\n public async ConfirmPromote(reason: string): Promise<void> {\n if (!this.Pending || this.Busy || !this.Model) return;\n this.Busy = true;\n this.cdr.markForCheck();\n\n const { modelId, modelName, targetStatus, leakageFlagged } = this.Pending;\n\n try {\n const op = new PredictiveStudioPromoteModelOperation();\n const result = await op.Execute(\n {\n modelId,\n targetStatus,\n signOff: leakageFlagged ? true : undefined,\n reason: reason || undefined,\n },\n { provider: this.Provider ?? undefined, user: this.CurrentUser ?? undefined },\n );\n\n if (result.Success && result.Output?.promoted) {\n const newStatus = result.Output.status;\n this.Model.Status = newStatus as 'Draft' | 'Validated' | 'Published' | 'Archived';\n this.notifications.CreateSimpleNotification(`${modelName} → ${newStatus}`, 'success', 3500);\n this.StatusChanged.emit({ modelId, newStatus });\n this.Pending = null;\n this.PendingReason = '';\n } else {\n this.notifications.CreateSimpleNotification(\n result.ErrorMessage || `Could not promote ${modelName} (status: ${result.Output?.status ?? 'unchanged'}).`,\n 'error',\n 5000,\n );\n }\n } catch (e) {\n this.notifications.CreateSimpleNotification(\n `Promotion failed: ${e instanceof Error ? e.message : String(e)}`,\n 'error',\n 5000,\n );\n } finally {\n this.Busy = false;\n this.cdr.markForCheck();\n }\n }\n\n /** @deprecated Use {@link ConfirmPromote}. */\n public async confirmPromote(reason: string): Promise<void> {\n return this.ConfirmPromote(reason);\n }\n\n private escapeHtml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n }\n}\n","<div class=\"ps-model-detail\" data-testid=\"ps-model-detail\">\n @if (model) {\n <!-- 1. Header Card -->\n <div class=\"ps-card\">\n <div class=\"ps-card-body dh\">\n <div class=\"big-ico\"><i class=\"fa-solid fa-cube\"></i></div>\n <div style=\"flex:1;min-width:0;\">\n <h2 data-testid=\"ps-registry-detail-name\">\n {{ modelDisplayName }}\n <span class=\"ps-tag ps-mono\">v{{ model.Version }}</span>\n </h2>\n <div class=\"ps-muted ps-small sub\">\n {{ model.Algorithm || 'Model' }}{{ targetSuffix }} • immutable snapshot\n </div>\n </div>\n <span class=\"ps-badge\" [class]=\"statusBadgeClass(model.Status)\">{{ model.Status }}</span>\n </div>\n </div>\n\n <!-- 2. Lifecycle Stepper -->\n <div class=\"ps-card\">\n <div class=\"ps-card-body\">\n <div class=\"ps-section-title\">Lifecycle</div>\n <div class=\"ps-stepper\">\n @for (step of lifecycleSteps; track step; let last = $last) {\n <div class=\"ps-step\" [class.done]=\"stepState(step) === 'done'\" [class.curr]=\"stepState(step) === 'curr'\">\n <span class=\"pip\">\n @if (stepState(step) === 'done') {\n <i class=\"fa-solid fa-check\"></i>\n } @else {\n {{ $index + 1 }}\n }\n </span>\n {{ step }}\n </div>\n @if (!last) {\n <span class=\"ln\"></span>\n }\n }\n </div>\n <div class=\"ps-small ps-muted\" style=\"margin-top:10px\">\n Models are immutable once registered; promotion only changes lifecycle state, never weights.\n </div>\n </div>\n </div>\n\n <!-- 3. Performance Metrics -->\n <div class=\"ps-card\">\n <div class=\"ps-card-head\">\n <h3>Performance</h3>\n <span class=\"ps-muted ps-small\">Holdout = held-out test fold, never seen in training</span>\n </div>\n <div class=\"ps-card-body\">\n <div class=\"metric-pair\">\n <div class=\"mtile\">\n <div class=\"ps-section-title\">Train {{ primaryScoreLabel }}</div>\n <div class=\"v\">{{ trainPrimaryScore }}</div>\n <div class=\"ps-muted ps-small\">in-sample • optimistic</div>\n </div>\n <div class=\"mtile honest\">\n <div class=\"ps-section-title\">Holdout {{ primaryScoreLabel }}</div>\n <div class=\"v\">{{ holdoutPrimaryScore }}</div>\n <div class=\"ps-muted ps-small\">out-of-sample • the honest number</div>\n </div>\n </div>\n\n @if (secondaryMetrics.length > 0) {\n <div class=\"stat-bar\">\n @for (s of secondaryMetrics; track s.key) {\n <div class=\"b\">\n <span class=\"ps-muted ps-small\">{{ s.label }}</span>\n <strong>{{ s.value }}</strong>\n </div>\n }\n </div>\n } @else {\n <div class=\"ps-small ps-muted\" style=\"margin-top:6px\">No secondary metrics recorded for this model.</div>\n }\n\n @if (gapText) {\n <div class=\"ps-small ps-muted\" style=\"margin-top:10px\">\n Train–holdout gap of <strong>{{ gapText }}</strong> {{ gapVerdict }}.\n </div>\n }\n </div>\n </div>\n\n <!-- 4. Feature Importance -->\n <div class=\"ps-card\">\n <div class=\"ps-card-head\">\n <h3>Feature Importance</h3>\n <span class=\"ps-muted ps-small\">{{ importanceCaption }}</span>\n </div>\n <div class=\"ps-card-body\">\n @if (importance.length > 0) {\n @for (f of importance; track f.name) {\n <div class=\"ps-fbar\">\n <span class=\"name ps-small\" [title]=\"f.name\">{{ f.name }}</span>\n <div class=\"track\">\n <span [class.warn]=\"f.warning\" [style.width.%]=\"f.pct\"></span>\n </div>\n <span class=\"ps-mono\">{{ f.value }}</span>\n </div>\n }\n } @else {\n <div class=\"ps-small ps-muted\">No feature-importance data was recorded for this model.</div>\n }\n </div>\n </div>\n\n <!-- 5. Leakage Sign-Off Gate -->\n @if (importance.length > 0) {\n <div class=\"ps-callout gate\" [class.success]=\"!leakageFlagged\" [class.warn]=\"leakageFlagged\">\n <i [class]=\"leakageFlagged ? 'fa-solid fa-triangle-exclamation' : 'fa-solid fa-shield-halved'\"></i>\n <div>\n @if (leakageFlagged) {\n <strong>Leakage flag raised.</strong> A single feature dominates — top importance is\n <strong>{{ topFeatureName }} at {{ topFeatureValue }}</strong>, at/above the\n <strong>{{ dominanceThreshold }}</strong> dominance threshold.\n <div class=\"ps-small\" style=\"margin-top:6px\">\n <i class=\"fa-solid fa-pen\"></i> Sign-off with a reason is required to publish this model.\n </div>\n } @else {\n <strong>Leakage gate clear.</strong> No single feature dominates — top importance is\n <strong>{{ topFeatureName }} at {{ topFeatureValue }}</strong>, below the\n <strong>{{ dominanceThreshold }}</strong> dominance threshold.\n <div class=\"ps-small\" style=\"margin-top:6px\">\n <i class=\"fa-solid fa-check\"></i> Sign-off required before any Validated → Published promotion.\n </div>\n }\n </div>\n </div>\n }\n\n <!-- 6. Lifecycle Actions -->\n @if (showActions) {\n <div class=\"ps-card\">\n <div class=\"ps-card-body ps-row\" style=\"align-items:center;flex-wrap:wrap;gap:8px\">\n <span class=\"ps-muted ps-small\" style=\"flex:1\">{{ actionHint }}</span>\n @if (canValidate) {\n <button mjButton variant=\"secondary\" size=\"sm\" data-testid=\"ps-registry-validate\" (click)=\"requestPromote('Validated')\">\n <i class=\"fa-solid fa-circle-check\"></i> Mark Validated\n </button>\n }\n @if (canPublish) {\n <button mjButton variant=\"primary\" size=\"sm\" data-testid=\"ps-registry-promote\" (click)=\"requestPromote('Published')\">\n <i class=\"fa-solid fa-arrow-up\"></i> Promote to Published\n </button>\n }\n @if (canArchive) {\n <button mjButton variant=\"secondary\" size=\"sm\" data-testid=\"ps-registry-archive\" (click)=\"requestPromote('Archived')\">\n <i class=\"fa-solid fa-box-archive\"></i> Archive\n </button>\n }\n </div>\n </div>\n }\n\n <!-- 7. Confirm Promotion Modal -->\n @if (pending) {\n <div class=\"ps-modal-backdrop\" (click)=\"cancelPromote()\">\n <div class=\"ps-modal\" (click)=\"$event.stopPropagation()\" data-testid=\"ps-confirm-modal\">\n <div class=\"ps-modal-head\" [class.warn]=\"pendingVariant === 'warn'\" [class.danger]=\"pendingVariant === 'danger'\">\n <span class=\"ico\"><i [class]=\"pendingIcon\"></i></span>\n <h3>{{ pendingTitle }}</h3>\n </div>\n <div class=\"ps-modal-body\">\n <div [innerHTML]=\"pendingMessage\"></div>\n @if (pending.leakageFlagged || pending.targetStatus === 'Archived') {\n <div class=\"ps-field\" style=\"margin-top:12px\">\n <label>\n {{ pending.leakageFlagged ? 'Leakage sign-off reason' : 'Reason (optional)' }}\n {{ pending.leakageFlagged ? ' *' : '' }}\n </label>\n <textarea\n class=\"ps-input\"\n rows=\"3\"\n [(ngModel)]=\"pendingReason\"\n [placeholder]=\"pending.leakageFlagged ? 'Explain why this model is safe to publish despite the leakage flag…' : 'Add an optional note for the record…'\"\n [disabled]=\"busy\"></textarea>\n </div>\n }\n </div>\n <div class=\"ps-modal-foot\">\n <button\n mjButton\n [variant]=\"pendingVariant === 'danger' ? 'danger' : 'primary'\"\n size=\"sm\"\n [disabled]=\"busy || (pending.leakageFlagged && !pendingReason.trim())\"\n (click)=\"confirmPromote(pendingReason.trim())\">\n @if (busy) {\n <i class=\"fa-solid fa-circle-notch fa-spin\"></i>\n } @else {\n <i [class]=\"pendingIcon\"></i>\n }\n {{ pendingConfirmLabel }}\n </button>\n <span class=\"ps-spacer\" style=\"flex:1\"></span>\n <button mjButton variant=\"secondary\" size=\"sm\" [disabled]=\"busy\" (click)=\"cancelPromote()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n }\n } @else {\n <div class=\"ps-empty\" style=\"padding: 32px; text-align: center;\">\n <span class=\"ps-empty-ico\"><i class=\"fa-solid fa-cube\"></i></span>\n <h3>No Model Selected</h3>\n <p class=\"ps-muted\">Select an ML Model from the list to inspect its configuration and metrics.</p>\n </div>\n }\n</div>\n"]}
|
|
@@ -13,48 +13,164 @@ interface CategoryTreeNode {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class MJQueryFormComponentExtended extends MJQueryFormComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
15
15
|
record: MJQueryEntityExtended;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
QueryParameters: MJQueryParameterEntity[];
|
|
17
|
+
/** @deprecated Use {@link QueryParameters}. */
|
|
18
|
+
get queryParameters(): MJQueryParameterEntity[];
|
|
19
|
+
/** @deprecated Use {@link QueryParameters}. */
|
|
20
|
+
set queryParameters(value: MJQueryParameterEntity[]);
|
|
21
|
+
QueryFields: MJQueryFieldEntity[];
|
|
22
|
+
/** @deprecated Use {@link QueryFields}. */
|
|
23
|
+
get queryFields(): MJQueryFieldEntity[];
|
|
24
|
+
/** @deprecated Use {@link QueryFields}. */
|
|
25
|
+
set queryFields(value: MJQueryFieldEntity[]);
|
|
26
|
+
QueryEntities: MJQueryEntityEntity[];
|
|
27
|
+
/** @deprecated Use {@link QueryEntities}. */
|
|
28
|
+
get queryEntities(): MJQueryEntityEntity[];
|
|
29
|
+
/** @deprecated Use {@link QueryEntities}. */
|
|
30
|
+
set queryEntities(value: MJQueryEntityEntity[]);
|
|
31
|
+
QueryPermissions: MJQueryPermissionEntity[];
|
|
32
|
+
/** @deprecated Use {@link QueryPermissions}. */
|
|
33
|
+
get queryPermissions(): MJQueryPermissionEntity[];
|
|
34
|
+
/** @deprecated Use {@link QueryPermissions}. */
|
|
35
|
+
set queryPermissions(value: MJQueryPermissionEntity[]);
|
|
36
|
+
IsLoadingParameters: boolean;
|
|
37
|
+
/** @deprecated Use {@link IsLoadingParameters}. */
|
|
38
|
+
get isLoadingParameters(): boolean;
|
|
39
|
+
/** @deprecated Use {@link IsLoadingParameters}. */
|
|
40
|
+
set isLoadingParameters(value: boolean);
|
|
41
|
+
IsLoadingFields: boolean;
|
|
42
|
+
/** @deprecated Use {@link IsLoadingFields}. */
|
|
43
|
+
get isLoadingFields(): boolean;
|
|
44
|
+
/** @deprecated Use {@link IsLoadingFields}. */
|
|
45
|
+
set isLoadingFields(value: boolean);
|
|
46
|
+
IsLoadingEntities: boolean;
|
|
47
|
+
/** @deprecated Use {@link IsLoadingEntities}. */
|
|
48
|
+
get isLoadingEntities(): boolean;
|
|
49
|
+
/** @deprecated Use {@link IsLoadingEntities}. */
|
|
50
|
+
set isLoadingEntities(value: boolean);
|
|
51
|
+
IsLoadingPermissions: boolean;
|
|
52
|
+
/** @deprecated Use {@link IsLoadingPermissions}. */
|
|
53
|
+
get isLoadingPermissions(): boolean;
|
|
54
|
+
/** @deprecated Use {@link IsLoadingPermissions}. */
|
|
55
|
+
set isLoadingPermissions(value: boolean);
|
|
56
|
+
HasUnsavedChanges: boolean;
|
|
57
|
+
/** @deprecated Use {@link HasUnsavedChanges}. */
|
|
58
|
+
get hasUnsavedChanges(): boolean;
|
|
59
|
+
/** @deprecated Use {@link HasUnsavedChanges}. */
|
|
60
|
+
set hasUnsavedChanges(value: boolean);
|
|
61
|
+
ShowFiltersHelp: boolean;
|
|
62
|
+
/** @deprecated Use {@link ShowFiltersHelp}. */
|
|
63
|
+
get showFiltersHelp(): boolean;
|
|
64
|
+
/** @deprecated Use {@link ShowFiltersHelp}. */
|
|
65
|
+
set showFiltersHelp(value: boolean);
|
|
66
|
+
ShowRunDialog: boolean;
|
|
67
|
+
/** @deprecated Use {@link ShowRunDialog}. */
|
|
68
|
+
get showRunDialog(): boolean;
|
|
69
|
+
/** @deprecated Use {@link ShowRunDialog}. */
|
|
70
|
+
set showRunDialog(value: boolean);
|
|
71
|
+
CategoryPathDisplay: string;
|
|
72
|
+
/** @deprecated Use {@link CategoryPathDisplay}. */
|
|
73
|
+
get categoryPathDisplay(): string;
|
|
74
|
+
/** @deprecated Use {@link CategoryPathDisplay}. */
|
|
75
|
+
set categoryPathDisplay(value: string);
|
|
28
76
|
IsSaving: boolean;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
77
|
+
SqlPanelExpanded: boolean;
|
|
78
|
+
/** @deprecated Use {@link SqlPanelExpanded}. */
|
|
79
|
+
get sqlPanelExpanded(): boolean;
|
|
80
|
+
/** @deprecated Use {@link SqlPanelExpanded}. */
|
|
81
|
+
set sqlPanelExpanded(value: boolean);
|
|
82
|
+
ParametersPanelExpanded: boolean;
|
|
83
|
+
/** @deprecated Use {@link ParametersPanelExpanded}. */
|
|
84
|
+
get parametersPanelExpanded(): boolean;
|
|
85
|
+
/** @deprecated Use {@link ParametersPanelExpanded}. */
|
|
86
|
+
set parametersPanelExpanded(value: boolean);
|
|
87
|
+
FieldsPanelExpanded: boolean;
|
|
88
|
+
/** @deprecated Use {@link FieldsPanelExpanded}. */
|
|
89
|
+
get fieldsPanelExpanded(): boolean;
|
|
90
|
+
/** @deprecated Use {@link FieldsPanelExpanded}. */
|
|
91
|
+
set fieldsPanelExpanded(value: boolean);
|
|
92
|
+
EntitiesPanelExpanded: boolean;
|
|
93
|
+
/** @deprecated Use {@link EntitiesPanelExpanded}. */
|
|
94
|
+
get entitiesPanelExpanded(): boolean;
|
|
95
|
+
/** @deprecated Use {@link EntitiesPanelExpanded}. */
|
|
96
|
+
set entitiesPanelExpanded(value: boolean);
|
|
97
|
+
TechnicalDescriptionPanelExpanded: boolean;
|
|
98
|
+
/** @deprecated Use {@link TechnicalDescriptionPanelExpanded}. */
|
|
99
|
+
get technicalDescriptionPanelExpanded(): boolean;
|
|
100
|
+
/** @deprecated Use {@link TechnicalDescriptionPanelExpanded}. */
|
|
101
|
+
set technicalDescriptionPanelExpanded(value: boolean);
|
|
102
|
+
DetailsPanelExpanded: boolean;
|
|
103
|
+
/** @deprecated Use {@link DetailsPanelExpanded}. */
|
|
104
|
+
get detailsPanelExpanded(): boolean;
|
|
105
|
+
/** @deprecated Use {@link DetailsPanelExpanded}. */
|
|
106
|
+
set detailsPanelExpanded(value: boolean);
|
|
107
|
+
PermissionsPanelExpanded: boolean;
|
|
108
|
+
/** @deprecated Use {@link PermissionsPanelExpanded}. */
|
|
109
|
+
get permissionsPanelExpanded(): boolean;
|
|
110
|
+
/** @deprecated Use {@link PermissionsPanelExpanded}. */
|
|
111
|
+
set permissionsPanelExpanded(value: boolean);
|
|
112
|
+
DependentsPanelExpanded: boolean;
|
|
113
|
+
/** @deprecated Use {@link DependentsPanelExpanded}. */
|
|
114
|
+
get dependentsPanelExpanded(): boolean;
|
|
115
|
+
/** @deprecated Use {@link DependentsPanelExpanded}. */
|
|
116
|
+
set dependentsPanelExpanded(value: boolean);
|
|
117
|
+
CategoryOptions: Array<{
|
|
38
118
|
text: string;
|
|
39
119
|
value: string;
|
|
40
120
|
}>;
|
|
41
|
-
|
|
42
|
-
|
|
121
|
+
/** @deprecated Use {@link CategoryOptions}. */
|
|
122
|
+
get categoryOptions(): Array<{
|
|
123
|
+
text: string;
|
|
124
|
+
value: string;
|
|
125
|
+
}>;
|
|
126
|
+
/** @deprecated Use {@link CategoryOptions}. */
|
|
127
|
+
set categoryOptions(value: Array<{
|
|
128
|
+
text: string;
|
|
129
|
+
value: string;
|
|
130
|
+
}>);
|
|
131
|
+
Categories: MJQueryCategoryEntity[];
|
|
132
|
+
/** @deprecated Use {@link Categories}. */
|
|
133
|
+
get categories(): MJQueryCategoryEntity[];
|
|
134
|
+
/** @deprecated Use {@link Categories}. */
|
|
135
|
+
set categories(value: MJQueryCategoryEntity[]);
|
|
136
|
+
CategoryTreeData: CategoryTreeNode[];
|
|
137
|
+
/** @deprecated Use {@link CategoryTreeData}. */
|
|
138
|
+
get categoryTreeData(): CategoryTreeNode[];
|
|
139
|
+
/** @deprecated Use {@link CategoryTreeData}. */
|
|
140
|
+
set categoryTreeData(value: CategoryTreeNode[]);
|
|
43
141
|
/** Tree dropdown config for Query Categories */
|
|
44
142
|
CategoryBranchConfig: TreeBranchConfig;
|
|
45
143
|
/** CategoryID as CompositeKey for tree dropdown binding */
|
|
46
144
|
get CategoryIDAsKey(): CompositeKey | null;
|
|
47
145
|
/** Handle tree dropdown category selection */
|
|
48
146
|
OnCategoryTreeChange(value: CompositeKey | CompositeKey[] | null): void;
|
|
49
|
-
|
|
147
|
+
StatusOptions: {
|
|
50
148
|
text: string;
|
|
51
149
|
value: string;
|
|
52
150
|
}[];
|
|
151
|
+
/** @deprecated Use {@link StatusOptions}. */
|
|
152
|
+
get statusOptions(): {
|
|
153
|
+
text: string;
|
|
154
|
+
value: string;
|
|
155
|
+
}[];
|
|
156
|
+
/** @deprecated Use {@link StatusOptions}. */
|
|
157
|
+
set statusOptions(value: {
|
|
158
|
+
text: string;
|
|
159
|
+
value: string;
|
|
160
|
+
}[]);
|
|
53
161
|
readonly ToolbarConfig: FormToolbarConfig;
|
|
54
162
|
/** Custom-layout Query form looks best full-width on first open. */
|
|
55
163
|
getDefaultFormWidthMode(): 'centered' | 'full-width';
|
|
56
|
-
|
|
57
|
-
|
|
164
|
+
SqlEditor: CodeEditorComponent | null;
|
|
165
|
+
/** @deprecated Use {@link SqlEditor}. */
|
|
166
|
+
get sqlEditor(): CodeEditorComponent | null;
|
|
167
|
+
/** @deprecated Use {@link SqlEditor}. */
|
|
168
|
+
set sqlEditor(value: CodeEditorComponent | null);
|
|
169
|
+
SqlFilters: import("@memberjunction/core").RunQuerySQLFilter[];
|
|
170
|
+
/** @deprecated Use {@link SqlFilters}. */
|
|
171
|
+
get sqlFilters(): import("@memberjunction/core").RunQuerySQLFilter[];
|
|
172
|
+
/** @deprecated Use {@link SqlFilters}. */
|
|
173
|
+
set sqlFilters(value: import("@memberjunction/core").RunQuerySQLFilter[]);
|
|
58
174
|
private navigationService;
|
|
59
175
|
private formPresenter;
|
|
60
176
|
private confirmService;
|
|
@@ -72,41 +188,69 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
|
|
|
72
188
|
StartEditMode(): void;
|
|
73
189
|
CancelEdit(): void;
|
|
74
190
|
private updateEditorValue;
|
|
191
|
+
IsFormReadOnly(): boolean;
|
|
192
|
+
/** @deprecated Use {@link IsFormReadOnly}. */
|
|
75
193
|
isFormReadOnly(): boolean;
|
|
194
|
+
LoadQueryParameters(): void;
|
|
195
|
+
/** @deprecated Use {@link LoadQueryParameters}. */
|
|
76
196
|
loadQueryParameters(): void;
|
|
197
|
+
LoadQueryFields(): void;
|
|
198
|
+
/** @deprecated Use {@link LoadQueryFields}. */
|
|
77
199
|
loadQueryFields(): void;
|
|
200
|
+
LoadQueryEntities(): void;
|
|
201
|
+
/** @deprecated Use {@link LoadQueryEntities}. */
|
|
78
202
|
loadQueryEntities(): void;
|
|
203
|
+
LoadQueryPermissions(): void;
|
|
204
|
+
/** @deprecated Use {@link LoadQueryPermissions}. */
|
|
79
205
|
loadQueryPermissions(): void;
|
|
206
|
+
LoadCategories(): void;
|
|
207
|
+
/** @deprecated Use {@link LoadCategories}. */
|
|
80
208
|
loadCategories(): void;
|
|
81
209
|
private buildCategoryTree;
|
|
210
|
+
GetCategoryPath(): string;
|
|
211
|
+
/** @deprecated Use {@link GetCategoryPath}. */
|
|
82
212
|
getCategoryPath(): string;
|
|
83
213
|
private updateCategoryPathDisplay;
|
|
214
|
+
OnCategoryChange(value: string): Promise<void>;
|
|
215
|
+
/** @deprecated Use {@link OnCategoryChange}. */
|
|
84
216
|
onCategoryChange(value: string): Promise<void>;
|
|
85
217
|
private isDuplicateCategory;
|
|
86
218
|
/**
|
|
87
219
|
* Updates the hasUnsavedChanges flag based on entity dirty states
|
|
88
220
|
*/
|
|
89
221
|
private updateUnsavedChangesFlag;
|
|
222
|
+
ToggleFiltersHelp(): void;
|
|
223
|
+
/** @deprecated Use {@link ToggleFiltersHelp}. */
|
|
90
224
|
toggleFiltersHelp(): void;
|
|
91
225
|
/**
|
|
92
226
|
* Run the query with parameter dialog
|
|
93
227
|
*/
|
|
228
|
+
RunQuery(): Promise<void>;
|
|
229
|
+
/** @deprecated Use {@link RunQuery}. */
|
|
94
230
|
runQuery(): Promise<void>;
|
|
95
231
|
/**
|
|
96
232
|
* Handle run dialog close
|
|
97
233
|
*/
|
|
234
|
+
OnRunDialogClose(): void;
|
|
235
|
+
/** @deprecated Use {@link OnRunDialogClose}. */
|
|
98
236
|
onRunDialogClose(): void;
|
|
99
237
|
/**
|
|
100
238
|
* Add a new parameter
|
|
101
239
|
*/
|
|
240
|
+
AddParameter(): Promise<void>;
|
|
241
|
+
/** @deprecated Use {@link AddParameter}. */
|
|
102
242
|
addParameter(): Promise<void>;
|
|
103
243
|
/**
|
|
104
244
|
* Edit a parameter
|
|
105
245
|
*/
|
|
246
|
+
EditParameter(param: MJQueryParameterEntity): Promise<void>;
|
|
247
|
+
/** @deprecated Use {@link EditParameter}. */
|
|
106
248
|
editParameter(param: MJQueryParameterEntity): Promise<void>;
|
|
107
249
|
/**
|
|
108
250
|
* Delete a parameter
|
|
109
251
|
*/
|
|
252
|
+
DeleteParameter(param: MJQueryParameterEntity): Promise<void>;
|
|
253
|
+
/** @deprecated Use {@link DeleteParameter}. */
|
|
110
254
|
deleteParameter(param: MJQueryParameterEntity): Promise<void>;
|
|
111
255
|
private removeParameterFromList;
|
|
112
256
|
/**
|
|
@@ -114,13 +258,19 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
|
|
|
114
258
|
* MJFormPresenterService. A new record opens in edit mode automatically.
|
|
115
259
|
* On save, refresh the category tree and select the new category.
|
|
116
260
|
*/
|
|
261
|
+
CreateCategory(): Promise<void>;
|
|
262
|
+
/** @deprecated Use {@link CreateCategory}. */
|
|
117
263
|
createCategory(): Promise<void>;
|
|
118
264
|
/**
|
|
119
265
|
* Edit the currently-selected category in a slide-in via the generic
|
|
120
266
|
* MJFormPresenterService. `StartInEditMode` opens the existing record
|
|
121
267
|
* editable. On save, refresh the category tree.
|
|
122
268
|
*/
|
|
269
|
+
EditSelectedCategory(): Promise<void>;
|
|
270
|
+
/** @deprecated Use {@link EditSelectedCategory}. */
|
|
123
271
|
editSelectedCategory(): Promise<void>;
|
|
272
|
+
OnCategoryCreated(newCategory: BaseEntity): void;
|
|
273
|
+
/** @deprecated Use {@link OnCategoryCreated}. */
|
|
124
274
|
onCategoryCreated(newCategory: BaseEntity): void;
|
|
125
275
|
/**
|
|
126
276
|
* Format date for display
|
|
@@ -128,40 +278,65 @@ export declare class MJQueryFormComponentExtended extends MJQueryFormComponent i
|
|
|
128
278
|
formatDate(date: Date | string | null): string;
|
|
129
279
|
SaveRecord(StopEditModeAfterSave?: boolean): Promise<boolean>;
|
|
130
280
|
private internalSaveRecord;
|
|
281
|
+
GetStatusBadgeColor(): string;
|
|
282
|
+
/** @deprecated Use {@link GetStatusBadgeColor}. */
|
|
131
283
|
getStatusBadgeColor(): string;
|
|
284
|
+
GetStatusBannerIcon(): string;
|
|
285
|
+
/** @deprecated Use {@link GetStatusBannerIcon}. */
|
|
132
286
|
getStatusBannerIcon(): string;
|
|
287
|
+
GetStatusBannerMessage(): string;
|
|
288
|
+
/** @deprecated Use {@link GetStatusBannerMessage}. */
|
|
133
289
|
getStatusBannerMessage(): string;
|
|
134
290
|
/**
|
|
135
291
|
* Handle composition token click — navigate to the referenced query
|
|
136
292
|
*/
|
|
293
|
+
OnCompositionTokenClick(event: CompositionTokenClickEvent): void;
|
|
294
|
+
/** @deprecated Use {@link OnCompositionTokenClick}. */
|
|
137
295
|
onCompositionTokenClick(event: CompositionTokenClickEvent): void;
|
|
138
296
|
/**
|
|
139
297
|
* Navigate to a dependent query's record
|
|
140
298
|
*/
|
|
299
|
+
OnDependentQueryClick(dep: MJQueryDependencyEntity): void;
|
|
300
|
+
/** @deprecated Use {@link OnDependentQueryClick}. */
|
|
141
301
|
onDependentQueryClick(dep: MJQueryDependencyEntity): void;
|
|
142
302
|
/**
|
|
143
303
|
* Handle SQL value changes from the code editor
|
|
144
304
|
*/
|
|
305
|
+
OnSQLChange(value: string): void;
|
|
306
|
+
/** @deprecated Use {@link OnSQLChange}. */
|
|
145
307
|
onSQLChange(value: string): void;
|
|
146
308
|
/**
|
|
147
309
|
* Add a new field
|
|
148
310
|
*/
|
|
311
|
+
AddField(): Promise<void>;
|
|
312
|
+
/** @deprecated Use {@link AddField}. */
|
|
149
313
|
addField(): Promise<void>;
|
|
150
314
|
/**
|
|
151
315
|
* Delete a field
|
|
152
316
|
*/
|
|
317
|
+
DeleteField(field: MJQueryFieldEntity): Promise<void>;
|
|
318
|
+
/** @deprecated Use {@link DeleteField}. */
|
|
153
319
|
deleteField(field: MJQueryFieldEntity): Promise<void>;
|
|
154
320
|
/**
|
|
155
321
|
* Add a new entity
|
|
156
322
|
*/
|
|
323
|
+
AddEntity(): Promise<void>;
|
|
324
|
+
/** @deprecated Use {@link AddEntity}. */
|
|
157
325
|
addEntity(): Promise<void>;
|
|
158
326
|
/**
|
|
159
327
|
* Delete an entity
|
|
160
328
|
*/
|
|
329
|
+
DeleteEntity(entity: MJQueryEntityEntity): Promise<void>;
|
|
330
|
+
/** @deprecated Use {@link DeleteEntity}. */
|
|
161
331
|
deleteEntity(entity: MJQueryEntityEntity): Promise<void>;
|
|
162
332
|
/**
|
|
163
333
|
* Get entity options for dropdown
|
|
164
334
|
*/
|
|
335
|
+
GetEntityOptions(): Array<{
|
|
336
|
+
text: string;
|
|
337
|
+
id: string;
|
|
338
|
+
}>;
|
|
339
|
+
/** @deprecated Use {@link GetEntityOptions}. */
|
|
165
340
|
getEntityOptions(): Array<{
|
|
166
341
|
text: string;
|
|
167
342
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAgC,aAAa,EAAU,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,EAAe,MAAM,+BAA+B,CAAC;AAE7N,OAAO,EAAqB,iBAAiB,EAAwD,MAAM,+BAA+B,CAAC;AAC3I,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAyB,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;;AAKjG,UAAU,gBAAgB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,qBAOa,4BAA6B,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IACvG,MAAM,EAAG,qBAAqB,CAAC;IAC/B,eAAe,EAAE,sBAAsB,EAAE,CAAM;IAC/C,WAAW,EAAE,kBAAkB,EAAE,CAAM;
|
|
1
|
+
{"version":3,"file":"query-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/Queries/query-form.component.ts"],"names":[],"mappings":"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"}
|