@memberjunction/ng-core-entity-forms 6.1.4 → 6.2.0-edge.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +794 -262
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +686 -238
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +209 -28
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +494 -138
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-form.component.d.ts +27 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js +193 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +75 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js +244 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +173 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +883 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -0
- 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 +133 -7
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +1268 -19
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +142 -17
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +333 -113
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +217 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +549 -169
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +390 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1015 -343
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +2 -2
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +121 -14
- 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 +287 -79
- 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 +32 -30
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +21 -4
- 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/MJAIPrompt/mjaiprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +62 -26
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.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 +59 -51
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +33 -15
- package/dist/lib/generated/Entities/MJCredential/mjcredential.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 +100 -82
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +24 -20
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +122 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js +125 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.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 +23 -5
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js +25 -6
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.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/MJQuery/mjquery.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +11 -15
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +43 -7
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +155 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js +78 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +240 -237
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +11 -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 +122 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +236 -11
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +72 -13
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +577 -78
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +133 -14
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +322 -124
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +4 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +43 -41
|
@@ -5,50 +5,1299 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Component } from '@angular/core';
|
|
8
|
-
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
-
import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
8
|
+
import { RegisterClass, RegisterClassEx, SafeJSONParse, EscapeSQLString } from '@memberjunction/global';
|
|
9
|
+
import { BaseFormComponent, BaseFormPolicy, DETAILS_SECTION_KEY } from '@memberjunction/ng-base-forms';
|
|
10
10
|
import { MJRecordProcessFormComponent } from '../../generated/Entities/MJRecordProcess/mjrecordprocess.form.component';
|
|
11
|
+
import { RunView, LogError } from '@memberjunction/core';
|
|
12
|
+
import { validateSpec } from '@memberjunction/feature-pipelines';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@
|
|
13
|
-
import * as i2 from "@memberjunction/ng-
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@memberjunction/ng-base-forms";
|
|
16
|
+
import * as i3 from "@memberjunction/ng-record-process-studio";
|
|
17
|
+
const _forTrack0 = ($index, $item) => $item.Param;
|
|
18
|
+
const _forTrack1 = ($index, $item) => $item.Name;
|
|
19
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "span", 18);
|
|
21
|
+
i0.ɵɵelement(1, "i", 64);
|
|
22
|
+
i0.ɵɵelementStart(2, "span");
|
|
23
|
+
i0.ɵɵtext(3, "Feature Pipeline");
|
|
24
|
+
i0.ɵɵelementEnd()();
|
|
25
|
+
} }
|
|
26
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_41_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "span");
|
|
28
|
+
i0.ɵɵtext(1, "Scheduled");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} }
|
|
31
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_42_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "span");
|
|
33
|
+
i0.ɵɵtext(1, "On Change");
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
} }
|
|
36
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_43_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelementStart(0, "span");
|
|
38
|
+
i0.ɵɵtext(1, "On Demand");
|
|
39
|
+
i0.ɵɵelementEnd();
|
|
40
|
+
} }
|
|
41
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementStart(0, "span", 26);
|
|
43
|
+
i0.ɵɵtext(1, "Manual");
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
} }
|
|
46
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
i0.ɵɵelementStart(0, "code");
|
|
48
|
+
i0.ɵɵtext(1);
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
52
|
+
i0.ɵɵadvance();
|
|
53
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.CronExpression);
|
|
54
|
+
} }
|
|
55
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_47_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
i0.ɵɵelementStart(0, "span");
|
|
57
|
+
i0.ɵɵtext(1);
|
|
58
|
+
i0.ɵɵelementEnd();
|
|
59
|
+
} if (rf & 2) {
|
|
60
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
61
|
+
i0.ɵɵadvance();
|
|
62
|
+
i0.ɵɵtextInterpolate1("Mode: ", ctx_r1.record.OnChangeInvocationType || "Immediate");
|
|
63
|
+
} }
|
|
64
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_48_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
i0.ɵɵelementStart(0, "span");
|
|
66
|
+
i0.ɵɵtext(1, "On demand execution");
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
} }
|
|
69
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_66_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
71
|
+
i0.ɵɵelementStart(0, "div", 31)(1, "mj-feature-pipeline-builder", 65);
|
|
72
|
+
i0.ɵɵlistener("SpecChange", function RecordProcessFormComponentExtended_Conditional_0_Conditional_66_Template_mj_feature_pipeline_builder_SpecChange_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnPipelineSpecChange()); })("ValidChange", function RecordProcessFormComponentExtended_Conditional_0_Conditional_66_Template_mj_feature_pipeline_builder_ValidChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnPipelineValidChange($event)); });
|
|
73
|
+
i0.ɵɵelementEnd()();
|
|
74
|
+
} if (rf & 2) {
|
|
75
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
76
|
+
i0.ɵɵadvance();
|
|
77
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("EntityID", ctx_r1.record.EntityID);
|
|
78
|
+
} }
|
|
79
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_67_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
81
|
+
i0.ɵɵelement(1, "mj-record-process-editor", 66);
|
|
82
|
+
i0.ɵɵelementEnd();
|
|
83
|
+
} if (rf & 2) {
|
|
84
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowToolbar", false)("Provider", ctx_r1.ProviderToUse);
|
|
87
|
+
} }
|
|
88
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_68_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 36);
|
|
90
|
+
i0.ɵɵelement(2, "i", 67);
|
|
91
|
+
i0.ɵɵelementStart(3, "div")(4, "strong");
|
|
92
|
+
i0.ɵɵtext(5);
|
|
93
|
+
i0.ɵɵelementEnd();
|
|
94
|
+
i0.ɵɵelementStart(6, "p");
|
|
95
|
+
i0.ɵɵtext(7, "Configure actions, prompts, and mappings in the ");
|
|
96
|
+
i0.ɵɵelementStart(8, "em");
|
|
97
|
+
i0.ɵɵtext(9, "Process Definition");
|
|
98
|
+
i0.ɵɵelementEnd();
|
|
99
|
+
i0.ɵɵtext(10, " and ");
|
|
100
|
+
i0.ɵɵelementStart(11, "em");
|
|
101
|
+
i0.ɵɵtext(12, "Execution Logic");
|
|
102
|
+
i0.ɵɵelementEnd();
|
|
103
|
+
i0.ɵɵtext(13, " sections below.");
|
|
104
|
+
i0.ɵɵelementEnd()()()();
|
|
105
|
+
} if (rf & 2) {
|
|
106
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
107
|
+
i0.ɵɵadvance(5);
|
|
108
|
+
i0.ɵɵtextInterpolate1("", ctx_r1.record.WorkType || "Custom", " Execution Logic");
|
|
109
|
+
} }
|
|
110
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_70_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
112
|
+
i0.ɵɵelement(1, "mj-record-process-history", 68);
|
|
113
|
+
i0.ɵɵelementEnd();
|
|
114
|
+
} if (rf & 2) {
|
|
115
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
116
|
+
i0.ɵɵadvance();
|
|
117
|
+
i0.ɵɵproperty("RecordProcessID", ctx_r1.record.ID);
|
|
118
|
+
} }
|
|
119
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
120
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
121
|
+
i0.ɵɵelement(1, "i", 67);
|
|
122
|
+
i0.ɵɵelementStart(2, "span");
|
|
123
|
+
i0.ɵɵtext(3, "Save this record process to view execution history and per-record audit logs.");
|
|
124
|
+
i0.ɵɵelementEnd()();
|
|
125
|
+
} }
|
|
126
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
i0.ɵɵelementStart(0, "span", 79);
|
|
128
|
+
i0.ɵɵtext(1);
|
|
129
|
+
i0.ɵɵelementEnd();
|
|
130
|
+
} if (rf & 2) {
|
|
131
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
132
|
+
i0.ɵɵadvance();
|
|
133
|
+
i0.ɵɵtextInterpolate1("ID: ", ctx_r1.record.PromptID.substring(0, 8), "...");
|
|
134
|
+
} }
|
|
135
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
136
|
+
i0.ɵɵelementStart(0, "div", 81);
|
|
137
|
+
i0.ɵɵelement(1, "mj-form-field", 96);
|
|
138
|
+
i0.ɵɵelementEnd();
|
|
139
|
+
} if (rf & 2) {
|
|
140
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
141
|
+
i0.ɵɵadvance();
|
|
142
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
143
|
+
} }
|
|
144
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_34_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
+
i0.ɵɵelementStart(0, "div", 97)(1, "span", 98);
|
|
146
|
+
i0.ɵɵtext(2);
|
|
147
|
+
i0.ɵɵelementEnd();
|
|
148
|
+
i0.ɵɵelementStart(3, "span");
|
|
149
|
+
i0.ɵɵelement(4, "i", 99);
|
|
150
|
+
i0.ɵɵelementStart(5, "span");
|
|
151
|
+
i0.ɵɵtext(6, "Column: ");
|
|
152
|
+
i0.ɵɵelementStart(7, "code");
|
|
153
|
+
i0.ɵɵtext(8);
|
|
154
|
+
i0.ɵɵelementEnd()()()();
|
|
155
|
+
} if (rf & 2) {
|
|
156
|
+
const item_r5 = ctx.$implicit;
|
|
157
|
+
i0.ɵɵadvance(2);
|
|
158
|
+
i0.ɵɵtextInterpolate(item_r5.Param);
|
|
159
|
+
i0.ɵɵadvance(6);
|
|
160
|
+
i0.ɵɵtextInterpolate(item_r5.Field);
|
|
161
|
+
} }
|
|
162
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
i0.ɵɵelementStart(0, "div", 82);
|
|
164
|
+
i0.ɵɵrepeaterCreate(1, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_34_For_2_Template, 9, 2, "div", 97, _forTrack0);
|
|
165
|
+
i0.ɵɵelementEnd();
|
|
166
|
+
} if (rf & 2) {
|
|
167
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
168
|
+
i0.ɵɵadvance();
|
|
169
|
+
i0.ɵɵrepeater(ctx_r1.ParameterMappings);
|
|
170
|
+
} }
|
|
171
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
172
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
173
|
+
i0.ɵɵtext(1, " No parameter bindings configured. Entire row context will be passed to prompt. ");
|
|
174
|
+
i0.ɵɵelementEnd();
|
|
175
|
+
} }
|
|
176
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
+
i0.ɵɵelementStart(0, "span", 79);
|
|
178
|
+
i0.ɵɵelement(1, "i", 106);
|
|
179
|
+
i0.ɵɵtext(2, " Captured");
|
|
180
|
+
i0.ɵɵelementEnd();
|
|
181
|
+
} }
|
|
182
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
183
|
+
i0.ɵɵelementStart(0, "span", 105);
|
|
184
|
+
i0.ɵɵtext(1, "None");
|
|
185
|
+
i0.ɵɵelementEnd();
|
|
186
|
+
} }
|
|
187
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
+
i0.ɵɵelementStart(0, "tr")(1, "td")(2, "div", 100);
|
|
189
|
+
i0.ɵɵelement(3, "i");
|
|
190
|
+
i0.ɵɵelementStart(4, "span");
|
|
191
|
+
i0.ɵɵtext(5);
|
|
192
|
+
i0.ɵɵelementEnd()()();
|
|
193
|
+
i0.ɵɵelementStart(6, "td")(7, "span", 101);
|
|
194
|
+
i0.ɵɵtext(8);
|
|
195
|
+
i0.ɵɵelementEnd()();
|
|
196
|
+
i0.ɵɵelementStart(9, "td")(10, "span", 102);
|
|
197
|
+
i0.ɵɵelement(11, "i", 103);
|
|
198
|
+
i0.ɵɵtext(12);
|
|
199
|
+
i0.ɵɵelementEnd()();
|
|
200
|
+
i0.ɵɵelementStart(13, "td")(14, "div", 104);
|
|
201
|
+
i0.ɵɵelement(15, "i");
|
|
202
|
+
i0.ɵɵelementStart(16, "span");
|
|
203
|
+
i0.ɵɵtext(17);
|
|
204
|
+
i0.ɵɵelementStart(18, "strong");
|
|
205
|
+
i0.ɵɵtext(19);
|
|
206
|
+
i0.ɵɵelementEnd()();
|
|
207
|
+
i0.ɵɵelementStart(20, "span", 105);
|
|
208
|
+
i0.ɵɵtext(21);
|
|
209
|
+
i0.ɵɵelementEnd()()();
|
|
210
|
+
i0.ɵɵelementStart(22, "td");
|
|
211
|
+
i0.ɵɵconditionalCreate(23, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Conditional_23_Template, 3, 0, "span", 79)(24, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Conditional_24_Template, 2, 0, "span", 105);
|
|
212
|
+
i0.ɵɵelementEnd()();
|
|
213
|
+
} if (rf & 2) {
|
|
214
|
+
const out_r6 = ctx.$implicit;
|
|
215
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
216
|
+
i0.ɵɵadvance(3);
|
|
217
|
+
i0.ɵɵclassMap(out_r6.FeatureKind === "numeric" ? "fa-solid fa-chart-line" : "fa-solid fa-tags");
|
|
218
|
+
i0.ɵɵstyleProp("color", out_r6.FeatureKind === "numeric" ? "#f59e0b" : "#8b5cf6");
|
|
219
|
+
i0.ɵɵadvance(2);
|
|
220
|
+
i0.ɵɵtextInterpolate(out_r6.Name);
|
|
221
|
+
i0.ɵɵadvance(2);
|
|
222
|
+
i0.ɵɵclassProp("rpf-type-numeric", out_r6.FeatureKind === "numeric")("rpf-type-categorical", out_r6.FeatureKind === "categorical")("rpf-type-default", out_r6.FeatureKind !== "numeric" && out_r6.FeatureKind !== "categorical");
|
|
223
|
+
i0.ɵɵadvance();
|
|
224
|
+
i0.ɵɵtextInterpolate1(" ", out_r6.FeatureKind, " ");
|
|
225
|
+
i0.ɵɵadvance(2);
|
|
226
|
+
i0.ɵɵproperty("title", "Violation policy: " + out_r6.ViolationPolicy);
|
|
227
|
+
i0.ɵɵadvance(2);
|
|
228
|
+
i0.ɵɵtextInterpolate1(" ", out_r6.ConstraintSummary, " ");
|
|
229
|
+
i0.ɵɵadvance(3);
|
|
230
|
+
i0.ɵɵclassMap(out_r6.TargetFieldExists ? "fa-solid fa-check-circle rpf-binding-valid" : "fa-solid fa-triangle-exclamation rpf-binding-invalid");
|
|
231
|
+
i0.ɵɵadvance(2);
|
|
232
|
+
i0.ɵɵtextInterpolate1("", ctx_r1.TargetEntityName, ".");
|
|
233
|
+
i0.ɵɵadvance(2);
|
|
234
|
+
i0.ɵɵtextInterpolate(out_r6.TargetField);
|
|
235
|
+
i0.ɵɵadvance(2);
|
|
236
|
+
i0.ɵɵtextInterpolate1("(", out_r6.TargetFieldType, ")");
|
|
237
|
+
i0.ɵɵadvance(2);
|
|
238
|
+
i0.ɵɵconditional(out_r6.ReasoningTarget === "Enabled" ? 23 : 24);
|
|
239
|
+
} }
|
|
240
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_Template(rf, ctx) { if (rf & 1) {
|
|
241
|
+
i0.ɵɵrepeaterCreate(0, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_For_1_Template, 25, 20, "tr", null, _forTrack1);
|
|
242
|
+
} if (rf & 2) {
|
|
243
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
244
|
+
i0.ɵɵrepeater(ctx_r1.FeatureOutputs);
|
|
245
|
+
} }
|
|
246
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_59_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵelementStart(0, "tr")(1, "td", 107);
|
|
248
|
+
i0.ɵɵtext(2, " No output features defined yet. Use the ");
|
|
249
|
+
i0.ɵɵelementStart(3, "em");
|
|
250
|
+
i0.ɵɵtext(4, "Pipeline Configuration");
|
|
251
|
+
i0.ɵɵelementEnd();
|
|
252
|
+
i0.ɵɵtext(5, " builder tab to add output features. ");
|
|
253
|
+
i0.ɵɵelementEnd()();
|
|
254
|
+
} }
|
|
255
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
256
|
+
i0.ɵɵelementStart(0, "div", 94)(1, "pre")(2, "code");
|
|
257
|
+
i0.ɵɵtext(3);
|
|
258
|
+
i0.ɵɵelementEnd()()();
|
|
259
|
+
} if (rf & 2) {
|
|
260
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
261
|
+
i0.ɵɵadvance(3);
|
|
262
|
+
i0.ɵɵtextInterpolate(ctx_r1.FormattedRawJson);
|
|
263
|
+
} }
|
|
264
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_72_Template(rf, ctx) { if (rf & 1) {
|
|
265
|
+
i0.ɵɵelementStart(0, "div", 95);
|
|
266
|
+
i0.ɵɵelement(1, "mj-form-field", 108)(2, "mj-form-field", 109)(3, "mj-form-field", 110);
|
|
267
|
+
i0.ɵɵelementEnd();
|
|
268
|
+
} if (rf & 2) {
|
|
269
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
270
|
+
i0.ɵɵadvance();
|
|
271
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
272
|
+
i0.ɵɵadvance();
|
|
273
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
274
|
+
i0.ɵɵadvance();
|
|
275
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
276
|
+
} }
|
|
277
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Template(rf, ctx) { if (rf & 1) {
|
|
278
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
279
|
+
i0.ɵɵelementStart(0, "div", 69)(1, "div", 70)(2, "div", 71);
|
|
280
|
+
i0.ɵɵelement(3, "i");
|
|
281
|
+
i0.ɵɵelementStart(4, "span");
|
|
282
|
+
i0.ɵɵtext(5);
|
|
283
|
+
i0.ɵɵelementEnd()();
|
|
284
|
+
i0.ɵɵelementStart(6, "div", 71);
|
|
285
|
+
i0.ɵɵelement(7, "i", 72);
|
|
286
|
+
i0.ɵɵelementStart(8, "span");
|
|
287
|
+
i0.ɵɵtext(9);
|
|
288
|
+
i0.ɵɵelementEnd()();
|
|
289
|
+
i0.ɵɵelementStart(10, "div", 71);
|
|
290
|
+
i0.ɵɵelement(11, "i", 16);
|
|
291
|
+
i0.ɵɵelementStart(12, "span");
|
|
292
|
+
i0.ɵɵtext(13);
|
|
293
|
+
i0.ɵɵelementEnd()()()();
|
|
294
|
+
i0.ɵɵelementStart(14, "div", 73)(15, "div", 74)(16, "div", 75);
|
|
295
|
+
i0.ɵɵtext(17, "Bound AI Prompt");
|
|
296
|
+
i0.ɵɵelementEnd();
|
|
297
|
+
i0.ɵɵelementStart(18, "div", 76);
|
|
298
|
+
i0.ɵɵelement(19, "i", 77);
|
|
299
|
+
i0.ɵɵelementStart(20, "span");
|
|
300
|
+
i0.ɵɵtext(21);
|
|
301
|
+
i0.ɵɵelementEnd()();
|
|
302
|
+
i0.ɵɵelementStart(22, "div", 78);
|
|
303
|
+
i0.ɵɵconditionalCreate(23, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_23_Template, 2, 1, "span", 79);
|
|
304
|
+
i0.ɵɵelementStart(24, "span", 80);
|
|
305
|
+
i0.ɵɵelement(25, "i", 64);
|
|
306
|
+
i0.ɵɵtext(26, " Feature Infer Engine");
|
|
307
|
+
i0.ɵɵelementEnd();
|
|
308
|
+
i0.ɵɵelementStart(27, "span", 80);
|
|
309
|
+
i0.ɵɵelement(28, "i", 29);
|
|
310
|
+
i0.ɵɵtext(29, " LLM Output Parser");
|
|
311
|
+
i0.ɵɵelementEnd()();
|
|
312
|
+
i0.ɵɵconditionalCreate(30, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_30_Template, 2, 4, "div", 81);
|
|
313
|
+
i0.ɵɵelementEnd();
|
|
314
|
+
i0.ɵɵelementStart(31, "div", 74)(32, "div", 75);
|
|
315
|
+
i0.ɵɵtext(33, "Prompt Parameter Resolution");
|
|
316
|
+
i0.ɵɵelementEnd();
|
|
317
|
+
i0.ɵɵconditionalCreate(34, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_34_Template, 3, 0, "div", 82)(35, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_35_Template, 2, 0, "div", 83);
|
|
318
|
+
i0.ɵɵelementEnd()();
|
|
319
|
+
i0.ɵɵelementStart(36, "div", 84)(37, "div", 85);
|
|
320
|
+
i0.ɵɵelement(38, "i", 86);
|
|
321
|
+
i0.ɵɵtext(39, " Context Retrieval Query ");
|
|
322
|
+
i0.ɵɵelementEnd();
|
|
323
|
+
i0.ɵɵelementStart(40, "div", 87)(41, "code");
|
|
324
|
+
i0.ɵɵtext(42);
|
|
325
|
+
i0.ɵɵelementEnd()()();
|
|
326
|
+
i0.ɵɵelementStart(43, "div", 88)(44, "table", 89)(45, "thead")(46, "tr")(47, "th");
|
|
327
|
+
i0.ɵɵtext(48, "Feature Name");
|
|
328
|
+
i0.ɵɵelementEnd();
|
|
329
|
+
i0.ɵɵelementStart(49, "th");
|
|
330
|
+
i0.ɵɵtext(50, "Kind / Type");
|
|
331
|
+
i0.ɵɵelementEnd();
|
|
332
|
+
i0.ɵɵelementStart(51, "th");
|
|
333
|
+
i0.ɵɵtext(52, "Validation Constraints");
|
|
334
|
+
i0.ɵɵelementEnd();
|
|
335
|
+
i0.ɵɵelementStart(53, "th");
|
|
336
|
+
i0.ɵɵtext(54, "Target Field Binding");
|
|
337
|
+
i0.ɵɵelementEnd();
|
|
338
|
+
i0.ɵɵelementStart(55, "th");
|
|
339
|
+
i0.ɵɵtext(56, "Reasoning");
|
|
340
|
+
i0.ɵɵelementEnd()()();
|
|
341
|
+
i0.ɵɵelementStart(57, "tbody");
|
|
342
|
+
i0.ɵɵconditionalCreate(58, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_58_Template, 2, 0)(59, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_59_Template, 6, 0, "tr");
|
|
343
|
+
i0.ɵɵelementEnd()()();
|
|
344
|
+
i0.ɵɵelementStart(60, "div", 90)(61, "div", 91);
|
|
345
|
+
i0.ɵɵlistener("click", function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Template_div_click_61_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleRawJson()); });
|
|
346
|
+
i0.ɵɵelementStart(62, "div", 92);
|
|
347
|
+
i0.ɵɵelement(63, "i")(64, "i", 86);
|
|
348
|
+
i0.ɵɵelementStart(65, "span");
|
|
349
|
+
i0.ɵɵtext(66, "Power User Escape Hatch: View Raw Pipeline Configuration JSON");
|
|
350
|
+
i0.ɵɵelementEnd()();
|
|
351
|
+
i0.ɵɵelementStart(67, "button", 93);
|
|
352
|
+
i0.ɵɵlistener("click", function RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Template_button_click_67_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.CopyRawJson()); });
|
|
353
|
+
i0.ɵɵelement(68, "i");
|
|
354
|
+
i0.ɵɵelementStart(69, "span");
|
|
355
|
+
i0.ɵɵtext(70);
|
|
356
|
+
i0.ɵɵelementEnd()()();
|
|
357
|
+
i0.ɵɵconditionalCreate(71, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_71_Template, 4, 1, "div", 94);
|
|
358
|
+
i0.ɵɵelementEnd();
|
|
359
|
+
i0.ɵɵconditionalCreate(72, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Conditional_72_Template, 4, 12, "div", 95);
|
|
360
|
+
} if (rf & 2) {
|
|
361
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
362
|
+
i0.ɵɵclassProp("rpf-audit-bar-warning", !ctx_r1.IsSpecValid);
|
|
363
|
+
i0.ɵɵadvance(2);
|
|
364
|
+
i0.ɵɵclassProp("rpf-audit-chip-valid", ctx_r1.IsSpecValid)("rpf-audit-chip-warning", !ctx_r1.IsSpecValid);
|
|
365
|
+
i0.ɵɵadvance();
|
|
366
|
+
i0.ɵɵclassMap(ctx_r1.IsSpecValid ? "fa-solid fa-shield-check" : "fa-solid fa-triangle-exclamation");
|
|
367
|
+
i0.ɵɵadvance(2);
|
|
368
|
+
i0.ɵɵtextInterpolate(ctx_r1.IsSpecValid ? "Configuration Valid" : "Configuration Issues Found");
|
|
369
|
+
i0.ɵɵadvance(4);
|
|
370
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.BoundFeaturesCount, " of ", ctx_r1.TotalFeaturesCount, " Features Bound to Target");
|
|
371
|
+
i0.ɵɵadvance(4);
|
|
372
|
+
i0.ɵɵtextInterpolate1("Context: ", ctx_r1.ContextModeText);
|
|
373
|
+
i0.ɵɵadvance(8);
|
|
374
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.PromptID ? "Prompt Configured" : "No Prompt Selected");
|
|
375
|
+
i0.ɵɵadvance(2);
|
|
376
|
+
i0.ɵɵconditional(ctx_r1.record.PromptID ? 23 : -1);
|
|
377
|
+
i0.ɵɵadvance(7);
|
|
378
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 30 : -1);
|
|
379
|
+
i0.ɵɵadvance(4);
|
|
380
|
+
i0.ɵɵconditional(ctx_r1.ParameterMappings.length > 0 ? 34 : 35);
|
|
381
|
+
i0.ɵɵadvance(8);
|
|
382
|
+
i0.ɵɵtextInterpolate(ctx_r1.ContextQueryDisplay);
|
|
383
|
+
i0.ɵɵadvance(16);
|
|
384
|
+
i0.ɵɵconditional(ctx_r1.FeatureOutputs.length > 0 ? 58 : 59);
|
|
385
|
+
i0.ɵɵadvance(5);
|
|
386
|
+
i0.ɵɵclassMap(ctx_r1.RawJsonExpanded ? "fa-solid fa-chevron-down" : "fa-solid fa-chevron-right");
|
|
387
|
+
i0.ɵɵadvance(5);
|
|
388
|
+
i0.ɵɵclassMap(ctx_r1.RawJsonCopied ? "fa-solid fa-check" : "fa-regular fa-copy");
|
|
389
|
+
i0.ɵɵadvance(2);
|
|
390
|
+
i0.ɵɵtextInterpolate(ctx_r1.RawJsonCopied ? "Copied!" : "Copy JSON");
|
|
391
|
+
i0.ɵɵadvance();
|
|
392
|
+
i0.ɵɵconditional(ctx_r1.RawJsonExpanded ? 71 : -1);
|
|
393
|
+
i0.ɵɵadvance();
|
|
394
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 72 : -1);
|
|
395
|
+
} }
|
|
396
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_80_Template(rf, ctx) { if (rf & 1) {
|
|
397
|
+
i0.ɵɵelement(0, "mj-form-field", 108)(1, "mj-form-field", 111)(2, "mj-form-field", 112)(3, "mj-form-field", 96)(4, "mj-form-field", 113)(5, "mj-form-field", 110)(6, "mj-form-field", 109);
|
|
398
|
+
} if (rf & 2) {
|
|
399
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
400
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
401
|
+
i0.ɵɵadvance();
|
|
402
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
403
|
+
i0.ɵɵadvance();
|
|
404
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
405
|
+
i0.ɵɵadvance();
|
|
406
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
407
|
+
i0.ɵɵadvance();
|
|
408
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
409
|
+
i0.ɵɵadvance();
|
|
410
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
411
|
+
i0.ɵɵadvance();
|
|
412
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
413
|
+
} }
|
|
414
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
415
|
+
i0.ɵɵelementStart(0, "span", 117);
|
|
416
|
+
i0.ɵɵelement(1, "i", 118);
|
|
417
|
+
i0.ɵɵelementStart(2, "span");
|
|
418
|
+
i0.ɵɵtext(3, "Filter Active");
|
|
419
|
+
i0.ɵɵelementEnd()();
|
|
420
|
+
} }
|
|
421
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
422
|
+
i0.ɵɵelementStart(0, "div", 84)(1, "div", 85);
|
|
423
|
+
i0.ɵɵelement(2, "i", 16);
|
|
424
|
+
i0.ɵɵtext(3, " SQL Scope Filter (WHERE clause) ");
|
|
425
|
+
i0.ɵɵelementEnd();
|
|
426
|
+
i0.ɵɵelementStart(4, "div", 87)(5, "code");
|
|
427
|
+
i0.ɵɵtext(6);
|
|
428
|
+
i0.ɵɵelementEnd()()();
|
|
429
|
+
} if (rf & 2) {
|
|
430
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
431
|
+
i0.ɵɵadvance(6);
|
|
432
|
+
i0.ɵɵtextInterpolate(ctx_r1.FormattedScopeFilter);
|
|
433
|
+
} }
|
|
434
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
435
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
436
|
+
i0.ɵɵelement(1, "i", 67);
|
|
437
|
+
i0.ɵɵelementStart(2, "span");
|
|
438
|
+
i0.ɵɵtext(3, "No scope filter applied. All records in ");
|
|
439
|
+
i0.ɵɵelementStart(4, "strong");
|
|
440
|
+
i0.ɵɵtext(5);
|
|
441
|
+
i0.ɵɵelementEnd();
|
|
442
|
+
i0.ɵɵtext(6, " will be evaluated.");
|
|
443
|
+
i0.ɵɵelementEnd()();
|
|
444
|
+
} if (rf & 2) {
|
|
445
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
446
|
+
i0.ɵɵadvance(5);
|
|
447
|
+
i0.ɵɵtextInterpolate(ctx_r1.TargetEntityName);
|
|
448
|
+
} }
|
|
449
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
450
|
+
i0.ɵɵelementStart(0, "div", 95);
|
|
451
|
+
i0.ɵɵelement(1, "mj-form-field", 119)(2, "mj-form-field", 120);
|
|
452
|
+
i0.ɵɵelementEnd();
|
|
453
|
+
} if (rf & 2) {
|
|
454
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
455
|
+
i0.ɵɵadvance();
|
|
456
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
457
|
+
i0.ɵɵadvance();
|
|
458
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
459
|
+
} }
|
|
460
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Template(rf, ctx) { if (rf & 1) {
|
|
461
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "div", 114)(2, "div", 115)(3, "span", 116);
|
|
462
|
+
i0.ɵɵelement(4, "i", 22);
|
|
463
|
+
i0.ɵɵelementStart(5, "span");
|
|
464
|
+
i0.ɵɵtext(6, "Scope Type: ");
|
|
465
|
+
i0.ɵɵelementStart(7, "strong");
|
|
466
|
+
i0.ɵɵtext(8);
|
|
467
|
+
i0.ɵɵelementEnd()()();
|
|
468
|
+
i0.ɵɵconditionalCreate(9, RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_9_Template, 4, 0, "span", 117);
|
|
469
|
+
i0.ɵɵelementEnd()();
|
|
470
|
+
i0.ɵɵconditionalCreate(10, RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_10_Template, 7, 1, "div", 84)(11, RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_11_Template, 7, 1, "div", 36);
|
|
471
|
+
i0.ɵɵconditionalCreate(12, RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Conditional_12_Template, 3, 8, "div", 95);
|
|
472
|
+
i0.ɵɵelementEnd();
|
|
473
|
+
} if (rf & 2) {
|
|
474
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
475
|
+
i0.ɵɵadvance(8);
|
|
476
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.ScopeType || "Filter");
|
|
477
|
+
i0.ɵɵadvance();
|
|
478
|
+
i0.ɵɵconditional(ctx_r1.record.ScopeFilter ? 9 : -1);
|
|
479
|
+
i0.ɵɵadvance();
|
|
480
|
+
i0.ɵɵconditional(ctx_r1.FormattedScopeFilter ? 10 : 11);
|
|
481
|
+
i0.ɵɵadvance(2);
|
|
482
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 12 : -1);
|
|
483
|
+
} }
|
|
484
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_83_Template(rf, ctx) { if (rf & 1) {
|
|
485
|
+
i0.ɵɵelement(0, "mj-form-field", 119)(1, "mj-form-field", 121)(2, "mj-form-field", 122)(3, "mj-form-field", 120);
|
|
486
|
+
} if (rf & 2) {
|
|
487
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
488
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
489
|
+
i0.ɵɵadvance();
|
|
490
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
491
|
+
i0.ɵɵadvance();
|
|
492
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
493
|
+
i0.ɵɵadvance();
|
|
494
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
495
|
+
} }
|
|
496
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_93_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
497
|
+
i0.ɵɵelementStart(0, "div", 95);
|
|
498
|
+
i0.ɵɵelement(1, "mj-form-field", 128)(2, "mj-form-field", 129)(3, "mj-form-field", 130)(4, "mj-form-field", 131);
|
|
499
|
+
i0.ɵɵelementEnd();
|
|
500
|
+
} if (rf & 2) {
|
|
501
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
502
|
+
i0.ɵɵadvance();
|
|
503
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
504
|
+
i0.ɵɵadvance();
|
|
505
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
506
|
+
i0.ɵɵadvance();
|
|
507
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
508
|
+
i0.ɵɵadvance();
|
|
509
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
510
|
+
} }
|
|
511
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_93_Template(rf, ctx) { if (rf & 1) {
|
|
512
|
+
i0.ɵɵelementStart(0, "div", 123)(1, "div", 124)(2, "div", 125);
|
|
513
|
+
i0.ɵɵtext(3, "Delta Watermark");
|
|
514
|
+
i0.ɵɵelementEnd();
|
|
515
|
+
i0.ɵɵelementStart(4, "div", 126);
|
|
516
|
+
i0.ɵɵtext(5);
|
|
517
|
+
i0.ɵɵelementEnd();
|
|
518
|
+
i0.ɵɵelementStart(6, "div", 127);
|
|
519
|
+
i0.ɵɵtext(7, "Evaluates row state changes");
|
|
520
|
+
i0.ɵɵelementEnd()();
|
|
521
|
+
i0.ɵɵelementStart(8, "div", 124)(9, "div", 125);
|
|
522
|
+
i0.ɵɵtext(10, "Batch Processing");
|
|
523
|
+
i0.ɵɵelementEnd();
|
|
524
|
+
i0.ɵɵelementStart(11, "div", 126);
|
|
525
|
+
i0.ɵɵtext(12);
|
|
526
|
+
i0.ɵɵelementEnd();
|
|
527
|
+
i0.ɵɵelementStart(13, "div", 127);
|
|
528
|
+
i0.ɵɵtext(14, "Per inference chunk");
|
|
529
|
+
i0.ɵɵelementEnd()();
|
|
530
|
+
i0.ɵɵelementStart(15, "div", 124)(16, "div", 125);
|
|
531
|
+
i0.ɵɵtext(17, "Concurrency");
|
|
532
|
+
i0.ɵɵelementEnd();
|
|
533
|
+
i0.ɵɵelementStart(18, "div", 126);
|
|
534
|
+
i0.ɵɵtext(19);
|
|
535
|
+
i0.ɵɵelementEnd();
|
|
536
|
+
i0.ɵɵelementStart(20, "div", 127);
|
|
537
|
+
i0.ɵɵtext(21, "Concurrent worker threads");
|
|
538
|
+
i0.ɵɵelementEnd()();
|
|
539
|
+
i0.ɵɵelementStart(22, "div", 124)(23, "div", 125);
|
|
540
|
+
i0.ɵɵtext(24, "Skip Unchanged");
|
|
541
|
+
i0.ɵɵelementEnd();
|
|
542
|
+
i0.ɵɵelementStart(25, "div", 126);
|
|
543
|
+
i0.ɵɵelement(26, "i");
|
|
544
|
+
i0.ɵɵtext(27);
|
|
545
|
+
i0.ɵɵelementEnd();
|
|
546
|
+
i0.ɵɵelementStart(28, "div", 127);
|
|
547
|
+
i0.ɵɵtext(29, "Skips re-evaluating unchanged rows");
|
|
548
|
+
i0.ɵɵelementEnd()()();
|
|
549
|
+
i0.ɵɵconditionalCreate(30, RecordProcessFormComponentExtended_Conditional_0_Conditional_93_Conditional_30_Template, 5, 16, "div", 95);
|
|
550
|
+
} if (rf & 2) {
|
|
551
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
552
|
+
i0.ɵɵadvance(5);
|
|
553
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.WatermarkStrategy || "Checksum");
|
|
554
|
+
i0.ɵɵadvance(7);
|
|
555
|
+
i0.ɵɵtextInterpolate1("", ctx_r1.record.BatchSize || 100, " records");
|
|
556
|
+
i0.ɵɵadvance(7);
|
|
557
|
+
i0.ɵɵtextInterpolate1("", ctx_r1.record.MaxConcurrency || 1, " Parallel");
|
|
558
|
+
i0.ɵɵadvance(6);
|
|
559
|
+
i0.ɵɵclassProp("rpf-text-success", ctx_r1.record.SkipUnchanged);
|
|
560
|
+
i0.ɵɵadvance();
|
|
561
|
+
i0.ɵɵclassMap(ctx_r1.record.SkipUnchanged ? "fa-solid fa-check" : "fa-solid fa-minus");
|
|
562
|
+
i0.ɵɵadvance();
|
|
563
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.SkipUnchanged ? "Enabled" : "Disabled", " ");
|
|
564
|
+
i0.ɵɵadvance(3);
|
|
565
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 30 : -1);
|
|
566
|
+
} }
|
|
567
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_94_Template(rf, ctx) { if (rf & 1) {
|
|
568
|
+
i0.ɵɵelement(0, "mj-form-field", 128)(1, "mj-form-field", 129)(2, "mj-form-field", 130)(3, "mj-form-field", 131);
|
|
569
|
+
} if (rf & 2) {
|
|
570
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
571
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
572
|
+
i0.ɵɵadvance();
|
|
573
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
574
|
+
i0.ɵɵadvance();
|
|
575
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
576
|
+
i0.ɵɵadvance();
|
|
577
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
578
|
+
} }
|
|
579
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_100_Template(rf, ctx) { if (rf & 1) {
|
|
580
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
581
|
+
i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 132);
|
|
582
|
+
i0.ɵɵlistener("Navigate", function RecordProcessFormComponentExtended_Conditional_0_Conditional_100_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function RecordProcessFormComponentExtended_Conditional_0_Conditional_100_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJRecordProcessWatermarks", $event.totalRowCount)); });
|
|
583
|
+
i0.ɵɵelementEnd()();
|
|
584
|
+
} if (rf & 2) {
|
|
585
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
586
|
+
i0.ɵɵadvance();
|
|
587
|
+
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Record Process Watermarks", "RecordProcessID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Record Process Watermarks", "RecordProcessID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJRecordProcessWatermarks"))("ShowToolbar", true);
|
|
588
|
+
} }
|
|
589
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_102_Template(rf, ctx) { if (rf & 1) {
|
|
590
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
591
|
+
i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 132);
|
|
592
|
+
i0.ɵɵlistener("Navigate", function RecordProcessFormComponentExtended_Conditional_0_Conditional_102_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function RecordProcessFormComponentExtended_Conditional_0_Conditional_102_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJMLModelScoringBindings", $event.totalRowCount)); });
|
|
593
|
+
i0.ɵɵelementEnd()();
|
|
594
|
+
} if (rf & 2) {
|
|
595
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
596
|
+
i0.ɵɵadvance();
|
|
597
|
+
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: ML Model Scoring Bindings", "RecordProcessID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: ML Model Scoring Bindings", "RecordProcessID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJMLModelScoringBindings"))("ShowToolbar", true);
|
|
598
|
+
} }
|
|
599
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_104_Template(rf, ctx) { if (rf & 1) {
|
|
600
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
601
|
+
i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 132);
|
|
602
|
+
i0.ɵɵlistener("Navigate", function RecordProcessFormComponentExtended_Conditional_0_Conditional_104_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function RecordProcessFormComponentExtended_Conditional_0_Conditional_104_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJFeatureValues", $event.totalRowCount)); });
|
|
603
|
+
i0.ɵɵelementEnd()();
|
|
604
|
+
} if (rf & 2) {
|
|
605
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
606
|
+
i0.ɵɵadvance();
|
|
607
|
+
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Feature Values", "RecordProcessID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Feature Values", "RecordProcessID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJFeatureValues"))("ShowToolbar", true);
|
|
608
|
+
} }
|
|
609
|
+
function RecordProcessFormComponentExtended_Conditional_0_Conditional_106_Template(rf, ctx) { if (rf & 1) {
|
|
610
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
611
|
+
i0.ɵɵelementStart(0, "div")(1, "mj-explorer-entity-data-grid", 132);
|
|
612
|
+
i0.ɵɵlistener("Navigate", function RecordProcessFormComponentExtended_Conditional_0_Conditional_106_Template_mj_explorer_entity_data_grid_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("AfterDataLoad", function RecordProcessFormComponentExtended_Conditional_0_Conditional_106_Template_mj_explorer_entity_data_grid_AfterDataLoad_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SetSectionRowCount("mJFeatureValueCaches", $event.totalRowCount)); });
|
|
613
|
+
i0.ɵɵelementEnd()();
|
|
614
|
+
} if (rf & 2) {
|
|
615
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
616
|
+
i0.ɵɵadvance();
|
|
617
|
+
i0.ɵɵproperty("Params", ctx_r1.BuildRelationshipViewParamsByEntityName("MJ: Feature Value Caches", "RecordProcessID"))("NewRecordValues", ctx_r1.NewRecordValues("MJ: Feature Value Caches", "RecordProcessID"))("AllowLoad", ctx_r1.IsSectionExpanded("mJFeatureValueCaches"))("ShowToolbar", true);
|
|
618
|
+
} }
|
|
14
619
|
function RecordProcessFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
15
620
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
16
621
|
i0.ɵɵelementStart(0, "mj-record-form-container", 1);
|
|
17
622
|
i0.ɵɵlistener("Navigate", function RecordProcessFormComponentExtended_Conditional_0_Template_mj_record_form_container_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("DeleteRequested", function RecordProcessFormComponentExtended_Conditional_0_Template_mj_record_form_container_DeleteRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDeleteRequested()); })("FavoriteToggled", function RecordProcessFormComponentExtended_Conditional_0_Template_mj_record_form_container_FavoriteToggled_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFavoriteToggled()); })("HistoryRequested", function RecordProcessFormComponentExtended_Conditional_0_Template_mj_record_form_container_HistoryRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnHistoryRequested()); })("ListManagementRequested", function RecordProcessFormComponentExtended_Conditional_0_Template_mj_record_form_container_ListManagementRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementRequested()); });
|
|
18
|
-
i0.ɵɵelement(1, "mj-
|
|
623
|
+
i0.ɵɵelement(1, "mj-form-panel-slot", 2);
|
|
624
|
+
i0.ɵɵelementStart(2, "mj-collapsible-panel", 3)(3, "div", 4)(4, "div", 5)(5, "div", 6)(6, "div", 7);
|
|
625
|
+
i0.ɵɵelement(7, "i");
|
|
626
|
+
i0.ɵɵelementEnd();
|
|
627
|
+
i0.ɵɵelementStart(8, "div", 8)(9, "div", 9)(10, "h2", 10);
|
|
628
|
+
i0.ɵɵtext(11);
|
|
629
|
+
i0.ɵɵelementEnd();
|
|
630
|
+
i0.ɵɵelementStart(12, "span", 11);
|
|
631
|
+
i0.ɵɵelement(13, "span", 12);
|
|
632
|
+
i0.ɵɵtext(14);
|
|
633
|
+
i0.ɵɵelementEnd()();
|
|
634
|
+
i0.ɵɵelementStart(15, "p", 13);
|
|
635
|
+
i0.ɵɵtext(16);
|
|
636
|
+
i0.ɵɵelementEnd();
|
|
637
|
+
i0.ɵɵelementStart(17, "div", 14)(18, "span", 15);
|
|
638
|
+
i0.ɵɵelement(19, "i", 16);
|
|
639
|
+
i0.ɵɵelementStart(20, "span");
|
|
640
|
+
i0.ɵɵtext(21);
|
|
641
|
+
i0.ɵɵelementEnd()();
|
|
642
|
+
i0.ɵɵelementStart(22, "span", 17);
|
|
643
|
+
i0.ɵɵelement(23, "i");
|
|
644
|
+
i0.ɵɵelementStart(24, "span");
|
|
645
|
+
i0.ɵɵtext(25);
|
|
646
|
+
i0.ɵɵelementEnd()();
|
|
647
|
+
i0.ɵɵconditionalCreate(26, RecordProcessFormComponentExtended_Conditional_0_Conditional_26_Template, 4, 0, "span", 18);
|
|
648
|
+
i0.ɵɵelementEnd()()()();
|
|
649
|
+
i0.ɵɵelementStart(27, "div", 19)(28, "div", 20)(29, "div", 21);
|
|
650
|
+
i0.ɵɵelement(30, "i", 22);
|
|
651
|
+
i0.ɵɵtext(31, " Target Scope");
|
|
652
|
+
i0.ɵɵelementEnd();
|
|
653
|
+
i0.ɵɵelementStart(32, "div", 23);
|
|
654
|
+
i0.ɵɵtext(33);
|
|
655
|
+
i0.ɵɵelementEnd();
|
|
656
|
+
i0.ɵɵelementStart(34, "div", 24);
|
|
657
|
+
i0.ɵɵtext(35);
|
|
658
|
+
i0.ɵɵelementEnd()();
|
|
659
|
+
i0.ɵɵelementStart(36, "div", 20)(37, "div", 21);
|
|
660
|
+
i0.ɵɵelement(38, "i", 25);
|
|
661
|
+
i0.ɵɵtext(39, " Triggers");
|
|
662
|
+
i0.ɵɵelementEnd();
|
|
663
|
+
i0.ɵɵelementStart(40, "div", 23);
|
|
664
|
+
i0.ɵɵconditionalCreate(41, RecordProcessFormComponentExtended_Conditional_0_Conditional_41_Template, 2, 0, "span")(42, RecordProcessFormComponentExtended_Conditional_0_Conditional_42_Template, 2, 0, "span")(43, RecordProcessFormComponentExtended_Conditional_0_Conditional_43_Template, 2, 0, "span")(44, RecordProcessFormComponentExtended_Conditional_0_Conditional_44_Template, 2, 0, "span", 26);
|
|
665
|
+
i0.ɵɵelementEnd();
|
|
666
|
+
i0.ɵɵelementStart(45, "div", 27);
|
|
667
|
+
i0.ɵɵconditionalCreate(46, RecordProcessFormComponentExtended_Conditional_0_Conditional_46_Template, 2, 1, "code")(47, RecordProcessFormComponentExtended_Conditional_0_Conditional_47_Template, 2, 1, "span")(48, RecordProcessFormComponentExtended_Conditional_0_Conditional_48_Template, 2, 0, "span");
|
|
668
|
+
i0.ɵɵelementEnd()();
|
|
669
|
+
i0.ɵɵelementStart(49, "div", 20)(50, "div", 21);
|
|
670
|
+
i0.ɵɵelement(51, "i", 28);
|
|
671
|
+
i0.ɵɵtext(52, " Optimization");
|
|
672
|
+
i0.ɵɵelementEnd();
|
|
673
|
+
i0.ɵɵelementStart(53, "div", 23);
|
|
674
|
+
i0.ɵɵtext(54);
|
|
675
|
+
i0.ɵɵelementEnd();
|
|
676
|
+
i0.ɵɵelementStart(55, "div", 27);
|
|
677
|
+
i0.ɵɵtext(56);
|
|
678
|
+
i0.ɵɵelementEnd()();
|
|
679
|
+
i0.ɵɵelementStart(57, "div", 20)(58, "div", 21);
|
|
680
|
+
i0.ɵɵelement(59, "i", 29);
|
|
681
|
+
i0.ɵɵtext(60, " Skip Unchanged");
|
|
682
|
+
i0.ɵɵelementEnd();
|
|
683
|
+
i0.ɵɵelementStart(61, "div", 23);
|
|
684
|
+
i0.ɵɵtext(62);
|
|
685
|
+
i0.ɵɵelementEnd();
|
|
686
|
+
i0.ɵɵelementStart(63, "div", 27);
|
|
687
|
+
i0.ɵɵtext(64);
|
|
688
|
+
i0.ɵɵelementEnd()()()()();
|
|
689
|
+
i0.ɵɵelementStart(65, "mj-collapsible-panel", 30);
|
|
690
|
+
i0.ɵɵconditionalCreate(66, RecordProcessFormComponentExtended_Conditional_0_Conditional_66_Template, 2, 2, "div", 31)(67, RecordProcessFormComponentExtended_Conditional_0_Conditional_67_Template, 2, 3, "div", 32)(68, RecordProcessFormComponentExtended_Conditional_0_Conditional_68_Template, 14, 1, "div", 33);
|
|
691
|
+
i0.ɵɵelementEnd();
|
|
692
|
+
i0.ɵɵelementStart(69, "mj-collapsible-panel", 34);
|
|
693
|
+
i0.ɵɵconditionalCreate(70, RecordProcessFormComponentExtended_Conditional_0_Conditional_70_Template, 2, 1, "div", 35)(71, RecordProcessFormComponentExtended_Conditional_0_Conditional_71_Template, 4, 0, "div", 36);
|
|
694
|
+
i0.ɵɵelementEnd();
|
|
695
|
+
i0.ɵɵelementStart(72, "mj-collapsible-panel", 37);
|
|
696
|
+
i0.ɵɵelement(73, "mj-form-field", 38)(74, "mj-form-field", 39)(75, "mj-form-field", 40)(76, "mj-form-field", 41)(77, "mj-form-field", 42);
|
|
697
|
+
i0.ɵɵelementEnd();
|
|
698
|
+
i0.ɵɵelementStart(78, "mj-collapsible-panel", 43);
|
|
699
|
+
i0.ɵɵconditionalCreate(79, RecordProcessFormComponentExtended_Conditional_0_Conditional_79_Template, 73, 25)(80, RecordProcessFormComponentExtended_Conditional_0_Conditional_80_Template, 7, 28);
|
|
700
|
+
i0.ɵɵelementEnd();
|
|
701
|
+
i0.ɵɵelementStart(81, "mj-collapsible-panel", 44);
|
|
702
|
+
i0.ɵɵconditionalCreate(82, RecordProcessFormComponentExtended_Conditional_0_Conditional_82_Template, 13, 4, "div", 45)(83, RecordProcessFormComponentExtended_Conditional_0_Conditional_83_Template, 4, 16);
|
|
703
|
+
i0.ɵɵelementEnd();
|
|
704
|
+
i0.ɵɵelementStart(84, "mj-collapsible-panel", 46);
|
|
705
|
+
i0.ɵɵelement(85, "mj-form-field", 47)(86, "mj-form-field", 48)(87, "mj-form-field", 49)(88, "mj-form-field", 50)(89, "mj-form-field", 51)(90, "mj-form-field", 52)(91, "mj-form-field", 53);
|
|
706
|
+
i0.ɵɵelementEnd();
|
|
707
|
+
i0.ɵɵelementStart(92, "mj-collapsible-panel", 54);
|
|
708
|
+
i0.ɵɵconditionalCreate(93, RecordProcessFormComponentExtended_Conditional_0_Conditional_93_Template, 31, 9)(94, RecordProcessFormComponentExtended_Conditional_0_Conditional_94_Template, 4, 16);
|
|
709
|
+
i0.ɵɵelementEnd();
|
|
710
|
+
i0.ɵɵelementStart(95, "mj-collapsible-panel", 55);
|
|
711
|
+
i0.ɵɵelement(96, "mj-form-field", 56)(97, "mj-form-field", 57);
|
|
712
|
+
i0.ɵɵelementEnd();
|
|
713
|
+
i0.ɵɵelement(98, "mj-form-panel-slot", 58);
|
|
714
|
+
i0.ɵɵelementStart(99, "mj-collapsible-panel", 59);
|
|
715
|
+
i0.ɵɵconditionalCreate(100, RecordProcessFormComponentExtended_Conditional_0_Conditional_100_Template, 2, 4, "div");
|
|
716
|
+
i0.ɵɵelementEnd();
|
|
717
|
+
i0.ɵɵelementStart(101, "mj-collapsible-panel", 60);
|
|
718
|
+
i0.ɵɵconditionalCreate(102, RecordProcessFormComponentExtended_Conditional_0_Conditional_102_Template, 2, 4, "div");
|
|
719
|
+
i0.ɵɵelementEnd();
|
|
720
|
+
i0.ɵɵelementStart(103, "mj-collapsible-panel", 61);
|
|
721
|
+
i0.ɵɵconditionalCreate(104, RecordProcessFormComponentExtended_Conditional_0_Conditional_104_Template, 2, 4, "div");
|
|
722
|
+
i0.ɵɵelementEnd();
|
|
723
|
+
i0.ɵɵelementStart(105, "mj-collapsible-panel", 62);
|
|
724
|
+
i0.ɵɵconditionalCreate(106, RecordProcessFormComponentExtended_Conditional_0_Conditional_106_Template, 2, 4, "div");
|
|
725
|
+
i0.ɵɵelementEnd();
|
|
726
|
+
i0.ɵɵelement(107, "mj-form-panel-slot", 63);
|
|
19
727
|
i0.ɵɵelementEnd();
|
|
20
728
|
} if (rf & 2) {
|
|
21
729
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
22
730
|
i0.ɵɵproperty("Record", ctx_r1.record)("FormComponent", ctx_r1);
|
|
23
731
|
i0.ɵɵadvance();
|
|
24
|
-
i0.ɵɵproperty("Record", ctx_r1.record)("
|
|
732
|
+
i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx_r1.record.EntityInfo.Name))("Record", ctx_r1.record)("FormComponent", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
733
|
+
i0.ɵɵadvance();
|
|
734
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("DefaultExpanded", true);
|
|
735
|
+
i0.ɵɵadvance(5);
|
|
736
|
+
i0.ɵɵclassMap(ctx_r1.WorkTypeIcon);
|
|
737
|
+
i0.ɵɵadvance(4);
|
|
738
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.Name || "Untitled Process");
|
|
739
|
+
i0.ɵɵadvance();
|
|
740
|
+
i0.ɵɵproperty("ngClass", ctx_r1.StatusBadgeClass);
|
|
741
|
+
i0.ɵɵadvance(2);
|
|
742
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status || "Draft", " ");
|
|
743
|
+
i0.ɵɵadvance(2);
|
|
744
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.Description || "No description provided for this process.");
|
|
745
|
+
i0.ɵɵadvance(5);
|
|
746
|
+
i0.ɵɵtextInterpolate(ctx_r1.TargetEntityName);
|
|
747
|
+
i0.ɵɵadvance(2);
|
|
748
|
+
i0.ɵɵclassMap(ctx_r1.WorkTypeIcon);
|
|
749
|
+
i0.ɵɵadvance(2);
|
|
750
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.WorkType || "Not set");
|
|
751
|
+
i0.ɵɵadvance();
|
|
752
|
+
i0.ɵɵconditional(ctx_r1.record.WorkType === "Infer" ? 26 : -1);
|
|
753
|
+
i0.ɵɵadvance(7);
|
|
754
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.ScopeType || "Filter");
|
|
755
|
+
i0.ɵɵadvance();
|
|
756
|
+
i0.ɵɵproperty("title", ctx_r1.record.ScopeFilter || "All records in scope");
|
|
757
|
+
i0.ɵɵadvance();
|
|
758
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ScopeFilter ? ctx_r1.record.ScopeFilter : "No filter applied (all records)", " ");
|
|
759
|
+
i0.ɵɵadvance(6);
|
|
760
|
+
i0.ɵɵconditional(ctx_r1.record.ScheduleEnabled ? 41 : ctx_r1.record.OnChangeEnabled ? 42 : ctx_r1.record.OnDemandEnabled ? 43 : 44);
|
|
761
|
+
i0.ɵɵadvance(5);
|
|
762
|
+
i0.ɵɵconditional(ctx_r1.record.ScheduleEnabled && ctx_r1.record.CronExpression ? 46 : ctx_r1.record.OnChangeEnabled ? 47 : 48);
|
|
763
|
+
i0.ɵɵadvance(8);
|
|
764
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.WatermarkStrategy || "None");
|
|
765
|
+
i0.ɵɵadvance(2);
|
|
766
|
+
i0.ɵɵtextInterpolate2(" Batch: ", ctx_r1.record.BatchSize || "default", " | Concurrency: ", ctx_r1.record.MaxConcurrency || "1", " ");
|
|
767
|
+
i0.ɵɵadvance(6);
|
|
768
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.SkipUnchanged ? "Enabled" : "Disabled");
|
|
769
|
+
i0.ɵɵadvance(2);
|
|
770
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.SkipUnchanged ? "Skips re-evaluating unchanged rows" : "Processes all matching rows", " ");
|
|
771
|
+
i0.ɵɵadvance();
|
|
772
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("DefaultExpanded", true);
|
|
773
|
+
i0.ɵɵadvance();
|
|
774
|
+
i0.ɵɵconditional(ctx_r1.record.WorkType === "Infer" ? 66 : ctx_r1.record.WorkType === "FieldRules" ? 67 : 68);
|
|
775
|
+
i0.ɵɵadvance(3);
|
|
776
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("DefaultExpanded", true);
|
|
777
|
+
i0.ɵɵadvance();
|
|
778
|
+
i0.ɵɵconditional(ctx_r1.record.IsSaved ? 70 : 71);
|
|
779
|
+
i0.ɵɵadvance(2);
|
|
780
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
781
|
+
i0.ɵɵadvance();
|
|
782
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
783
|
+
i0.ɵɵadvance();
|
|
784
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
785
|
+
i0.ɵɵadvance();
|
|
786
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
787
|
+
i0.ɵɵadvance();
|
|
788
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
789
|
+
i0.ɵɵadvance();
|
|
790
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
791
|
+
i0.ɵɵadvance();
|
|
792
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("DefaultExpanded", false);
|
|
793
|
+
i0.ɵɵadvance();
|
|
794
|
+
i0.ɵɵconditional(ctx_r1.record.WorkType === "Infer" ? 79 : 80);
|
|
795
|
+
i0.ɵɵadvance(2);
|
|
796
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
797
|
+
i0.ɵɵadvance();
|
|
798
|
+
i0.ɵɵconditional(ctx_r1.record.WorkType === "Infer" ? 82 : 83);
|
|
799
|
+
i0.ɵɵadvance(2);
|
|
800
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
801
|
+
i0.ɵɵadvance();
|
|
802
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
803
|
+
i0.ɵɵadvance();
|
|
804
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
805
|
+
i0.ɵɵadvance();
|
|
806
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
807
|
+
i0.ɵɵadvance();
|
|
808
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
809
|
+
i0.ɵɵadvance();
|
|
810
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
811
|
+
i0.ɵɵadvance();
|
|
812
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
813
|
+
i0.ɵɵadvance();
|
|
814
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
815
|
+
i0.ɵɵadvance();
|
|
816
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
817
|
+
i0.ɵɵadvance();
|
|
818
|
+
i0.ɵɵconditional(ctx_r1.record.WorkType === "Infer" ? 93 : 94);
|
|
819
|
+
i0.ɵɵadvance(2);
|
|
820
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("DefaultExpanded", false);
|
|
821
|
+
i0.ɵɵadvance();
|
|
822
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
823
|
+
i0.ɵɵadvance();
|
|
824
|
+
i0.ɵɵproperty("Record", ctx_r1.record)("ShowLabel", true)("EditMode", ctx_r1.EditMode)("FormContext", ctx_r1.formContext);
|
|
825
|
+
i0.ɵɵadvance();
|
|
826
|
+
i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx_r1.record.EntityInfo.Name))("Record", ctx_r1.record)("FormComponent", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
827
|
+
i0.ɵɵadvance();
|
|
828
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("BadgeCount", ctx_r1.GetSectionRowCount("mJRecordProcessWatermarks"))("DefaultExpanded", false);
|
|
829
|
+
i0.ɵɵadvance();
|
|
830
|
+
i0.ɵɵconditional(ctx_r1.record.IsSaved ? 100 : -1);
|
|
831
|
+
i0.ɵɵadvance();
|
|
832
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("BadgeCount", ctx_r1.GetSectionRowCount("mJMLModelScoringBindings"))("DefaultExpanded", false);
|
|
833
|
+
i0.ɵɵadvance();
|
|
834
|
+
i0.ɵɵconditional(ctx_r1.record.IsSaved ? 102 : -1);
|
|
835
|
+
i0.ɵɵadvance();
|
|
836
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("BadgeCount", ctx_r1.GetSectionRowCount("mJFeatureValues"))("DefaultExpanded", false);
|
|
837
|
+
i0.ɵɵadvance();
|
|
838
|
+
i0.ɵɵconditional(ctx_r1.record.IsSaved ? 104 : -1);
|
|
839
|
+
i0.ɵɵadvance();
|
|
840
|
+
i0.ɵɵproperty("Form", ctx_r1)("FormContext", ctx_r1.formContext)("BadgeCount", ctx_r1.GetSectionRowCount("mJFeatureValueCaches"))("DefaultExpanded", false);
|
|
841
|
+
i0.ɵɵadvance();
|
|
842
|
+
i0.ɵɵconditional(ctx_r1.record.IsSaved ? 106 : -1);
|
|
843
|
+
i0.ɵɵadvance();
|
|
844
|
+
i0.ɵɵproperty("Entity", i0.ɵɵinterpolate(ctx_r1.record.EntityInfo.Name))("Record", ctx_r1.record)("FormComponent", ctx_r1)("FormContext", ctx_r1.formContext);
|
|
25
845
|
} }
|
|
26
846
|
/**
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
847
|
+
* Pure helper function to format raw JSON.
|
|
848
|
+
*/
|
|
849
|
+
export function FormatRawPipelineJson(configuration) {
|
|
850
|
+
if (!configuration)
|
|
851
|
+
return '';
|
|
852
|
+
const parsed = SafeJSONParse(configuration);
|
|
853
|
+
return parsed ? JSON.stringify(parsed, null, 2) : configuration;
|
|
854
|
+
}
|
|
855
|
+
/** @deprecated Use {@link FormatRawPipelineJson}. */
|
|
856
|
+
export function formatRawPipelineJson(configuration) {
|
|
857
|
+
return FormatRawPipelineJson(configuration);
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* Pure helper function to parse DataFeatureSpec safely.
|
|
861
|
+
*/
|
|
862
|
+
export function ParsePipelineSpec(configuration) {
|
|
863
|
+
if (!configuration)
|
|
864
|
+
return null;
|
|
865
|
+
return SafeJSONParse(configuration);
|
|
866
|
+
}
|
|
867
|
+
/** @deprecated Use {@link ParsePipelineSpec}. */
|
|
868
|
+
export function parsePipelineSpec(configuration) {
|
|
869
|
+
return ParsePipelineSpec(configuration);
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* Pure helper function to validate pipeline spec against entity stub.
|
|
873
|
+
*/
|
|
874
|
+
export function ValidatePipelineSpec(spec, entityStub) {
|
|
875
|
+
if (!spec)
|
|
876
|
+
return [];
|
|
877
|
+
return validateSpec(spec, entityStub);
|
|
878
|
+
}
|
|
879
|
+
/** @deprecated Use {@link ValidatePipelineSpec}. */
|
|
880
|
+
export function validatePipelineSpec(spec, entityStub) {
|
|
881
|
+
return ValidatePipelineSpec(spec, entityStub);
|
|
882
|
+
}
|
|
883
|
+
/**
|
|
884
|
+
* Pure helper to build feature output view-models from spec or output mapping.
|
|
885
|
+
*/
|
|
886
|
+
export function BuildFeatureOutputViewModels(spec, entityInfo, outputMapping) {
|
|
887
|
+
const outputs = [];
|
|
888
|
+
if (spec?.Outputs && spec.Outputs.length > 0) {
|
|
889
|
+
for (const out of spec.Outputs) {
|
|
890
|
+
let targetFieldName = '';
|
|
891
|
+
const targetMode = out.Target?.Mode;
|
|
892
|
+
if (out.Target?.Mode === 'field') {
|
|
893
|
+
targetFieldName = out.Target.EntityFieldName;
|
|
894
|
+
}
|
|
895
|
+
else if (out.Target?.Mode === 'child') {
|
|
896
|
+
targetFieldName = `Child: ${out.Target.EntityName}`;
|
|
897
|
+
}
|
|
898
|
+
else if (out.Target?.Mode === 'tags') {
|
|
899
|
+
targetFieldName = `Tags (${out.Target.Growth || 'taxonomy'})`;
|
|
900
|
+
}
|
|
901
|
+
let constraintText = 'None';
|
|
902
|
+
let violationPolicy = 'error';
|
|
903
|
+
const c = out.Constraint;
|
|
904
|
+
if (c) {
|
|
905
|
+
if (c.OnViolation) {
|
|
906
|
+
violationPolicy = c.OnViolation;
|
|
907
|
+
}
|
|
908
|
+
switch (c.Type) {
|
|
909
|
+
case 'numeric':
|
|
910
|
+
case 'money': {
|
|
911
|
+
const min = c.Min != null ? String(c.Min) : '-∞';
|
|
912
|
+
const max = c.Max != null ? String(c.Max) : '+∞';
|
|
913
|
+
constraintText = `[${min}, ${max}]`;
|
|
914
|
+
break;
|
|
915
|
+
}
|
|
916
|
+
case 'enum': {
|
|
917
|
+
if (c.Values && c.Values.length > 0) {
|
|
918
|
+
constraintText = `Allowed: ${c.Values.slice(0, 3).join(', ')}${c.Values.length > 3 ? '...' : ''}`;
|
|
919
|
+
}
|
|
920
|
+
else if (c.FromFieldMetadata) {
|
|
921
|
+
constraintText = 'From Field Metadata';
|
|
922
|
+
}
|
|
923
|
+
break;
|
|
924
|
+
}
|
|
925
|
+
case 'lookup': {
|
|
926
|
+
constraintText = `Lookup: ${c.Entity || ''}.${c.MatchField || ''}`;
|
|
927
|
+
break;
|
|
928
|
+
}
|
|
929
|
+
case 'date': {
|
|
930
|
+
constraintText = `Date: [${c.Min || '-∞'}, ${c.Max || '+∞'}]`;
|
|
931
|
+
break;
|
|
932
|
+
}
|
|
933
|
+
case 'boolean': {
|
|
934
|
+
constraintText = 'Boolean';
|
|
935
|
+
break;
|
|
936
|
+
}
|
|
937
|
+
case 'freetext': {
|
|
938
|
+
constraintText = c.MaxLength != null ? `Max: ${c.MaxLength} chars` : 'Freetext';
|
|
939
|
+
break;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
const isFieldMode = targetMode === 'field';
|
|
944
|
+
const field = isFieldMode && targetFieldName && entityInfo?.Fields
|
|
945
|
+
? entityInfo.Fields.find((f) => f.Name.toLowerCase() === targetFieldName.toLowerCase())
|
|
946
|
+
: undefined;
|
|
947
|
+
outputs.push({
|
|
948
|
+
Name: out.Name || out.Ref || 'Unnamed',
|
|
949
|
+
Ref: out.Ref || '',
|
|
950
|
+
FeatureKind: out.FeatureKind || (c?.Type === 'numeric' ? 'numeric' : 'categorical'),
|
|
951
|
+
TargetField: targetFieldName || '—',
|
|
952
|
+
TargetFieldExists: isFieldMode ? !!field : true,
|
|
953
|
+
TargetFieldType: isFieldMode ? (field?.TSType || field?.Type || 'unbound') : (targetMode || 'custom'),
|
|
954
|
+
ConstraintSummary: constraintText,
|
|
955
|
+
ViolationPolicy: violationPolicy,
|
|
956
|
+
ReasoningTarget: spec.CaptureReasoning ? 'Enabled' : 'None',
|
|
957
|
+
});
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
else if (outputMapping) {
|
|
961
|
+
const mapping = SafeJSONParse(outputMapping);
|
|
962
|
+
const fieldsObj = (mapping && 'fields' in mapping && mapping.fields) ? mapping.fields : mapping;
|
|
963
|
+
if (fieldsObj && typeof fieldsObj === 'object') {
|
|
964
|
+
for (const [key, val] of Object.entries(fieldsObj)) {
|
|
965
|
+
const field = entityInfo?.Fields?.find((f) => f.Name.toLowerCase() === key.toLowerCase());
|
|
966
|
+
outputs.push({
|
|
967
|
+
Name: String(val),
|
|
968
|
+
Ref: String(val),
|
|
969
|
+
FeatureKind: 'field',
|
|
970
|
+
TargetField: key,
|
|
971
|
+
TargetFieldExists: !!field,
|
|
972
|
+
TargetFieldType: field?.TSType || field?.Type || 'unbound',
|
|
973
|
+
ConstraintSummary: 'Standard',
|
|
974
|
+
ViolationPolicy: 'null',
|
|
975
|
+
ReasoningTarget: 'None',
|
|
976
|
+
});
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
return outputs;
|
|
981
|
+
}
|
|
982
|
+
/** @deprecated Use {@link BuildFeatureOutputViewModels}. */
|
|
983
|
+
export function buildFeatureOutputViewModels(spec, entityInfo, outputMapping) {
|
|
984
|
+
return BuildFeatureOutputViewModels(spec, entityInfo, outputMapping);
|
|
985
|
+
}
|
|
986
|
+
/**
|
|
987
|
+
* Pure helper to build prompt parameter resolution mappings.
|
|
988
|
+
*/
|
|
989
|
+
export function BuildPromptParamViewModels(spec, inputMapping) {
|
|
990
|
+
const mappings = [];
|
|
991
|
+
if (spec?.Context?.QueryParams) {
|
|
992
|
+
for (const [param, field] of Object.entries(spec.Context.QueryParams)) {
|
|
993
|
+
mappings.push({ Param: `@${param}`, Field: String(field) });
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
else if (spec?.Context?.InputMapping) {
|
|
997
|
+
for (const [param, field] of Object.entries(spec.Context.InputMapping)) {
|
|
998
|
+
mappings.push({ Param: `@${param}`, Field: String(field) });
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
else if (inputMapping) {
|
|
1002
|
+
const raw = SafeJSONParse(inputMapping);
|
|
1003
|
+
if (raw) {
|
|
1004
|
+
for (const [param, field] of Object.entries(raw)) {
|
|
1005
|
+
mappings.push({ Param: `@${param}`, Field: String(field) });
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
return mappings;
|
|
1010
|
+
}
|
|
1011
|
+
/** @deprecated Use {@link BuildPromptParamViewModels}. */
|
|
1012
|
+
export function buildPromptParamViewModels(spec, inputMapping) {
|
|
1013
|
+
return BuildPromptParamViewModels(spec, inputMapping);
|
|
1014
|
+
}
|
|
1015
|
+
/**
|
|
1016
|
+
* Custom form override for `MJ: Record Processes` (priority 100).
|
|
1017
|
+
* Presents the Record Process / Feature Pipeline in a first-class MJ form with:
|
|
1018
|
+
* - Lead panel: "Overview & Status" with hero KPI summary, target entity badge, and trigger diagnostics.
|
|
1019
|
+
* - Builder panel: "Pipeline Configuration" embedding the visual <mj-feature-pipeline-builder> for Infer / Feature Pipelines,
|
|
1020
|
+
* or the <mj-record-process-editor> for Field Rules.
|
|
1021
|
+
* - History panel: "Prior Runs" embedding <mj-record-process-history> with run status, metrics, and per-record diff drill-down.
|
|
1022
|
+
* - Details panel (Option A Structured Cards): First-class semantic cards for Infer pipelines, replacing raw JSON
|
|
1023
|
+
* with configuration health diagnostics, prompt context binding, feature output schema & column validation,
|
|
1024
|
+
* scope preview, and a collapsible raw JSON drawer.
|
|
1025
|
+
* - Related entity sections: Watermarks, ML Model Scoring Bindings, Feature Values, Feature Value Caches.
|
|
1026
|
+
* - System Metadata panel.
|
|
32
1027
|
*/
|
|
33
1028
|
let RecordProcessFormComponentExtended = class RecordProcessFormComponentExtended extends MJRecordProcessFormComponent {
|
|
1029
|
+
constructor() {
|
|
1030
|
+
super(...arguments);
|
|
1031
|
+
this.PipelineValid = true;
|
|
1032
|
+
this.RawJsonExpanded = false;
|
|
1033
|
+
this.RawJsonCopied = false;
|
|
1034
|
+
this.LoadedQuery = null;
|
|
1035
|
+
}
|
|
1036
|
+
/** @deprecated Use {@link PipelineValid}. */
|
|
1037
|
+
get pipelineValid() {
|
|
1038
|
+
return this.PipelineValid;
|
|
1039
|
+
}
|
|
1040
|
+
/** @deprecated Use {@link PipelineValid}. */
|
|
1041
|
+
set pipelineValid(value) {
|
|
1042
|
+
this.PipelineValid = value;
|
|
1043
|
+
}
|
|
1044
|
+
/** @deprecated Use {@link RawJsonExpanded}. */
|
|
1045
|
+
get rawJsonExpanded() {
|
|
1046
|
+
return this.RawJsonExpanded;
|
|
1047
|
+
}
|
|
1048
|
+
/** @deprecated Use {@link RawJsonExpanded}. */
|
|
1049
|
+
set rawJsonExpanded(value) {
|
|
1050
|
+
this.RawJsonExpanded = value;
|
|
1051
|
+
}
|
|
1052
|
+
/** @deprecated Use {@link RawJsonCopied}. */
|
|
1053
|
+
get rawJsonCopied() {
|
|
1054
|
+
return this.RawJsonCopied;
|
|
1055
|
+
}
|
|
1056
|
+
/** @deprecated Use {@link RawJsonCopied}. */
|
|
1057
|
+
set rawJsonCopied(value) {
|
|
1058
|
+
this.RawJsonCopied = value;
|
|
1059
|
+
}
|
|
1060
|
+
/** @deprecated Use {@link LoadedQuery}. */
|
|
1061
|
+
get loadedQuery() {
|
|
1062
|
+
return this.LoadedQuery;
|
|
1063
|
+
}
|
|
1064
|
+
/** @deprecated Use {@link LoadedQuery}. */
|
|
1065
|
+
set loadedQuery(value) {
|
|
1066
|
+
this.LoadedQuery = value;
|
|
1067
|
+
}
|
|
1068
|
+
async ngOnInit() {
|
|
1069
|
+
await super.ngOnInit();
|
|
1070
|
+
this.initSections([
|
|
1071
|
+
{ sectionKey: 'processOverview', sectionName: 'Overview & Status', isExpanded: true },
|
|
1072
|
+
{ sectionKey: 'inferConfig', sectionName: 'Infer Configuration', isExpanded: true },
|
|
1073
|
+
{ sectionKey: 'pipelineConfiguration', sectionName: 'Pipeline Configuration', isExpanded: true },
|
|
1074
|
+
{ sectionKey: 'processRuns', sectionName: 'Prior Runs', isExpanded: true },
|
|
1075
|
+
{ sectionKey: 'processDefinition', sectionName: 'Process Definition', isExpanded: true },
|
|
1076
|
+
{ sectionKey: 'executionLogic', sectionName: 'Execution Logic', isExpanded: false },
|
|
1077
|
+
{ sectionKey: 'scopeConfiguration', sectionName: 'Scope Configuration', isExpanded: true },
|
|
1078
|
+
{ sectionKey: 'triggers', sectionName: 'Triggers', isExpanded: true },
|
|
1079
|
+
{ sectionKey: 'performanceAndOptimization', sectionName: 'Performance & Optimization', isExpanded: false },
|
|
1080
|
+
{ sectionKey: 'mJRecordProcessWatermarks', sectionName: 'Record Process Watermarks', isExpanded: false },
|
|
1081
|
+
{ sectionKey: 'mJMLModelScoringBindings', sectionName: 'ML Model Scoring Bindings', isExpanded: false },
|
|
1082
|
+
{ sectionKey: 'mJFeatureValues', sectionName: 'Feature Values', isExpanded: false },
|
|
1083
|
+
{ sectionKey: 'mJFeatureValueCaches', sectionName: 'Feature Value Caches', isExpanded: false },
|
|
1084
|
+
{ sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },
|
|
1085
|
+
]);
|
|
1086
|
+
await this.loadContextQuery();
|
|
1087
|
+
}
|
|
1088
|
+
async loadContextQuery() {
|
|
1089
|
+
const queryId = this.ParsedSpec?.Context?.QueryID;
|
|
1090
|
+
if (!queryId)
|
|
1091
|
+
return;
|
|
1092
|
+
try {
|
|
1093
|
+
const rv = new RunView();
|
|
1094
|
+
const res = await rv.RunView({
|
|
1095
|
+
EntityName: 'MJ: Queries',
|
|
1096
|
+
ExtraFilter: `ID = '${EscapeSQLString(queryId)}'`,
|
|
1097
|
+
Fields: ['ID', 'Name', 'SQL'],
|
|
1098
|
+
ResultType: 'simple',
|
|
1099
|
+
});
|
|
1100
|
+
if (res.Success && res.Results && res.Results.length > 0) {
|
|
1101
|
+
this.LoadedQuery = res.Results[0];
|
|
1102
|
+
this.cdr.markForCheck();
|
|
1103
|
+
}
|
|
1104
|
+
else if (!res.Success) {
|
|
1105
|
+
LogError(`[RecordProcessForm] Failed to load context query ${queryId}: ${res.ErrorMessage}`);
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
catch (e) {
|
|
1109
|
+
LogError(`[RecordProcessForm] Exception loading context query ${queryId}`, undefined, e);
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
get TargetEntityName() {
|
|
1113
|
+
if (!this.record?.EntityID)
|
|
1114
|
+
return '—';
|
|
1115
|
+
const entity = this.ProviderToUse.EntityByID(this.record.EntityID);
|
|
1116
|
+
return entity?.DisplayName || entity?.Name || this.record.EntityID;
|
|
1117
|
+
}
|
|
1118
|
+
get TargetEntityInfo() {
|
|
1119
|
+
if (!this.record?.EntityID)
|
|
1120
|
+
return undefined;
|
|
1121
|
+
return this.ProviderToUse.EntityByID(this.record.EntityID);
|
|
1122
|
+
}
|
|
1123
|
+
get WorkTypeIcon() {
|
|
1124
|
+
switch (this.record?.WorkType) {
|
|
1125
|
+
case 'Infer':
|
|
1126
|
+
return 'fa-solid fa-wand-magic-sparkles';
|
|
1127
|
+
case 'FieldRules':
|
|
1128
|
+
return 'fa-solid fa-table-list';
|
|
1129
|
+
case 'ML Model':
|
|
1130
|
+
return 'fa-solid fa-brain';
|
|
1131
|
+
case 'Action':
|
|
1132
|
+
return 'fa-solid fa-bolt';
|
|
1133
|
+
case 'Agent':
|
|
1134
|
+
return 'fa-solid fa-robot';
|
|
1135
|
+
default:
|
|
1136
|
+
return 'fa-solid fa-gears';
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
get StatusBadgeClass() {
|
|
1140
|
+
switch (this.record?.Status) {
|
|
1141
|
+
case 'Active':
|
|
1142
|
+
return 'rpf-status-active';
|
|
1143
|
+
case 'Draft':
|
|
1144
|
+
return 'rpf-status-draft';
|
|
1145
|
+
case 'Disabled':
|
|
1146
|
+
return 'rpf-status-disabled';
|
|
1147
|
+
default:
|
|
1148
|
+
return 'rpf-status-default';
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
OnPipelineSpecChange() {
|
|
1152
|
+
this.cdr.markForCheck();
|
|
1153
|
+
}
|
|
1154
|
+
OnPipelineValidChange(valid) {
|
|
1155
|
+
this.PipelineValid = valid;
|
|
1156
|
+
this.cdr.markForCheck();
|
|
1157
|
+
}
|
|
1158
|
+
ToggleRawJson() {
|
|
1159
|
+
this.RawJsonExpanded = !this.RawJsonExpanded;
|
|
1160
|
+
this.cdr.markForCheck();
|
|
1161
|
+
}
|
|
1162
|
+
/** @deprecated Use {@link ToggleRawJson}. */
|
|
1163
|
+
toggleRawJson() {
|
|
1164
|
+
return this.ToggleRawJson();
|
|
1165
|
+
}
|
|
1166
|
+
async CopyRawJson() {
|
|
1167
|
+
try {
|
|
1168
|
+
if (navigator?.clipboard && this.FormattedRawJson) {
|
|
1169
|
+
await navigator.clipboard.writeText(this.FormattedRawJson);
|
|
1170
|
+
this.RawJsonCopied = true;
|
|
1171
|
+
this.cdr.markForCheck();
|
|
1172
|
+
setTimeout(() => {
|
|
1173
|
+
this.RawJsonCopied = false;
|
|
1174
|
+
this.cdr.markForCheck();
|
|
1175
|
+
}, 2000);
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
catch (e) {
|
|
1179
|
+
LogError('[RecordProcessForm] Failed to copy raw JSON to clipboard', undefined, e);
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
/** @deprecated Use {@link CopyRawJson}. */
|
|
1183
|
+
async copyRawJson() {
|
|
1184
|
+
return this.CopyRawJson();
|
|
1185
|
+
}
|
|
1186
|
+
get FormattedRawJson() {
|
|
1187
|
+
return FormatRawPipelineJson(this.record?.Configuration);
|
|
1188
|
+
}
|
|
1189
|
+
get ParsedSpec() {
|
|
1190
|
+
return ParsePipelineSpec(this.record?.Configuration);
|
|
1191
|
+
}
|
|
1192
|
+
get EntityStub() {
|
|
1193
|
+
const entity = this.TargetEntityInfo;
|
|
1194
|
+
if (!entity)
|
|
1195
|
+
return undefined;
|
|
1196
|
+
return {
|
|
1197
|
+
Name: entity.Name,
|
|
1198
|
+
Fields: (entity.Fields ?? []).map((f) => ({
|
|
1199
|
+
Name: f.Name,
|
|
1200
|
+
TSType: f.TSType,
|
|
1201
|
+
IsVirtual: f.IsVirtual,
|
|
1202
|
+
AllowsNull: f.AllowsNull,
|
|
1203
|
+
RelatedEntity: f.RelatedEntity,
|
|
1204
|
+
RelatedEntityID: f.RelatedEntityID,
|
|
1205
|
+
EntityFieldValues: f.EntityFieldValues
|
|
1206
|
+
? f.EntityFieldValues.map((v) => ({ Value: v.Value, Code: v.Code }))
|
|
1207
|
+
: undefined,
|
|
1208
|
+
})),
|
|
1209
|
+
};
|
|
1210
|
+
}
|
|
1211
|
+
get SpecIssues() {
|
|
1212
|
+
return ValidatePipelineSpec(this.ParsedSpec, this.EntityStub);
|
|
1213
|
+
}
|
|
1214
|
+
get IsSpecValid() {
|
|
1215
|
+
return this.SpecIssues.filter((i) => i.Severity === 'error').length === 0;
|
|
1216
|
+
}
|
|
1217
|
+
get FeatureOutputs() {
|
|
1218
|
+
return BuildFeatureOutputViewModels(this.ParsedSpec, this.TargetEntityInfo, this.record?.OutputMapping);
|
|
1219
|
+
}
|
|
1220
|
+
get TotalFeaturesCount() {
|
|
1221
|
+
return this.FeatureOutputs.length;
|
|
1222
|
+
}
|
|
1223
|
+
get BoundFeaturesCount() {
|
|
1224
|
+
return this.FeatureOutputs.filter((f) => f.TargetFieldExists).length;
|
|
1225
|
+
}
|
|
1226
|
+
get ParameterMappings() {
|
|
1227
|
+
return BuildPromptParamViewModels(this.ParsedSpec, this.record?.InputMapping);
|
|
1228
|
+
}
|
|
1229
|
+
get ContextModeText() {
|
|
1230
|
+
const spec = this.ParsedSpec;
|
|
1231
|
+
if (spec?.Context?.EntityDocumentID)
|
|
1232
|
+
return 'Entity Document Template';
|
|
1233
|
+
if (spec?.Context?.QueryID) {
|
|
1234
|
+
return this.LoadedQuery?.Name ? `Query: ${this.LoadedQuery.Name}` : `Saved Query (${spec.Context.QueryID.substring(0, 8)}...)`;
|
|
1235
|
+
}
|
|
1236
|
+
if (spec?.Context?.Fields && spec.Context.Fields.length > 0)
|
|
1237
|
+
return `Fields (${spec.Context.Fields.join(', ')})`;
|
|
1238
|
+
return 'Record Fields (Automatic)';
|
|
1239
|
+
}
|
|
1240
|
+
get ContextQueryDisplay() {
|
|
1241
|
+
const spec = this.ParsedSpec;
|
|
1242
|
+
if (spec?.Context?.QueryID) {
|
|
1243
|
+
if (this.LoadedQuery?.SQL) {
|
|
1244
|
+
return `-- Saved Query: ${this.LoadedQuery.Name}\n${this.LoadedQuery.SQL}`;
|
|
1245
|
+
}
|
|
1246
|
+
const paramName = spec.Context.QueryParams ? Object.keys(spec.Context.QueryParams)[0] || 'RecordID' : 'RecordID';
|
|
1247
|
+
return `-- Saved Query: ${spec.Context.QueryID}\nSELECT a.* FROM ${this.TargetEntityName || 'TargetEntity'} a WHERE a.ID = @${paramName}`;
|
|
1248
|
+
}
|
|
1249
|
+
return `SELECT a.* FROM ${this.TargetEntityName || 'TargetEntity'} a WHERE a.ID = @RecordID`;
|
|
1250
|
+
}
|
|
1251
|
+
get FormattedScopeFilter() {
|
|
1252
|
+
return this.record?.ScopeFilter?.trim() || '';
|
|
1253
|
+
}
|
|
34
1254
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵRecordProcessFormComponentExtended_BaseFactory; return function RecordProcessFormComponentExtended_Factory(__ngFactoryType__) { return (ɵRecordProcessFormComponentExtended_BaseFactory || (ɵRecordProcessFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(RecordProcessFormComponentExtended)))(__ngFactoryType__ || RecordProcessFormComponentExtended); }; })(); }
|
|
35
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordProcessFormComponentExtended, selectors: [["mj-record-process-form-extended"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Record", "FormComponent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], [3, "Record", "ShowToolbar", "Provider"]], template: function RecordProcessFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
-
i0.ɵɵconditionalCreate(0, RecordProcessFormComponentExtended_Conditional_0_Template,
|
|
1255
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordProcessFormComponentExtended, selectors: [["mj-record-process-form-extended"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Record", "FormComponent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent"], ["Slot", "before-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "processOverview", "SectionName", "Overview & Status", "Icon", "fa-solid fa-gauge-high", 3, "Form", "FormContext", "DefaultExpanded"], [1, "rpf-overview-container"], [1, "rpf-hero-card"], [1, "rpf-hero-main"], [1, "rpf-hero-icon-wrap"], [1, "rpf-hero-info"], [1, "rpf-hero-title-row"], [1, "rpf-hero-title"], [1, "rpf-badge", 3, "ngClass"], [1, "rpf-badge-dot"], [1, "rpf-hero-desc"], [1, "rpf-hero-pills"], ["title", "Target Entity", 1, "rpf-pill"], [1, "fa-solid", "fa-database"], ["title", "Work Type", 1, "rpf-pill"], ["title", "Feature Pipeline", 1, "rpf-pill", "rpf-pill-feature"], [1, "rpf-kpi-grid"], [1, "rpf-kpi-card"], [1, "rpf-kpi-label"], [1, "fa-solid", "fa-filter"], [1, "rpf-kpi-value"], [1, "rpf-kpi-sub", 3, "title"], [1, "fa-solid", "fa-bolt"], [1, "muted"], [1, "rpf-kpi-sub"], [1, "fa-solid", "fa-water"], [1, "fa-solid", "fa-microchip"], ["SectionKey", "pipelineConfiguration", "SectionName", "Pipeline Configuration", "Icon", "fa-solid fa-wand-magic-sparkles", "Variant", "related-entity", 3, "Form", "FormContext", "DefaultExpanded"], [1, "rpf-pipeline-builder-wrap"], [1, "rpf-editor-wrap"], [1, "rpf-generic-config-wrap"], ["SectionKey", "processRuns", "SectionName", "Prior Runs", "Icon", "fa-solid fa-clock-rotate-left", "Variant", "related-entity", 3, "Form", "FormContext", "DefaultExpanded"], [1, "rpf-history-wrap"], [1, "rpf-notice-card"], ["SectionKey", "processDefinition", "SectionName", "Process Definition", "Icon", "fa fa-info-circle", 3, "Form", "FormContext"], ["FieldName", "Name", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "CategoryID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "EntityID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Status", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "executionLogic", "SectionName", "Execution Logic", "Icon", "fa fa-play", 3, "Form", "FormContext", "DefaultExpanded"], ["SectionKey", "scopeConfiguration", "SectionName", "Scope Configuration", "Icon", "fa fa-filter", 3, "Form", "FormContext"], [1, "rpf-scope-infer-wrap"], ["SectionKey", "triggers", "SectionName", "Triggers", "Icon", "fa fa-bolt", 3, "Form", "FormContext"], ["FieldName", "OnChangeEnabled", "Type", "checkbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OnChangeInvocationType", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OnChangeFilter", "Type", "code", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ScheduleEnabled", "Type", "checkbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "CronExpression", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Timezone", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OnDemandEnabled", "Type", "checkbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "performanceAndOptimization", "SectionName", "Performance and Optimization", "Icon", "fa fa-tachometer-alt", 3, "Form", "FormContext"], ["SectionKey", "systemMetadata", "SectionName", "System Metadata", "Icon", "fa fa-database", 3, "Form", "FormContext", "DefaultExpanded"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["Slot", "after-fields", 3, "Entity", "Record", "FormComponent", "FormContext"], ["SectionKey", "mJRecordProcessWatermarks", "SectionName", "Record Process Watermarks", "Icon", "fa fa-water", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJMLModelScoringBindings", "SectionName", "ML Model Scoring Bindings", "Icon", "fa fa-project-diagram", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJFeatureValues", "SectionName", "Feature Values", "Icon", "fa fa-history", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["SectionKey", "mJFeatureValueCaches", "SectionName", "Feature Value Caches", "Icon", "fa fa-database", "Variant", "related-entity", 3, "Form", "FormContext", "BadgeCount", "DefaultExpanded"], ["Slot", "after-related", 3, "Entity", "Record", "FormComponent", "FormContext"], [1, "fa-solid", "fa-sparkles"], [3, "SpecChange", "ValidChange", "Record", "EntityID"], [3, "Record", "ShowToolbar", "Provider"], [1, "fa-solid", "fa-circle-info"], [3, "RecordProcessID"], [1, "rpf-audit-bar"], [1, "rpf-audit-badges"], [1, "rpf-audit-chip"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)"], [1, "rpf-prompt-grid"], [1, "rpf-card-box"], [1, "rpf-box-eyebrow"], [1, "rpf-prompt-title"], [1, "fa-solid", "fa-message-code"], [1, "rpf-chip-wrap"], [1, "rpf-sm-chip", "rpf-sm-chip-brand"], [1, "rpf-sm-chip"], [2, "margin-top", "10px"], [1, "rpf-param-list"], [2, "font-size", "12px", "color", "var(--mj-text-muted)"], [1, "rpf-sql-preview-box"], [1, "rpf-sql-preview-label"], [1, "fa-solid", "fa-code"], [1, "rpf-sql-preview-code"], [1, "rpf-table-wrap"], [1, "rpf-feature-table"], [1, "rpf-raw-json-drawer"], [1, "rpf-raw-json-header", 3, "click"], [1, "rpf-raw-json-title"], ["type", "button", 1, "rpf-sm-chip", 3, "click"], [1, "rpf-raw-json-body"], [1, "rpf-edit-fields-divider"], ["FieldName", "PromptID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "rpf-param-row"], [1, "rpf-param-name"], [1, "fa-solid", "fa-arrow-left", "rpf-param-arrow"], [1, "rpf-feature-name-cell"], [1, "rpf-type-tag"], [1, "rpf-sm-chip", 3, "title"], [1, "fa-solid", "fa-shield"], [1, "rpf-binding-pill"], [2, "color", "var(--mj-text-muted)", "font-size", "11px"], [1, "fa-solid", "fa-brain"], ["colspan", "5", 2, "text-align", "center", "color", "var(--mj-text-muted)", "padding", "20px"], ["FieldName", "WorkType", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Configuration", "Type", "code", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "OutputMapping", "Type", "code", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ActionID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "AgentID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "InputMapping", "Type", "code", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "rpf-scope-summary-row"], [1, "rpf-scope-badge-group"], [1, "rpf-scope-chip"], [1, "rpf-scope-chip", "rpf-scope-chip-brand"], [1, "fa-solid", "fa-calculator"], ["FieldName", "ScopeType", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ScopeFilter", "Type", "code", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ScopeViewID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "ScopeListID", "Type", "textbox", "LinkType", "Record", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [1, "rpf-opt-grid"], [1, "rpf-opt-card"], [1, "rpf-opt-label"], [1, "rpf-opt-value"], [1, "rpf-opt-sub"], ["FieldName", "SkipUnchanged", "Type", "checkbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "WatermarkStrategy", "Type", "select", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "BatchSize", "Type", "number", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "MaxConcurrency", "Type", "number", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [3, "Navigate", "AfterDataLoad", "Params", "NewRecordValues", "AllowLoad", "ShowToolbar"]], template: function RecordProcessFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
1256
|
+
i0.ɵɵconditionalCreate(0, RecordProcessFormComponentExtended_Conditional_0_Template, 108, 142, "mj-record-form-container", 0);
|
|
37
1257
|
} if (rf & 2) {
|
|
38
1258
|
i0.ɵɵconditional(ctx.record ? 0 : -1);
|
|
39
|
-
} }, dependencies: [i1.MjRecordFormContainerComponent, i2.RecordProcessEditorComponent], encapsulation: 2 }); }
|
|
1259
|
+
} }, dependencies: [i1.NgClass, i2.MjFormFieldComponent, i2.MjCollapsiblePanelComponent, i2.MjRecordFormContainerComponent, i2.ExplorerEntityDataGridComponent, i2.FormPanelSlotComponent, i3.RecordProcessEditorComponent, i3.FeaturePipelineBuilderComponent, i3.RecordProcessHistoryComponent], styles: ["\n\n\n\n\n.rpf-overview-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 4px 0 12px 0;\n}\n\n\n.rpf-hero-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 10px;\n padding: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.rpf-hero-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 18px;\n}\n\n.rpf-hero-icon-wrap[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary, #0284c7);\n font-size: 22px;\n flex-shrink: 0;\n}\n\n.rpf-hero-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.rpf-hero-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.rpf-hero-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.3;\n}\n\n.rpf-hero-desc[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary, #64748b);\n line-height: 1.5;\n}\n\n.rpf-hero-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.rpf-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 6px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-pill-feature[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n\n.rpf-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: 9999px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.rpf-badge-dot[_ngcontent-%COMP%] {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n}\n\n.rpf-status-active[_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg, color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface)));\n color: var(--mj-status-success-text, var(--mj-status-success));\n border: 1px solid var(--mj-status-success-border, color-mix(in srgb, var(--mj-status-success) 30%, transparent));\n}\n.rpf-status-active[_ngcontent-%COMP%] .rpf-badge-dot[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.rpf-status-draft[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg, color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface)));\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n border: 1px solid var(--mj-status-warning-border, color-mix(in srgb, var(--mj-status-warning) 30%, transparent));\n}\n.rpf-status-draft[_ngcontent-%COMP%] .rpf-badge-dot[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.rpf-status-disabled[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-subtle);\n}\n.rpf-status-disabled[_ngcontent-%COMP%] .rpf-badge-dot[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}\n\n.rpf-status-default[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n color: var(--mj-text-secondary, #64748b);\n border: 1px solid var(--mj-border-subtle, #cbd5e1);\n}\n.rpf-status-default[_ngcontent-%COMP%] .rpf-badge-dot[_ngcontent-%COMP%] {\n background: var(--mj-text-secondary, #64748b);\n}\n\n\n.rpf-kpi-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.rpf-kpi-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px 16px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.rpf-kpi-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #94a3b8);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.rpf-kpi-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.rpf-kpi-sub[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary, #64748b);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.rpf-kpi-sub[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n font-size: 11px;\n padding: 1px 4px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border-radius: 4px;\n}\n\n\n.rpf-pipeline-builder-wrap[_ngcontent-%COMP%] {\n padding: 8px 0;\n}\n\n.rpf-editor-wrap[_ngcontent-%COMP%] {\n padding: 8px 0;\n}\n\n.rpf-history-wrap[_ngcontent-%COMP%] {\n padding: 8px 0;\n}\n\n.rpf-notice-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n border-radius: 8px;\n color: var(--mj-text-secondary, #64748b);\n font-size: 13px;\n line-height: 1.5;\n}\n\n.rpf-notice-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-brand-primary, #0284c7);\n margin-top: 2px;\n}\n\n.rpf-notice-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n display: block;\n color: var(--mj-text-primary, #0f172a);\n margin-bottom: 2px;\n}\n\n.rpf-notice-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n}\n\n\n\n\n\n\n.rpf-audit-bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-left: 4px solid var(--mj-status-success, #22c55e);\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.rpf-audit-bar-warning[_ngcontent-%COMP%] {\n border-left-color: var(--mj-status-warning, #f59e0b);\n}\n\n.rpf-audit-badges[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.rpf-audit-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary, #475569);\n font-weight: 500;\n}\n\n.rpf-audit-chip-valid[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text, #15803d);\n font-weight: 600;\n}\n\n.rpf-audit-chip-warning[_ngcontent-%COMP%] {\n color: var(--mj-status-warning-text, #b45309);\n font-weight: 600;\n}\n\n\n.rpf-prompt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 14px;\n margin-bottom: 16px;\n}\n\n@media (max-width: 768px) {\n .rpf-prompt-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n.rpf-card-box[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n}\n\n.rpf-box-eyebrow[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n}\n\n.rpf-prompt-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-brand-primary, #0076b6);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-chip-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 10px;\n}\n\n.rpf-sm-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: var(--mj-bg-surface, #ffffff);\n color: var(--mj-text-secondary, #475569);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n}\n\n.rpf-sm-chip-brand[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n font-weight: 600;\n}\n\n.rpf-param-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.rpf-param-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.rpf-param-name[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-text-secondary, #475569);\n font-weight: 600;\n}\n\n.rpf-param-arrow[_ngcontent-%COMP%] {\n color: var(--mj-text-muted, #94a3b8);\n font-size: 10px;\n margin: 0 4px;\n}\n\n\n.rpf-sql-preview-box[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n margin-bottom: 16px;\n}\n\n.rpf-sql-preview-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.rpf-sql-preview-code[_ngcontent-%COMP%] {\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.6;\n overflow-x: auto;\n}\n\n\n.rpf-table-wrap[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n background: var(--mj-bg-surface, #ffffff);\n margin-bottom: 16px;\n}\n\n.rpf-feature-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.rpf-feature-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 10px 14px;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border-bottom: 2px solid var(--mj-border-default, #e2e8f0);\n}\n\n.rpf-feature-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-border-subtle, #f1f5f9);\n vertical-align: middle;\n}\n\n.rpf-feature-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.rpf-feature-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover td[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-hover, #f8fafc);\n}\n\n.rpf-feature-name-cell[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-type-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.rpf-type-numeric[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.rpf-type-categorical[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.rpf-type-default[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-binding-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.rpf-binding-valid[_ngcontent-%COMP%] {\n color: var(--mj-status-success, #22c55e);\n}\n\n.rpf-binding-invalid[_ngcontent-%COMP%] {\n color: var(--mj-status-warning, #f59e0b);\n}\n\n\n.rpf-opt-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n\n@media (max-width: 900px) {\n .rpf-opt-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.rpf-opt-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n}\n\n.rpf-opt-label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.rpf-opt-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.rpf-opt-sub[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary, #64748b);\n margin-top: 2px;\n}\n\n.rpf-text-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text, #15803d) !important;\n}\n\n\n.rpf-raw-json-drawer[_ngcontent-%COMP%] {\n border: 1px dashed var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n margin-top: 20px;\n padding: 14px 16px;\n}\n\n.rpf-raw-json-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n user-select: none;\n}\n\n.rpf-raw-json-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary, #475569);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-raw-json-body[_ngcontent-%COMP%] {\n margin-top: 12px;\n}\n\n.rpf-raw-json-body[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n margin: 0;\n padding: 12px;\n background: var(--mj-bg-surface, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 6px;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.5;\n max-height: 350px;\n overflow-y: auto;\n}\n\n.rpf-scope-infer-wrap[_ngcontent-%COMP%] {\n padding: 4px 0;\n}\n\n.rpf-scope-summary-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.rpf-scope-badge-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-scope-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-scope-chip-brand[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n font-weight: 600;\n}\n\n.rpf-edit-fields-divider[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px dashed var(--mj-border-default, #e2e8f0);\n}"] }); }
|
|
40
1260
|
};
|
|
41
1261
|
RecordProcessFormComponentExtended = __decorate([
|
|
42
|
-
RegisterClass(BaseFormComponent, 'MJ: Record Processes')
|
|
1262
|
+
RegisterClass(BaseFormComponent, 'MJ: Record Processes', 100)
|
|
43
1263
|
], RecordProcessFormComponentExtended);
|
|
44
1264
|
export { RecordProcessFormComponentExtended };
|
|
45
1265
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecordProcessFormComponentExtended, [{
|
|
46
1266
|
type: Component,
|
|
47
|
-
args: [{ standalone: false, selector: 'mj-record-process-form-extended', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-record-process-editor [Record]=\"record\" [ShowToolbar]=\"false\" [Provider]=\"ProviderToUse\"></mj-record-process-editor>\n\n</mj-record-form-container>\n}\n" }]
|
|
1267
|
+
args: [{ standalone: false, selector: 'mj-record-process-form-extended', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n OVERVIEW & STATUS (Lead Panel)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"processOverview\"\n SectionName=\"Overview & Status\"\n Icon=\"fa-solid fa-gauge-high\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n <div class=\"rpf-overview-container\">\n <!-- Hero Header Card -->\n <div class=\"rpf-hero-card\">\n <div class=\"rpf-hero-main\">\n <div class=\"rpf-hero-icon-wrap\">\n <i [class]=\"WorkTypeIcon\"></i>\n </div>\n <div class=\"rpf-hero-info\">\n <div class=\"rpf-hero-title-row\">\n <h2 class=\"rpf-hero-title\">{{ record.Name || 'Untitled Process' }}</h2>\n <span class=\"rpf-badge\" [ngClass]=\"StatusBadgeClass\">\n <span class=\"rpf-badge-dot\"></span>\n {{ record.Status || 'Draft' }}\n </span>\n </div>\n <p class=\"rpf-hero-desc\">{{ record.Description || 'No description provided for this process.' }}</p>\n <div class=\"rpf-hero-pills\">\n <span class=\"rpf-pill\" title=\"Target Entity\">\n <i class=\"fa-solid fa-database\"></i>\n <span>{{ TargetEntityName }}</span>\n </span>\n <span class=\"rpf-pill\" title=\"Work Type\">\n <i [class]=\"WorkTypeIcon\"></i>\n <span>{{ record.WorkType || 'Not set' }}</span>\n </span>\n @if (record.WorkType === 'Infer') {\n <span class=\"rpf-pill rpf-pill-feature\" title=\"Feature Pipeline\">\n <i class=\"fa-solid fa-sparkles\"></i>\n <span>Feature Pipeline</span>\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n\n <!-- KPI Summary Grid -->\n <div class=\"rpf-kpi-grid\">\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-filter\"></i> Target Scope</div>\n <div class=\"rpf-kpi-value\">{{ record.ScopeType || 'Filter' }}</div>\n <div class=\"rpf-kpi-sub\" [title]=\"record.ScopeFilter || 'All records in scope'\">\n {{ record.ScopeFilter ? record.ScopeFilter : 'No filter applied (all records)' }}\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-bolt\"></i> Triggers</div>\n <div class=\"rpf-kpi-value\">\n @if (record.ScheduleEnabled) {\n <span>Scheduled</span>\n } @else if (record.OnChangeEnabled) {\n <span>On Change</span>\n } @else if (record.OnDemandEnabled) {\n <span>On Demand</span>\n } @else {\n <span class=\"muted\">Manual</span>\n }\n </div>\n <div class=\"rpf-kpi-sub\">\n @if (record.ScheduleEnabled && record.CronExpression) {\n <code>{{ record.CronExpression }}</code>\n } @else if (record.OnChangeEnabled) {\n <span>Mode: {{ record.OnChangeInvocationType || 'Immediate' }}</span>\n } @else {\n <span>On demand execution</span>\n }\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-water\"></i> Optimization</div>\n <div class=\"rpf-kpi-value\">{{ record.WatermarkStrategy || 'None' }}</div>\n <div class=\"rpf-kpi-sub\">\n Batch: {{ record.BatchSize || 'default' }} | Concurrency: {{ record.MaxConcurrency || '1' }}\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-microchip\"></i> Skip Unchanged</div>\n <div class=\"rpf-kpi-value\">{{ record.SkipUnchanged ? 'Enabled' : 'Disabled' }}</div>\n <div class=\"rpf-kpi-sub\">\n {{ record.SkipUnchanged ? 'Skips re-evaluating unchanged rows' : 'Processes all matching rows' }}\n </div>\n </div>\n </div>\n </div>\n </mj-collapsible-panel>\n\n <!-- ========================================\n PIPELINE CONFIGURATION (Visual Builder)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"pipelineConfiguration\"\n SectionName=\"Pipeline Configuration\"\n Icon=\"fa-solid fa-wand-magic-sparkles\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-pipeline-builder-wrap\">\n <mj-feature-pipeline-builder\n [Record]=\"record\"\n [EntityID]=\"record.EntityID\"\n (SpecChange)=\"OnPipelineSpecChange()\"\n (ValidChange)=\"OnPipelineValidChange($event)\">\n </mj-feature-pipeline-builder>\n </div>\n } @else if (record.WorkType === 'FieldRules') {\n <div class=\"rpf-editor-wrap\">\n <mj-record-process-editor\n [Record]=\"record\"\n [ShowToolbar]=\"false\"\n [Provider]=\"ProviderToUse\">\n </mj-record-process-editor>\n </div>\n } @else {\n <div class=\"rpf-generic-config-wrap\">\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <div>\n <strong>{{ record.WorkType || 'Custom' }} Execution Logic</strong>\n <p>Configure actions, prompts, and mappings in the <em>Process Definition</em> and <em>Execution Logic</em> sections below.</p>\n </div>\n </div>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ========================================\n PRIOR RUNS & AUDIT (Embedded History)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"processRuns\"\n SectionName=\"Prior Runs\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n @if (record.IsSaved) {\n <div class=\"rpf-history-wrap\">\n <mj-record-process-history\n [RecordProcessID]=\"record.ID\">\n </mj-record-process-history>\n </div>\n } @else {\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>Save this record process to view execution history and per-record audit logs.</span>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ========================================\n FIELD PANELS (Fold into Details rail)\n ======================================== -->\n\n <!-- Process Definition Section -->\n <mj-collapsible-panel\n SectionKey=\"processDefinition\"\n SectionName=\"Process Definition\"\n Icon=\"fa fa-info-circle\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Name\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CategoryID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"EntityID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Status\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Execution Logic Section -->\n <mj-collapsible-panel\n SectionKey=\"executionLogic\"\n SectionName=\"Execution Logic\"\n Icon=\"fa fa-play\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"false\">\n @if (record.WorkType === 'Infer') {\n <!-- Health & Schema Audit Bar -->\n <div class=\"rpf-audit-bar\" [class.rpf-audit-bar-warning]=\"!IsSpecValid\">\n <div class=\"rpf-audit-badges\">\n <div class=\"rpf-audit-chip\" [class.rpf-audit-chip-valid]=\"IsSpecValid\" [class.rpf-audit-chip-warning]=\"!IsSpecValid\">\n <i [class]=\"IsSpecValid ? 'fa-solid fa-shield-check' : 'fa-solid fa-triangle-exclamation'\"></i>\n <span>{{ IsSpecValid ? 'Configuration Valid' : 'Configuration Issues Found' }}</span>\n </div>\n <div class=\"rpf-audit-chip\">\n <i class=\"fa-solid fa-check-circle\" style=\"color: var(--mj-status-success);\"></i>\n <span>{{ BoundFeaturesCount }} of {{ TotalFeaturesCount }} Features Bound to Target</span>\n </div>\n <div class=\"rpf-audit-chip\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Context: {{ ContextModeText }}</span>\n </div>\n </div>\n </div>\n\n <!-- AI Model & Context Query Section -->\n <div class=\"rpf-prompt-grid\">\n <!-- Prompt Card -->\n <div class=\"rpf-card-box\">\n <div class=\"rpf-box-eyebrow\">Bound AI Prompt</div>\n <div class=\"rpf-prompt-title\">\n <i class=\"fa-solid fa-message-code\"></i>\n <span>{{ record.PromptID ? 'Prompt Configured' : 'No Prompt Selected' }}</span>\n </div>\n <div class=\"rpf-chip-wrap\">\n @if (record.PromptID) {\n <span class=\"rpf-sm-chip rpf-sm-chip-brand\">ID: {{ record.PromptID.substring(0, 8) }}...</span>\n }\n <span class=\"rpf-sm-chip\"><i class=\"fa-solid fa-sparkles\"></i> Feature Infer Engine</span>\n <span class=\"rpf-sm-chip\"><i class=\"fa-solid fa-microchip\"></i> LLM Output Parser</span>\n </div>\n @if (EditMode) {\n <div style=\"margin-top: 10px;\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PromptID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n </div>\n }\n </div>\n\n <!-- Parameters Resolution Card -->\n <div class=\"rpf-card-box\">\n <div class=\"rpf-box-eyebrow\">Prompt Parameter Resolution</div>\n @if (ParameterMappings.length > 0) {\n <div class=\"rpf-param-list\">\n @for (item of ParameterMappings; track item.Param) {\n <div class=\"rpf-param-row\">\n <span class=\"rpf-param-name\">{{ item.Param }}</span>\n <span>\n <i class=\"fa-solid fa-arrow-left rpf-param-arrow\"></i>\n <span>Column: <code>{{ item.Field }}</code></span>\n </span>\n </div>\n }\n </div>\n } @else {\n <div style=\"font-size: 12px; color: var(--mj-text-muted);\">\n No parameter bindings configured. Entire row context will be passed to prompt.\n </div>\n }\n </div>\n </div>\n\n <!-- Context Query Display -->\n <div class=\"rpf-sql-preview-box\">\n <div class=\"rpf-sql-preview-label\">\n <i class=\"fa-solid fa-code\"></i> Context Retrieval Query\n </div>\n <div class=\"rpf-sql-preview-code\">\n <code>{{ ContextQueryDisplay }}</code>\n </div>\n </div>\n\n <!-- Feature Output Schema & Entity Mappings Table -->\n <div class=\"rpf-table-wrap\">\n <table class=\"rpf-feature-table\">\n <thead>\n <tr>\n <th>Feature Name</th>\n <th>Kind / Type</th>\n <th>Validation Constraints</th>\n <th>Target Field Binding</th>\n <th>Reasoning</th>\n </tr>\n </thead>\n <tbody>\n @if (FeatureOutputs.length > 0) {\n @for (out of FeatureOutputs; track out.Name) {\n <tr>\n <td>\n <div class=\"rpf-feature-name-cell\">\n <i [class]=\"out.FeatureKind === 'numeric' ? 'fa-solid fa-chart-line' : 'fa-solid fa-tags'\"\n [style.color]=\"out.FeatureKind === 'numeric' ? '#f59e0b' : '#8b5cf6'\"></i>\n <span>{{ out.Name }}</span>\n </div>\n </td>\n <td>\n <span class=\"rpf-type-tag\"\n [class.rpf-type-numeric]=\"out.FeatureKind === 'numeric'\"\n [class.rpf-type-categorical]=\"out.FeatureKind === 'categorical'\"\n [class.rpf-type-default]=\"out.FeatureKind !== 'numeric' && out.FeatureKind !== 'categorical'\">\n {{ out.FeatureKind }}\n </span>\n </td>\n <td>\n <span class=\"rpf-sm-chip\" [title]=\"'Violation policy: ' + out.ViolationPolicy\">\n <i class=\"fa-solid fa-shield\"></i> {{ out.ConstraintSummary }}\n </span>\n </td>\n <td>\n <div class=\"rpf-binding-pill\">\n <i [class]=\"out.TargetFieldExists ? 'fa-solid fa-check-circle rpf-binding-valid' : 'fa-solid fa-triangle-exclamation rpf-binding-invalid'\"></i>\n <span>{{ TargetEntityName }}.<strong>{{ out.TargetField }}</strong></span>\n <span style=\"color: var(--mj-text-muted); font-size: 11px;\">({{ out.TargetFieldType }})</span>\n </div>\n </td>\n <td>\n @if (out.ReasoningTarget === 'Enabled') {\n <span class=\"rpf-sm-chip rpf-sm-chip-brand\"><i class=\"fa-solid fa-brain\"></i> Captured</span>\n } @else {\n <span style=\"color: var(--mj-text-muted); font-size: 11px;\">None</span>\n }\n </td>\n </tr>\n }\n } @else {\n <tr>\n <td colspan=\"5\" style=\"text-align: center; color: var(--mj-text-muted); padding: 20px;\">\n No output features defined yet. Use the <em>Pipeline Configuration</em> builder tab to add output features.\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <!-- Advanced Raw JSON Drawer -->\n <div class=\"rpf-raw-json-drawer\">\n <div class=\"rpf-raw-json-header\" (click)=\"ToggleRawJson()\">\n <div class=\"rpf-raw-json-title\">\n <i [class]=\"RawJsonExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n <i class=\"fa-solid fa-code\"></i>\n <span>Power User Escape Hatch: View Raw Pipeline Configuration JSON</span>\n </div>\n <button type=\"button\" class=\"rpf-sm-chip\" (click)=\"$event.stopPropagation(); CopyRawJson()\">\n <i [class]=\"RawJsonCopied ? 'fa-solid fa-check' : 'fa-regular fa-copy'\"></i>\n <span>{{ RawJsonCopied ? 'Copied!' : 'Copy JSON' }}</span>\n </button>\n </div>\n @if (RawJsonExpanded) {\n <div class=\"rpf-raw-json-body\">\n <pre><code>{{ FormattedRawJson }}</code></pre>\n </div>\n }\n </div>\n\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WorkType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Configuration\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OutputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WorkType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ActionID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"AgentID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PromptID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OutputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Configuration\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n }\n </mj-collapsible-panel>\n\n <!-- Scope Configuration Section -->\n <mj-collapsible-panel\n SectionKey=\"scopeConfiguration\"\n SectionName=\"Scope Configuration\"\n Icon=\"fa fa-filter\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-scope-infer-wrap\">\n <div class=\"rpf-scope-summary-row\">\n <div class=\"rpf-scope-badge-group\">\n <span class=\"rpf-scope-chip\">\n <i class=\"fa-solid fa-filter\"></i>\n <span>Scope Type: <strong>{{ record.ScopeType || 'Filter' }}</strong></span>\n </span>\n @if (record.ScopeFilter) {\n <span class=\"rpf-scope-chip rpf-scope-chip-brand\">\n <i class=\"fa-solid fa-calculator\"></i>\n <span>Filter Active</span>\n </span>\n }\n </div>\n </div>\n @if (FormattedScopeFilter) {\n <div class=\"rpf-sql-preview-box\">\n <div class=\"rpf-sql-preview-label\">\n <i class=\"fa-solid fa-database\"></i> SQL Scope Filter (WHERE clause)\n </div>\n <div class=\"rpf-sql-preview-code\">\n <code>{{ FormattedScopeFilter }}</code>\n </div>\n </div>\n } @else {\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>No scope filter applied. All records in <strong>{{ TargetEntityName }}</strong> will be evaluated.</span>\n </div>\n }\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n </div>\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeViewID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeListID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n }\n </mj-collapsible-panel>\n\n <!-- Triggers Section -->\n <mj-collapsible-panel\n SectionKey=\"triggers\"\n SectionName=\"Triggers\"\n Icon=\"fa fa-bolt\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeInvocationType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScheduleEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CronExpression\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Timezone\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnDemandEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Performance and Optimization Section -->\n <mj-collapsible-panel\n SectionKey=\"performanceAndOptimization\"\n SectionName=\"Performance and Optimization\"\n Icon=\"fa fa-tachometer-alt\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-opt-grid\">\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Delta Watermark</div>\n <div class=\"rpf-opt-value\">{{ record.WatermarkStrategy || 'Checksum' }}</div>\n <div class=\"rpf-opt-sub\">Evaluates row state changes</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Batch Processing</div>\n <div class=\"rpf-opt-value\">{{ record.BatchSize || 100 }} records</div>\n <div class=\"rpf-opt-sub\">Per inference chunk</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Concurrency</div>\n <div class=\"rpf-opt-value\">{{ record.MaxConcurrency || 1 }} Parallel</div>\n <div class=\"rpf-opt-sub\">Concurrent worker threads</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Skip Unchanged</div>\n <div class=\"rpf-opt-value\" [class.rpf-text-success]=\"record.SkipUnchanged\">\n <i [class]=\"record.SkipUnchanged ? 'fa-solid fa-check' : 'fa-solid fa-minus'\"></i>\n {{ record.SkipUnchanged ? 'Enabled' : 'Disabled' }}\n </div>\n <div class=\"rpf-opt-sub\">Skips re-evaluating unchanged rows</div>\n </div>\n </div>\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SkipUnchanged\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WatermarkStrategy\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BatchSize\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"MaxConcurrency\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SkipUnchanged\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WatermarkStrategy\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BatchSize\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"MaxConcurrency\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n }\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"false\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_CreatedAt\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_UpdatedAt\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Record Process Watermarks Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRecordProcessWatermarks\"\n SectionName=\"Record Process Watermarks\"\n Icon=\"fa fa-water\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRecordProcessWatermarks')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Record Process Watermarks','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Record Process Watermarks','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRecordProcessWatermarks')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRecordProcessWatermarks', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ML Model Scoring Bindings Section -->\n <mj-collapsible-panel\n SectionKey=\"mJMLModelScoringBindings\"\n SectionName=\"ML Model Scoring Bindings\"\n Icon=\"fa fa-project-diagram\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJMLModelScoringBindings')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: ML Model Scoring Bindings','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: ML Model Scoring Bindings','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJMLModelScoringBindings')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJMLModelScoringBindings', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Feature Values Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFeatureValues\"\n SectionName=\"Feature Values\"\n Icon=\"fa fa-history\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJFeatureValues')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Feature Values','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Feature Values','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJFeatureValues')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJFeatureValues', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Feature Value Caches Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFeatureValueCaches\"\n SectionName=\"Feature Value Caches\"\n Icon=\"fa fa-database\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJFeatureValueCaches')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Feature Value Caches','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Feature Value Caches','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJFeatureValueCaches')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJFeatureValueCaches', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n}\n", styles: ["/* ==========================================================================\n Record Process / Feature Pipeline Custom Form Styles\n Uses standard MemberJunction design tokens for full light & dark mode support.\n ========================================================================== */\n\n.rpf-overview-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 4px 0 12px 0;\n}\n\n/* Hero Header Card */\n.rpf-hero-card {\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 10px;\n padding: 20px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n}\n\n.rpf-hero-main {\n display: flex;\n align-items: flex-start;\n gap: 18px;\n}\n\n.rpf-hero-icon-wrap {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary, #0284c7);\n font-size: 22px;\n flex-shrink: 0;\n}\n\n.rpf-hero-info {\n flex: 1;\n min-width: 0;\n}\n\n.rpf-hero-title-row {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.rpf-hero-title {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.3;\n}\n\n.rpf-hero-desc {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary, #64748b);\n line-height: 1.5;\n}\n\n.rpf-hero-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.rpf-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 6px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-pill-feature {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n/* Status Badges */\n.rpf-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: 9999px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.rpf-badge-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n}\n\n.rpf-status-active {\n background: var(--mj-status-success-bg, color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface)));\n color: var(--mj-status-success-text, var(--mj-status-success));\n border: 1px solid var(--mj-status-success-border, color-mix(in srgb, var(--mj-status-success) 30%, transparent));\n}\n.rpf-status-active .rpf-badge-dot {\n background: var(--mj-status-success);\n}\n\n.rpf-status-draft {\n background: var(--mj-status-warning-bg, color-mix(in srgb, var(--mj-status-warning) 12%, var(--mj-bg-surface)));\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n border: 1px solid var(--mj-status-warning-border, color-mix(in srgb, var(--mj-status-warning) 30%, transparent));\n}\n.rpf-status-draft .rpf-badge-dot {\n background: var(--mj-status-warning);\n}\n\n.rpf-status-disabled {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-subtle);\n}\n.rpf-status-disabled .rpf-badge-dot {\n background: var(--mj-text-muted);\n}\n\n.rpf-status-default {\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n color: var(--mj-text-secondary, #64748b);\n border: 1px solid var(--mj-border-subtle, #cbd5e1);\n}\n.rpf-status-default .rpf-badge-dot {\n background: var(--mj-text-secondary, #64748b);\n}\n\n/* KPI Grid */\n.rpf-kpi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.rpf-kpi-card {\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px 16px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.rpf-kpi-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted, #94a3b8);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.rpf-kpi-value {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.rpf-kpi-sub {\n font-size: 12px;\n color: var(--mj-text-secondary, #64748b);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.rpf-kpi-sub code {\n font-family: var(--mj-font-mono, monospace);\n font-size: 11px;\n padding: 1px 4px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border-radius: 4px;\n}\n\n/* Wrappers for child components */\n.rpf-pipeline-builder-wrap {\n padding: 8px 0;\n}\n\n.rpf-editor-wrap {\n padding: 8px 0;\n}\n\n.rpf-history-wrap {\n padding: 8px 0;\n}\n\n.rpf-notice-card {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n border-radius: 8px;\n color: var(--mj-text-secondary, #64748b);\n font-size: 13px;\n line-height: 1.5;\n}\n\n.rpf-notice-card i {\n font-size: 16px;\n color: var(--mj-brand-primary, #0284c7);\n margin-top: 2px;\n}\n\n.rpf-notice-card strong {\n display: block;\n color: var(--mj-text-primary, #0f172a);\n margin-bottom: 2px;\n}\n\n.rpf-notice-card p {\n margin: 0;\n}\n\n/* ==========================================================================\n Option A: Semantic Cards for Infer Feature Pipeline Details\n ========================================================================== */\n\n/* Schema Health / Audit Banner */\n.rpf-audit-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-elevated, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-left: 4px solid var(--mj-status-success, #22c55e);\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.rpf-audit-bar-warning {\n border-left-color: var(--mj-status-warning, #f59e0b);\n}\n\n.rpf-audit-badges {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.rpf-audit-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary, #475569);\n font-weight: 500;\n}\n\n.rpf-audit-chip-valid {\n color: var(--mj-status-success-text, #15803d);\n font-weight: 600;\n}\n\n.rpf-audit-chip-warning {\n color: var(--mj-status-warning-text, #b45309);\n font-weight: 600;\n}\n\n/* Prompt Card & Resolution Grid */\n.rpf-prompt-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 14px;\n margin-bottom: 16px;\n}\n\n@media (max-width: 768px) {\n .rpf-prompt-grid {\n grid-template-columns: 1fr;\n }\n}\n\n.rpf-card-box {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n}\n\n.rpf-box-eyebrow {\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n}\n\n.rpf-prompt-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-brand-primary, #0076b6);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-chip-wrap {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 10px;\n}\n\n.rpf-sm-chip {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: var(--mj-bg-surface, #ffffff);\n color: var(--mj-text-secondary, #475569);\n border: 1px solid var(--mj-border-subtle, #e2e8f0);\n}\n\n.rpf-sm-chip-brand {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n font-weight: 600;\n}\n\n.rpf-param-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.rpf-param-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n padding: 2px 0;\n}\n\n.rpf-param-name {\n font-family: var(--mj-font-mono, monospace);\n color: var(--mj-text-secondary, #475569);\n font-weight: 600;\n}\n\n.rpf-param-arrow {\n color: var(--mj-text-muted, #94a3b8);\n font-size: 10px;\n margin: 0 4px;\n}\n\n/* SQL / Code Display Boxes */\n.rpf-sql-preview-box {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n margin-bottom: 16px;\n}\n\n.rpf-sql-preview-label {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.rpf-sql-preview-code {\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.6;\n overflow-x: auto;\n}\n\n/* Feature Schema Table */\n.rpf-table-wrap {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n background: var(--mj-bg-surface, #ffffff);\n margin-bottom: 16px;\n}\n\n.rpf-feature-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.rpf-feature-table th {\n text-align: left;\n padding: 10px 14px;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n border-bottom: 2px solid var(--mj-border-default, #e2e8f0);\n}\n\n.rpf-feature-table td {\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-border-subtle, #f1f5f9);\n vertical-align: middle;\n}\n\n.rpf-feature-table tr:last-child td {\n border-bottom: none;\n}\n\n.rpf-feature-table tr:hover td {\n background: var(--mj-bg-surface-hover, #f8fafc);\n}\n\n.rpf-feature-name-cell {\n font-weight: 600;\n color: var(--mj-text-primary, #0f172a);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-type-tag {\n font-size: 11px;\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.rpf-type-numeric {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.rpf-type-categorical {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.rpf-type-default {\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-binding-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n}\n\n.rpf-binding-valid {\n color: var(--mj-status-success, #22c55e);\n}\n\n.rpf-binding-invalid {\n color: var(--mj-status-warning, #f59e0b);\n}\n\n/* Optimization Grid */\n.rpf-opt-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n\n@media (max-width: 900px) {\n .rpf-opt-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.rpf-opt-card {\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n}\n\n.rpf-opt-label {\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--mj-text-muted, #94a3b8);\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.rpf-opt-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary, #0f172a);\n}\n\n.rpf-opt-sub {\n font-size: 11px;\n color: var(--mj-text-secondary, #64748b);\n margin-top: 2px;\n}\n\n.rpf-text-success {\n color: var(--mj-status-success-text, #15803d) !important;\n}\n\n/* Raw JSON Accordion */\n.rpf-raw-json-drawer {\n border: 1px dashed var(--mj-border-default, #e2e8f0);\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken, #f8fafc);\n margin-top: 20px;\n padding: 14px 16px;\n}\n\n.rpf-raw-json-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n user-select: none;\n}\n\n.rpf-raw-json-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary, #475569);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-raw-json-body {\n margin-top: 12px;\n}\n\n.rpf-raw-json-body pre {\n margin: 0;\n padding: 12px;\n background: var(--mj-bg-surface, #ffffff);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n border-radius: 6px;\n font-family: var(--mj-font-mono, monospace);\n font-size: 12px;\n color: var(--mj-text-primary, #0f172a);\n line-height: 1.5;\n max-height: 350px;\n overflow-y: auto;\n}\n\n.rpf-scope-infer-wrap {\n padding: 4px 0;\n}\n\n.rpf-scope-summary-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.rpf-scope-badge-group {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.rpf-scope-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-sunken, #f1f5f9);\n border: 1px solid var(--mj-border-default, #e2e8f0);\n color: var(--mj-text-secondary, #475569);\n}\n\n.rpf-scope-chip-brand {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n font-weight: 600;\n}\n\n.rpf-edit-fields-divider {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px dashed var(--mj-border-default, #e2e8f0);\n}\n"] }]
|
|
48
1268
|
}], null, null); })();
|
|
49
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordProcessFormComponentExtended, { className: "RecordProcessFormComponentExtended", filePath: "src/lib/custom/RecordProcesses/record-process-form.component.ts", lineNumber:
|
|
50
|
-
/**
|
|
1269
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordProcessFormComponentExtended, { className: "RecordProcessFormComponentExtended", filePath: "src/lib/custom/RecordProcesses/record-process-form.component.ts", lineNumber: 247 }); })();
|
|
1270
|
+
/**
|
|
1271
|
+
* Form policy ensuring the Overview panel sits as the lead group
|
|
1272
|
+
* on the left-nav rail with proper title and icon.
|
|
1273
|
+
*/
|
|
1274
|
+
let RecordProcessFormPolicy = class RecordProcessFormPolicy extends BaseFormPolicy {
|
|
1275
|
+
DecorateChrome(spec, _ctx) {
|
|
1276
|
+
const detailsGroup = spec.Groups.find(g => g.Key === DETAILS_SECTION_KEY || g.Key === 'details');
|
|
1277
|
+
if (detailsGroup) {
|
|
1278
|
+
detailsGroup.Title = 'Overview';
|
|
1279
|
+
detailsGroup.Icon = 'fa-solid fa-gauge-high';
|
|
1280
|
+
detailsGroup.IsLead = true;
|
|
1281
|
+
}
|
|
1282
|
+
const overview = spec.Groups.find(g => g.Key === 'processOverview');
|
|
1283
|
+
if (overview) {
|
|
1284
|
+
overview.IsLead = true;
|
|
1285
|
+
const remaining = spec.Groups.filter(g => g.Key !== 'processOverview');
|
|
1286
|
+
return {
|
|
1287
|
+
...spec,
|
|
1288
|
+
Groups: [overview, ...remaining],
|
|
1289
|
+
};
|
|
1290
|
+
}
|
|
1291
|
+
return spec;
|
|
1292
|
+
}
|
|
1293
|
+
};
|
|
1294
|
+
RecordProcessFormPolicy = __decorate([
|
|
1295
|
+
RegisterClassEx(BaseFormPolicy, { key: 'MJ: Record Processes', metadata: { entity: 'MJ: Record Processes' } })
|
|
1296
|
+
], RecordProcessFormPolicy);
|
|
1297
|
+
export { RecordProcessFormPolicy };
|
|
1298
|
+
/** Tree-shaking guard so the override and policy register with the ClassFactory. */
|
|
51
1299
|
export function LoadRecordProcessFormComponentExtended() {
|
|
52
|
-
|
|
1300
|
+
void RecordProcessFormComponentExtended;
|
|
1301
|
+
void RecordProcessFormPolicy;
|
|
53
1302
|
}
|
|
54
1303
|
//# sourceMappingURL=record-process-form.component.js.map
|