@memberjunction/ng-core-entity-forms 6.2.0-edge.0 → 6.2.0-edge.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts +1 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-form-tabs.js +2 -0
- package/dist/lib/custom/AIAgents/agent-form-tabs.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1322 -783
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +694 -252
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/pending-records.d.ts +11 -0
- package/dist/lib/custom/AIPrompts/pending-records.d.ts.map +1 -0
- package/dist/lib/custom/AIPrompts/pending-records.js +21 -0
- package/dist/lib/custom/AIPrompts/pending-records.js.map +1 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +217 -29
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +734 -285
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +31 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.js +52 -16
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +107 -10
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +291 -101
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +429 -109
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +129 -4
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +904 -90
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts +37 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js +399 -0
- package/dist/lib/custom/Rubrics/evaluation-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts +69 -0
- package/dist/lib/custom/Rubrics/record-forms.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js +587 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts +67 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js +534 -0
- package/dist/lib/custom/Rubrics/rubric-form.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts +25 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js +299 -0
- package/dist/lib/custom/Rubrics/rubric-form.panels.js.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts +31 -0
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js +395 -0
- package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -0
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +153 -19
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +434 -217
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +223 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +951 -530
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +395 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1719 -1007
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +3 -3
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +140 -15
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +326 -100
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +56 -48
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +60 -0
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +61 -43
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJAIAgentRubric/mjaiagentrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +37 -19
- package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +78 -52
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +156 -84
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJFeaturePipelineType/mjfeaturepipelinetype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJRecordChange/mjrecordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRecordCloneLog/mjrecordclonelog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js +74 -0
- package/dist/lib/generated/Entities/MJRecordCloneLogItem/mjrecordclonelogitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js +135 -0
- package/dist/lib/generated/Entities/MJRubric/mjrubric.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js +87 -0
- package/dist/lib/generated/Entities/MJRubricBand/mjrubricband.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricCategory/mjrubriccategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js +155 -0
- package/dist/lib/generated/Entities/MJRubricCriterion/mjrubriccriterion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJRubricCriterionLevel/mjrubriccriterionlevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js +183 -0
- package/dist/lib/generated/Entities/MJRubricEvaluation/mjrubricevaluation.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js +120 -0
- package/dist/lib/generated/Entities/MJRubricEvaluationScore/mjrubricevaluationscore.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js +107 -0
- package/dist/lib/generated/Entities/MJRubricScale/mjrubricscale.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js +103 -0
- package/dist/lib/generated/Entities/MJRubricScaleLevel/mjrubricscalelevel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js +171 -0
- package/dist/lib/generated/Entities/MJRubricVersion/mjrubricversion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js +24 -16
- package/dist/lib/generated/Entities/MJTest/mjtest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJTestSuite/mjtestsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js +19 -11
- package/dist/lib/generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +209 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +436 -422
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +44 -2
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +45 -19
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +95 -43
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +20 -16
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +73 -65
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts +116 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.d.ts.map +1 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js +820 -0
- package/dist/lib/panels/record-clone/entity-clone-config-editor.component.js.map +1 -0
- package/dist/lib/shared/components/template-editor.component.d.ts +158 -15
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +389 -127
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +5 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +5 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +47 -42
|
@@ -946,8 +946,8 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
946
946
|
this.sharedService = inject(SharedService);
|
|
947
947
|
this.confirmService = inject(MJConfirmService);
|
|
948
948
|
// Navigation
|
|
949
|
-
this.
|
|
950
|
-
this.
|
|
949
|
+
this.ActiveSection = 'overview';
|
|
950
|
+
this.NavItems = [
|
|
951
951
|
{ id: 'overview', icon: 'fa-solid fa-house', label: 'Overview' },
|
|
952
952
|
{ id: 'items', icon: 'fa-solid fa-list', label: 'Items', badge: 0 },
|
|
953
953
|
{ id: 'sharing', icon: 'fa-solid fa-share-nodes', label: 'Sharing', badge: 0, disabled: false },
|
|
@@ -955,65 +955,349 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
955
955
|
{ id: 'settings', icon: 'fa-solid fa-gear', label: 'Settings' }
|
|
956
956
|
];
|
|
957
957
|
// Data
|
|
958
|
-
this.
|
|
959
|
-
this.
|
|
960
|
-
this.entityInfo = null;
|
|
961
|
-
this.
|
|
958
|
+
this.ListItems = [];
|
|
959
|
+
this.Categories = [];
|
|
960
|
+
this.entityInfo = null; // case-violation-ok-legacy-back-compat: an ancestor class already declares the PascalCase name
|
|
961
|
+
this.Stats = {
|
|
962
962
|
itemCount: 0,
|
|
963
963
|
shareCount: 0,
|
|
964
964
|
invitationCount: 0,
|
|
965
965
|
lastUpdated: null
|
|
966
966
|
};
|
|
967
967
|
// Loading states
|
|
968
|
-
this.
|
|
969
|
-
this.
|
|
970
|
-
this.
|
|
968
|
+
this.IsLoadingItems = false;
|
|
969
|
+
this.IsLoadingStats = false;
|
|
970
|
+
this.ExplorerError = null;
|
|
971
971
|
// Items section
|
|
972
|
-
this.
|
|
973
|
-
this.
|
|
974
|
-
this.
|
|
972
|
+
this.ItemSearchTerm = '';
|
|
973
|
+
this.SelectedItems = new Set();
|
|
974
|
+
this.IsSelectAllChecked = false;
|
|
975
975
|
// Items pagination — the Items grid loads one page at a time so large
|
|
976
976
|
// lists (thousands of members) don't pull the entire membership into the
|
|
977
977
|
// browser. Display-name resolution is likewise batched per page.
|
|
978
|
-
this.
|
|
979
|
-
this.
|
|
978
|
+
this.ItemsPage = 0;
|
|
979
|
+
this.ItemsPageSize = 100;
|
|
980
980
|
// Edit state
|
|
981
|
-
this.
|
|
982
|
-
this.
|
|
983
|
-
this.
|
|
984
|
-
this.
|
|
981
|
+
this.IsEditingName = false;
|
|
982
|
+
this.IsEditingDescription = false;
|
|
983
|
+
this.EditingName = '';
|
|
984
|
+
this.EditingDescription = '';
|
|
985
985
|
// Add Records dialog
|
|
986
|
-
this.
|
|
987
|
-
this.
|
|
988
|
-
this.
|
|
989
|
-
this.
|
|
990
|
-
this.
|
|
991
|
-
this.
|
|
992
|
-
this.
|
|
993
|
-
this.
|
|
986
|
+
this.ShowAddRecordsDialog = false;
|
|
987
|
+
this.AddDialogLoading = false;
|
|
988
|
+
this.AddDialogSaving = false;
|
|
989
|
+
this.AddableRecords = [];
|
|
990
|
+
this.AddRecordsSearchFilter = '';
|
|
991
|
+
this.ExistingListDetailIds = new Set();
|
|
992
|
+
this.AddProgress = 0;
|
|
993
|
+
this.AddTotal = 0;
|
|
994
994
|
this.searchSubject = new Subject();
|
|
995
995
|
// Add From View dialog
|
|
996
|
-
this.
|
|
997
|
-
this.
|
|
998
|
-
this.
|
|
999
|
-
this.
|
|
996
|
+
this.ShowAddFromViewDialog = false;
|
|
997
|
+
this.ShowAddFromViewLoader = false;
|
|
998
|
+
this.UserViews = null;
|
|
999
|
+
this.UserViewsToAdd = [];
|
|
1000
1000
|
/**
|
|
1001
1001
|
* Normalized-UUID set of the IDs in {@link userViewsToAdd}, kept in sync with that
|
|
1002
1002
|
* array. Lets {@link isViewSelected} (bound per-row in the dialog's @for, ~2x/row)
|
|
1003
1003
|
* do an O(1) lookup instead of scanning the array with UUIDsEqual on every check.
|
|
1004
1004
|
*/
|
|
1005
1005
|
this.userViewsToAddIds = new Set();
|
|
1006
|
-
this.
|
|
1007
|
-
this.
|
|
1008
|
-
this.
|
|
1006
|
+
this.AddFromViewProgress = 0;
|
|
1007
|
+
this.AddFromViewTotal = 0;
|
|
1008
|
+
this.FetchingRecordsToSave = false;
|
|
1009
1009
|
// Share dialog
|
|
1010
|
-
this.
|
|
1011
|
-
this.
|
|
1010
|
+
this.ShowShareDialog = false;
|
|
1011
|
+
this.ShareDialogConfig = null;
|
|
1012
1012
|
// Invitations / audit log dialogs — opened from the share dialog.
|
|
1013
|
-
this.
|
|
1014
|
-
this.
|
|
1013
|
+
this.ShowInvitationsDialog = false;
|
|
1014
|
+
this.ShowAuditLogDialog = false;
|
|
1015
1015
|
this.destroy$ = new Subject();
|
|
1016
1016
|
}
|
|
1017
|
+
/** @deprecated Use {@link ActiveSection}. */
|
|
1018
|
+
get activeSection() {
|
|
1019
|
+
return this.ActiveSection;
|
|
1020
|
+
}
|
|
1021
|
+
/** @deprecated Use {@link ActiveSection}. */
|
|
1022
|
+
set activeSection(value) {
|
|
1023
|
+
this.ActiveSection = value;
|
|
1024
|
+
}
|
|
1025
|
+
/** @deprecated Use {@link NavItems}. */
|
|
1026
|
+
get navItems() {
|
|
1027
|
+
return this.NavItems;
|
|
1028
|
+
}
|
|
1029
|
+
/** @deprecated Use {@link NavItems}. */
|
|
1030
|
+
set navItems(value) {
|
|
1031
|
+
this.NavItems = value;
|
|
1032
|
+
}
|
|
1033
|
+
/** @deprecated Use {@link ListItems}. */
|
|
1034
|
+
get listItems() {
|
|
1035
|
+
return this.ListItems;
|
|
1036
|
+
}
|
|
1037
|
+
/** @deprecated Use {@link ListItems}. */
|
|
1038
|
+
set listItems(value) {
|
|
1039
|
+
this.ListItems = value;
|
|
1040
|
+
}
|
|
1041
|
+
/** @deprecated Use {@link Categories}. */
|
|
1042
|
+
get categories() {
|
|
1043
|
+
return this.Categories;
|
|
1044
|
+
}
|
|
1045
|
+
/** @deprecated Use {@link Categories}. */
|
|
1046
|
+
set categories(value) {
|
|
1047
|
+
this.Categories = value;
|
|
1048
|
+
}
|
|
1049
|
+
/** @deprecated Use {@link Stats}. */
|
|
1050
|
+
get stats() {
|
|
1051
|
+
return this.Stats;
|
|
1052
|
+
}
|
|
1053
|
+
/** @deprecated Use {@link Stats}. */
|
|
1054
|
+
set stats(value) {
|
|
1055
|
+
this.Stats = value;
|
|
1056
|
+
}
|
|
1057
|
+
/** @deprecated Use {@link IsLoadingItems}. */
|
|
1058
|
+
get isLoadingItems() {
|
|
1059
|
+
return this.IsLoadingItems;
|
|
1060
|
+
}
|
|
1061
|
+
/** @deprecated Use {@link IsLoadingItems}. */
|
|
1062
|
+
set isLoadingItems(value) {
|
|
1063
|
+
this.IsLoadingItems = value;
|
|
1064
|
+
}
|
|
1065
|
+
/** @deprecated Use {@link IsLoadingStats}. */
|
|
1066
|
+
get isLoadingStats() {
|
|
1067
|
+
return this.IsLoadingStats;
|
|
1068
|
+
}
|
|
1069
|
+
/** @deprecated Use {@link IsLoadingStats}. */
|
|
1070
|
+
set isLoadingStats(value) {
|
|
1071
|
+
this.IsLoadingStats = value;
|
|
1072
|
+
}
|
|
1073
|
+
/** @deprecated Use {@link ExplorerError}. */
|
|
1074
|
+
get explorerError() {
|
|
1075
|
+
return this.ExplorerError;
|
|
1076
|
+
}
|
|
1077
|
+
/** @deprecated Use {@link ExplorerError}. */
|
|
1078
|
+
set explorerError(value) {
|
|
1079
|
+
this.ExplorerError = value;
|
|
1080
|
+
}
|
|
1081
|
+
/** @deprecated Use {@link ItemSearchTerm}. */
|
|
1082
|
+
get itemSearchTerm() {
|
|
1083
|
+
return this.ItemSearchTerm;
|
|
1084
|
+
}
|
|
1085
|
+
/** @deprecated Use {@link ItemSearchTerm}. */
|
|
1086
|
+
set itemSearchTerm(value) {
|
|
1087
|
+
this.ItemSearchTerm = value;
|
|
1088
|
+
}
|
|
1089
|
+
/** @deprecated Use {@link SelectedItems}. */
|
|
1090
|
+
get selectedItems() {
|
|
1091
|
+
return this.SelectedItems;
|
|
1092
|
+
}
|
|
1093
|
+
/** @deprecated Use {@link SelectedItems}. */
|
|
1094
|
+
set selectedItems(value) {
|
|
1095
|
+
this.SelectedItems = value;
|
|
1096
|
+
}
|
|
1097
|
+
/** @deprecated Use {@link IsSelectAllChecked}. */
|
|
1098
|
+
get isSelectAllChecked() {
|
|
1099
|
+
return this.IsSelectAllChecked;
|
|
1100
|
+
}
|
|
1101
|
+
/** @deprecated Use {@link IsSelectAllChecked}. */
|
|
1102
|
+
set isSelectAllChecked(value) {
|
|
1103
|
+
this.IsSelectAllChecked = value;
|
|
1104
|
+
}
|
|
1105
|
+
/** @deprecated Use {@link ItemsPage}. */
|
|
1106
|
+
get itemsPage() {
|
|
1107
|
+
return this.ItemsPage;
|
|
1108
|
+
}
|
|
1109
|
+
/** @deprecated Use {@link ItemsPage}. */
|
|
1110
|
+
set itemsPage(value) {
|
|
1111
|
+
this.ItemsPage = value;
|
|
1112
|
+
}
|
|
1113
|
+
/** @deprecated Use {@link ItemsPageSize}. */
|
|
1114
|
+
get itemsPageSize() {
|
|
1115
|
+
return this.ItemsPageSize;
|
|
1116
|
+
}
|
|
1117
|
+
/** @deprecated Use {@link IsEditingName}. */
|
|
1118
|
+
get isEditingName() {
|
|
1119
|
+
return this.IsEditingName;
|
|
1120
|
+
}
|
|
1121
|
+
/** @deprecated Use {@link IsEditingName}. */
|
|
1122
|
+
set isEditingName(value) {
|
|
1123
|
+
this.IsEditingName = value;
|
|
1124
|
+
}
|
|
1125
|
+
/** @deprecated Use {@link IsEditingDescription}. */
|
|
1126
|
+
get isEditingDescription() {
|
|
1127
|
+
return this.IsEditingDescription;
|
|
1128
|
+
}
|
|
1129
|
+
/** @deprecated Use {@link IsEditingDescription}. */
|
|
1130
|
+
set isEditingDescription(value) {
|
|
1131
|
+
this.IsEditingDescription = value;
|
|
1132
|
+
}
|
|
1133
|
+
/** @deprecated Use {@link EditingName}. */
|
|
1134
|
+
get editingName() {
|
|
1135
|
+
return this.EditingName;
|
|
1136
|
+
}
|
|
1137
|
+
/** @deprecated Use {@link EditingName}. */
|
|
1138
|
+
set editingName(value) {
|
|
1139
|
+
this.EditingName = value;
|
|
1140
|
+
}
|
|
1141
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
1142
|
+
get editingDescription() {
|
|
1143
|
+
return this.EditingDescription;
|
|
1144
|
+
}
|
|
1145
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
1146
|
+
set editingDescription(value) {
|
|
1147
|
+
this.EditingDescription = value;
|
|
1148
|
+
}
|
|
1149
|
+
/** @deprecated Use {@link ShowAddRecordsDialog}. */
|
|
1150
|
+
get showAddRecordsDialog() {
|
|
1151
|
+
return this.ShowAddRecordsDialog;
|
|
1152
|
+
}
|
|
1153
|
+
/** @deprecated Use {@link ShowAddRecordsDialog}. */
|
|
1154
|
+
set showAddRecordsDialog(value) {
|
|
1155
|
+
this.ShowAddRecordsDialog = value;
|
|
1156
|
+
}
|
|
1157
|
+
/** @deprecated Use {@link AddDialogLoading}. */
|
|
1158
|
+
get addDialogLoading() {
|
|
1159
|
+
return this.AddDialogLoading;
|
|
1160
|
+
}
|
|
1161
|
+
/** @deprecated Use {@link AddDialogLoading}. */
|
|
1162
|
+
set addDialogLoading(value) {
|
|
1163
|
+
this.AddDialogLoading = value;
|
|
1164
|
+
}
|
|
1165
|
+
/** @deprecated Use {@link AddDialogSaving}. */
|
|
1166
|
+
get addDialogSaving() {
|
|
1167
|
+
return this.AddDialogSaving;
|
|
1168
|
+
}
|
|
1169
|
+
/** @deprecated Use {@link AddDialogSaving}. */
|
|
1170
|
+
set addDialogSaving(value) {
|
|
1171
|
+
this.AddDialogSaving = value;
|
|
1172
|
+
}
|
|
1173
|
+
/** @deprecated Use {@link AddableRecords}. */
|
|
1174
|
+
get addableRecords() {
|
|
1175
|
+
return this.AddableRecords;
|
|
1176
|
+
}
|
|
1177
|
+
/** @deprecated Use {@link AddableRecords}. */
|
|
1178
|
+
set addableRecords(value) {
|
|
1179
|
+
this.AddableRecords = value;
|
|
1180
|
+
}
|
|
1181
|
+
/** @deprecated Use {@link AddRecordsSearchFilter}. */
|
|
1182
|
+
get addRecordsSearchFilter() {
|
|
1183
|
+
return this.AddRecordsSearchFilter;
|
|
1184
|
+
}
|
|
1185
|
+
/** @deprecated Use {@link AddRecordsSearchFilter}. */
|
|
1186
|
+
set addRecordsSearchFilter(value) {
|
|
1187
|
+
this.AddRecordsSearchFilter = value;
|
|
1188
|
+
}
|
|
1189
|
+
/** @deprecated Use {@link ExistingListDetailIds}. */
|
|
1190
|
+
get existingListDetailIds() {
|
|
1191
|
+
return this.ExistingListDetailIds;
|
|
1192
|
+
}
|
|
1193
|
+
/** @deprecated Use {@link ExistingListDetailIds}. */
|
|
1194
|
+
set existingListDetailIds(value) {
|
|
1195
|
+
this.ExistingListDetailIds = value;
|
|
1196
|
+
}
|
|
1197
|
+
/** @deprecated Use {@link AddProgress}. */
|
|
1198
|
+
get addProgress() {
|
|
1199
|
+
return this.AddProgress;
|
|
1200
|
+
}
|
|
1201
|
+
/** @deprecated Use {@link AddProgress}. */
|
|
1202
|
+
set addProgress(value) {
|
|
1203
|
+
this.AddProgress = value;
|
|
1204
|
+
}
|
|
1205
|
+
/** @deprecated Use {@link AddTotal}. */
|
|
1206
|
+
get addTotal() {
|
|
1207
|
+
return this.AddTotal;
|
|
1208
|
+
}
|
|
1209
|
+
/** @deprecated Use {@link AddTotal}. */
|
|
1210
|
+
set addTotal(value) {
|
|
1211
|
+
this.AddTotal = value;
|
|
1212
|
+
}
|
|
1213
|
+
/** @deprecated Use {@link ShowAddFromViewDialog}. */
|
|
1214
|
+
get showAddFromViewDialog() {
|
|
1215
|
+
return this.ShowAddFromViewDialog;
|
|
1216
|
+
}
|
|
1217
|
+
/** @deprecated Use {@link ShowAddFromViewDialog}. */
|
|
1218
|
+
set showAddFromViewDialog(value) {
|
|
1219
|
+
this.ShowAddFromViewDialog = value;
|
|
1220
|
+
}
|
|
1221
|
+
/** @deprecated Use {@link ShowAddFromViewLoader}. */
|
|
1222
|
+
get showAddFromViewLoader() {
|
|
1223
|
+
return this.ShowAddFromViewLoader;
|
|
1224
|
+
}
|
|
1225
|
+
/** @deprecated Use {@link ShowAddFromViewLoader}. */
|
|
1226
|
+
set showAddFromViewLoader(value) {
|
|
1227
|
+
this.ShowAddFromViewLoader = value;
|
|
1228
|
+
}
|
|
1229
|
+
/** @deprecated Use {@link UserViews}. */
|
|
1230
|
+
get userViews() {
|
|
1231
|
+
return this.UserViews;
|
|
1232
|
+
}
|
|
1233
|
+
/** @deprecated Use {@link UserViews}. */
|
|
1234
|
+
set userViews(value) {
|
|
1235
|
+
this.UserViews = value;
|
|
1236
|
+
}
|
|
1237
|
+
/** @deprecated Use {@link UserViewsToAdd}. */
|
|
1238
|
+
get userViewsToAdd() {
|
|
1239
|
+
return this.UserViewsToAdd;
|
|
1240
|
+
}
|
|
1241
|
+
/** @deprecated Use {@link UserViewsToAdd}. */
|
|
1242
|
+
set userViewsToAdd(value) {
|
|
1243
|
+
this.UserViewsToAdd = value;
|
|
1244
|
+
}
|
|
1245
|
+
/** @deprecated Use {@link AddFromViewProgress}. */
|
|
1246
|
+
get addFromViewProgress() {
|
|
1247
|
+
return this.AddFromViewProgress;
|
|
1248
|
+
}
|
|
1249
|
+
/** @deprecated Use {@link AddFromViewProgress}. */
|
|
1250
|
+
set addFromViewProgress(value) {
|
|
1251
|
+
this.AddFromViewProgress = value;
|
|
1252
|
+
}
|
|
1253
|
+
/** @deprecated Use {@link AddFromViewTotal}. */
|
|
1254
|
+
get addFromViewTotal() {
|
|
1255
|
+
return this.AddFromViewTotal;
|
|
1256
|
+
}
|
|
1257
|
+
/** @deprecated Use {@link AddFromViewTotal}. */
|
|
1258
|
+
set addFromViewTotal(value) {
|
|
1259
|
+
this.AddFromViewTotal = value;
|
|
1260
|
+
}
|
|
1261
|
+
/** @deprecated Use {@link FetchingRecordsToSave}. */
|
|
1262
|
+
get fetchingRecordsToSave() {
|
|
1263
|
+
return this.FetchingRecordsToSave;
|
|
1264
|
+
}
|
|
1265
|
+
/** @deprecated Use {@link FetchingRecordsToSave}. */
|
|
1266
|
+
set fetchingRecordsToSave(value) {
|
|
1267
|
+
this.FetchingRecordsToSave = value;
|
|
1268
|
+
}
|
|
1269
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
1270
|
+
get showShareDialog() {
|
|
1271
|
+
return this.ShowShareDialog;
|
|
1272
|
+
}
|
|
1273
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
1274
|
+
set showShareDialog(value) {
|
|
1275
|
+
this.ShowShareDialog = value;
|
|
1276
|
+
}
|
|
1277
|
+
/** @deprecated Use {@link ShareDialogConfig}. */
|
|
1278
|
+
get shareDialogConfig() {
|
|
1279
|
+
return this.ShareDialogConfig;
|
|
1280
|
+
}
|
|
1281
|
+
/** @deprecated Use {@link ShareDialogConfig}. */
|
|
1282
|
+
set shareDialogConfig(value) {
|
|
1283
|
+
this.ShareDialogConfig = value;
|
|
1284
|
+
}
|
|
1285
|
+
/** @deprecated Use {@link ShowInvitationsDialog}. */
|
|
1286
|
+
get showInvitationsDialog() {
|
|
1287
|
+
return this.ShowInvitationsDialog;
|
|
1288
|
+
}
|
|
1289
|
+
/** @deprecated Use {@link ShowInvitationsDialog}. */
|
|
1290
|
+
set showInvitationsDialog(value) {
|
|
1291
|
+
this.ShowInvitationsDialog = value;
|
|
1292
|
+
}
|
|
1293
|
+
/** @deprecated Use {@link ShowAuditLogDialog}. */
|
|
1294
|
+
get showAuditLogDialog() {
|
|
1295
|
+
return this.ShowAuditLogDialog;
|
|
1296
|
+
}
|
|
1297
|
+
/** @deprecated Use {@link ShowAuditLogDialog}. */
|
|
1298
|
+
set showAuditLogDialog(value) {
|
|
1299
|
+
this.ShowAuditLogDialog = value;
|
|
1300
|
+
}
|
|
1017
1301
|
get metadata() { return this.ProviderToUse; }
|
|
1018
1302
|
async ngOnInit() {
|
|
1019
1303
|
await super.ngOnInit();
|
|
@@ -1048,7 +1332,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1048
1332
|
}
|
|
1049
1333
|
catch (error) {
|
|
1050
1334
|
console.error('Error loading list data:', error);
|
|
1051
|
-
this.
|
|
1335
|
+
this.ExplorerError = 'Failed to load list data';
|
|
1052
1336
|
}
|
|
1053
1337
|
finally {
|
|
1054
1338
|
this.cdr.detectChanges();
|
|
@@ -1062,13 +1346,13 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1062
1346
|
ResultType: 'entity_object'
|
|
1063
1347
|
});
|
|
1064
1348
|
if (result.Success) {
|
|
1065
|
-
this.
|
|
1349
|
+
this.Categories = result.Results;
|
|
1066
1350
|
}
|
|
1067
1351
|
}
|
|
1068
1352
|
async loadItems(page = 0) {
|
|
1069
1353
|
if (!this.record?.IsSaved)
|
|
1070
1354
|
return;
|
|
1071
|
-
this.
|
|
1355
|
+
this.IsLoadingItems = true;
|
|
1072
1356
|
this.cdr.detectChanges();
|
|
1073
1357
|
try {
|
|
1074
1358
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
@@ -1076,19 +1360,19 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1076
1360
|
EntityName: 'MJ: List Details',
|
|
1077
1361
|
ExtraFilter: `ListID = '${this.record.ID}'`,
|
|
1078
1362
|
OrderBy: '__mj_CreatedAt DESC',
|
|
1079
|
-
StartRow: page * this.
|
|
1080
|
-
MaxRows: this.
|
|
1363
|
+
StartRow: page * this.ItemsPageSize,
|
|
1364
|
+
MaxRows: this.ItemsPageSize,
|
|
1081
1365
|
ResultType: 'entity_object'
|
|
1082
1366
|
});
|
|
1083
1367
|
if (result.Success) {
|
|
1084
|
-
this.
|
|
1085
|
-
this.
|
|
1368
|
+
this.ItemsPage = page;
|
|
1369
|
+
this.ListItems = result.Results.map(detail => ({
|
|
1086
1370
|
detail,
|
|
1087
1371
|
recordName: detail.RecordID || 'Loading...',
|
|
1088
1372
|
isLoading: true
|
|
1089
1373
|
}));
|
|
1090
|
-
this.
|
|
1091
|
-
this.
|
|
1374
|
+
this.SelectedItems.clear();
|
|
1375
|
+
this.IsSelectAllChecked = false;
|
|
1092
1376
|
// Resolve display names for this page in one batched query
|
|
1093
1377
|
await this.loadRecordNames();
|
|
1094
1378
|
}
|
|
@@ -1097,7 +1381,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1097
1381
|
console.error('Error loading list items:', error);
|
|
1098
1382
|
}
|
|
1099
1383
|
finally {
|
|
1100
|
-
this.
|
|
1384
|
+
this.IsLoadingItems = false;
|
|
1101
1385
|
this.cdr.detectChanges();
|
|
1102
1386
|
}
|
|
1103
1387
|
}
|
|
@@ -1107,11 +1391,11 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1107
1391
|
*/
|
|
1108
1392
|
async loadRecordNames() {
|
|
1109
1393
|
const finish = () => {
|
|
1110
|
-
for (const item of this.
|
|
1394
|
+
for (const item of this.ListItems)
|
|
1111
1395
|
item.isLoading = false;
|
|
1112
1396
|
this.cdr.detectChanges();
|
|
1113
1397
|
};
|
|
1114
|
-
if (!this.entityInfo || this.
|
|
1398
|
+
if (!this.entityInfo || this.ListItems.length === 0) {
|
|
1115
1399
|
finish();
|
|
1116
1400
|
return;
|
|
1117
1401
|
}
|
|
@@ -1120,7 +1404,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1120
1404
|
const displayField = GetRecordDisplayField(this.entityInfo);
|
|
1121
1405
|
if (!displayField.Field) {
|
|
1122
1406
|
// Entity has only key fields — the record ID is the best label available
|
|
1123
|
-
for (const item of this.
|
|
1407
|
+
for (const item of this.ListItems) {
|
|
1124
1408
|
item.recordName = item.detail.RecordID || 'Unknown';
|
|
1125
1409
|
}
|
|
1126
1410
|
finish();
|
|
@@ -1131,7 +1415,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1131
1415
|
// Keyed by the compact key segment (raw value for a single-column key, "F1|v1||F2|v2" for a
|
|
1132
1416
|
// composite one) — the same form ListDetail.RecordID stores, so the lookups below line up.
|
|
1133
1417
|
const valueMap = new Map();
|
|
1134
|
-
const ids = this.
|
|
1418
|
+
const ids = this.ListItems
|
|
1135
1419
|
.map(i => i.detail.RecordID)
|
|
1136
1420
|
.filter((id) => !!id);
|
|
1137
1421
|
const CHUNK_SIZE = 250;
|
|
@@ -1155,7 +1439,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1155
1439
|
// Fall through — unresolved items display their RecordID
|
|
1156
1440
|
}
|
|
1157
1441
|
}
|
|
1158
|
-
for (const item of this.
|
|
1442
|
+
for (const item of this.ListItems) {
|
|
1159
1443
|
const id = item.detail.RecordID || 'Unknown';
|
|
1160
1444
|
const value = item.detail.RecordID ? valueMap.get(NormalizeUUID(item.detail.RecordID)) : undefined;
|
|
1161
1445
|
item.recordName = FormatRecordDisplayValue(id, value, displayField);
|
|
@@ -1178,18 +1462,26 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1178
1462
|
.join(' OR ');
|
|
1179
1463
|
}
|
|
1180
1464
|
// === Items pagination ===
|
|
1465
|
+
get TotalPages() {
|
|
1466
|
+
return Math.max(1, Math.ceil(this.Stats.itemCount / this.ItemsPageSize));
|
|
1467
|
+
}
|
|
1468
|
+
/** @deprecated Use {@link TotalPages}. */
|
|
1181
1469
|
get totalPages() {
|
|
1182
|
-
return
|
|
1470
|
+
return this.TotalPages;
|
|
1183
1471
|
}
|
|
1184
|
-
async
|
|
1185
|
-
if (page < 0 || page >= this.
|
|
1472
|
+
async GoToPage(page) {
|
|
1473
|
+
if (page < 0 || page >= this.TotalPages || page === this.ItemsPage)
|
|
1186
1474
|
return;
|
|
1187
1475
|
await this.loadItems(page);
|
|
1188
1476
|
}
|
|
1477
|
+
/** @deprecated Use {@link GoToPage}. */
|
|
1478
|
+
async goToPage(page) {
|
|
1479
|
+
return this.GoToPage(page);
|
|
1480
|
+
}
|
|
1189
1481
|
async loadStats() {
|
|
1190
1482
|
if (!this.record?.IsSaved)
|
|
1191
1483
|
return;
|
|
1192
|
-
this.
|
|
1484
|
+
this.IsLoadingStats = true;
|
|
1193
1485
|
try {
|
|
1194
1486
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
1195
1487
|
const [itemsResult, sharesResult, invitationsResult] = await rv.RunViews([
|
|
@@ -1209,7 +1501,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1209
1501
|
ResultType: 'count_only'
|
|
1210
1502
|
}
|
|
1211
1503
|
]);
|
|
1212
|
-
this.
|
|
1504
|
+
this.Stats = {
|
|
1213
1505
|
itemCount: itemsResult.Success ? itemsResult.TotalRowCount : 0,
|
|
1214
1506
|
shareCount: sharesResult.Success ? sharesResult.TotalRowCount : 0,
|
|
1215
1507
|
invitationCount: invitationsResult.Success ? invitationsResult.TotalRowCount : 0,
|
|
@@ -1220,69 +1512,85 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1220
1512
|
console.error('Error loading stats:', error);
|
|
1221
1513
|
}
|
|
1222
1514
|
finally {
|
|
1223
|
-
this.
|
|
1515
|
+
this.IsLoadingStats = false;
|
|
1224
1516
|
this.cdr.detectChanges();
|
|
1225
1517
|
}
|
|
1226
1518
|
}
|
|
1227
1519
|
updateNavBadges() {
|
|
1228
|
-
this.
|
|
1520
|
+
this.NavItems = this.NavItems.map(item => {
|
|
1229
1521
|
switch (item.id) {
|
|
1230
1522
|
case 'items':
|
|
1231
|
-
return { ...item, badge: this.
|
|
1523
|
+
return { ...item, badge: this.Stats.itemCount };
|
|
1232
1524
|
case 'sharing':
|
|
1233
|
-
return { ...item, badge: this.
|
|
1525
|
+
return { ...item, badge: this.Stats.shareCount + this.Stats.invitationCount };
|
|
1234
1526
|
default:
|
|
1235
1527
|
return item;
|
|
1236
1528
|
}
|
|
1237
1529
|
});
|
|
1238
1530
|
}
|
|
1239
1531
|
// === Navigation ===
|
|
1240
|
-
|
|
1241
|
-
const navItem = this.
|
|
1532
|
+
SetActiveSection(section) {
|
|
1533
|
+
const navItem = this.NavItems.find(n => n.id === section);
|
|
1242
1534
|
if (navItem?.disabled)
|
|
1243
1535
|
return;
|
|
1244
|
-
this.
|
|
1536
|
+
this.ActiveSection = section;
|
|
1245
1537
|
this.cdr.detectChanges();
|
|
1246
1538
|
}
|
|
1539
|
+
/** @deprecated Use {@link SetActiveSection}. */
|
|
1540
|
+
setActiveSection(section) {
|
|
1541
|
+
return this.SetActiveSection(section);
|
|
1542
|
+
}
|
|
1247
1543
|
// === Items Management ===
|
|
1248
|
-
get
|
|
1249
|
-
if (!this.
|
|
1250
|
-
return this.
|
|
1251
|
-
const term = this.
|
|
1252
|
-
return this.
|
|
1544
|
+
get FilteredItems() {
|
|
1545
|
+
if (!this.ItemSearchTerm)
|
|
1546
|
+
return this.ListItems;
|
|
1547
|
+
const term = this.ItemSearchTerm.toLowerCase();
|
|
1548
|
+
return this.ListItems.filter(item => item.recordName.toLowerCase().includes(term) ||
|
|
1253
1549
|
item.detail.RecordID?.toLowerCase().includes(term));
|
|
1254
1550
|
}
|
|
1255
|
-
|
|
1551
|
+
/** @deprecated Use {@link FilteredItems}. */
|
|
1552
|
+
get filteredItems() {
|
|
1553
|
+
return this.FilteredItems;
|
|
1554
|
+
}
|
|
1555
|
+
ToggleItemSelection(item) {
|
|
1256
1556
|
const id = item.detail.ID;
|
|
1257
|
-
if (this.
|
|
1258
|
-
this.
|
|
1557
|
+
if (this.SelectedItems.has(id)) {
|
|
1558
|
+
this.SelectedItems.delete(id);
|
|
1259
1559
|
}
|
|
1260
1560
|
else {
|
|
1261
|
-
this.
|
|
1561
|
+
this.SelectedItems.add(id);
|
|
1262
1562
|
}
|
|
1263
1563
|
this.updateSelectAllState();
|
|
1264
1564
|
this.cdr.detectChanges();
|
|
1265
1565
|
}
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1566
|
+
/** @deprecated Use {@link ToggleItemSelection}. */
|
|
1567
|
+
toggleItemSelection(item) {
|
|
1568
|
+
return this.ToggleItemSelection(item);
|
|
1569
|
+
}
|
|
1570
|
+
ToggleSelectAll() {
|
|
1571
|
+
if (this.IsSelectAllChecked) {
|
|
1572
|
+
this.SelectedItems.clear();
|
|
1269
1573
|
}
|
|
1270
1574
|
else {
|
|
1271
|
-
for (const item of this.
|
|
1272
|
-
this.
|
|
1575
|
+
for (const item of this.FilteredItems) {
|
|
1576
|
+
this.SelectedItems.add(item.detail.ID);
|
|
1273
1577
|
}
|
|
1274
1578
|
}
|
|
1275
|
-
this.
|
|
1579
|
+
this.IsSelectAllChecked = !this.IsSelectAllChecked;
|
|
1276
1580
|
this.cdr.detectChanges();
|
|
1277
1581
|
}
|
|
1582
|
+
/** @deprecated Use {@link ToggleSelectAll}. */
|
|
1583
|
+
toggleSelectAll() {
|
|
1584
|
+
return this.ToggleSelectAll();
|
|
1585
|
+
}
|
|
1278
1586
|
updateSelectAllState() {
|
|
1279
|
-
this.
|
|
1280
|
-
this.
|
|
1587
|
+
this.IsSelectAllChecked = this.FilteredItems.length > 0 &&
|
|
1588
|
+
this.FilteredItems.every(item => this.SelectedItems.has(item.detail.ID));
|
|
1281
1589
|
}
|
|
1282
|
-
async
|
|
1283
|
-
if (this.
|
|
1590
|
+
async RemoveSelectedItems() {
|
|
1591
|
+
if (this.SelectedItems.size === 0)
|
|
1284
1592
|
return;
|
|
1285
|
-
const count = this.
|
|
1593
|
+
const count = this.SelectedItems.size;
|
|
1286
1594
|
const confirmMessage = `Remove ${count} item${count > 1 ? 's' : ''} from this list?`;
|
|
1287
1595
|
if (!(await this.confirmService.ConfirmDelete({ message: confirmMessage })))
|
|
1288
1596
|
return;
|
|
@@ -1295,8 +1603,8 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1295
1603
|
const tg = await this.metadata.CreateTransactionGroup();
|
|
1296
1604
|
let queued = 0;
|
|
1297
1605
|
let failedToQueue = 0;
|
|
1298
|
-
for (const id of this.
|
|
1299
|
-
const item = this.
|
|
1606
|
+
for (const id of this.SelectedItems) {
|
|
1607
|
+
const item = this.ListItems.find(i => UUIDsEqual(i.detail.ID, id));
|
|
1300
1608
|
if (item) {
|
|
1301
1609
|
item.detail.TransactionGroup = tg;
|
|
1302
1610
|
// With a TransactionGroup set, Delete() returns true once
|
|
@@ -1322,9 +1630,9 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1322
1630
|
else {
|
|
1323
1631
|
this.showNotification(`Removed ${count} item${count > 1 ? 's' : ''} from list`, 'success', 3000);
|
|
1324
1632
|
}
|
|
1325
|
-
this.
|
|
1633
|
+
this.SelectedItems.clear();
|
|
1326
1634
|
await this.loadStats();
|
|
1327
|
-
await this.loadItems(Math.min(this.
|
|
1635
|
+
await this.loadItems(Math.min(this.ItemsPage, this.TotalPages - 1));
|
|
1328
1636
|
this.updateNavBadges();
|
|
1329
1637
|
}
|
|
1330
1638
|
catch (error) {
|
|
@@ -1332,7 +1640,11 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1332
1640
|
this.showNotification('Error removing items from list', 'error', 4000);
|
|
1333
1641
|
}
|
|
1334
1642
|
}
|
|
1335
|
-
|
|
1643
|
+
/** @deprecated Use {@link RemoveSelectedItems}. */
|
|
1644
|
+
async removeSelectedItems() {
|
|
1645
|
+
return this.RemoveSelectedItems();
|
|
1646
|
+
}
|
|
1647
|
+
OpenRecord(item) {
|
|
1336
1648
|
if (!this.entityInfo || !item.detail.RecordID)
|
|
1337
1649
|
return;
|
|
1338
1650
|
// ListDetail.RecordID is the compact CompositeKey segment: the raw value for a single-column
|
|
@@ -1340,18 +1652,26 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1340
1652
|
// reads both against this list's entity metadata — `FromID` assumed the column was `ID`.
|
|
1341
1653
|
SharedService.Instance.OpenEntityRecord(this.entityInfo.Name, CompositeKey.FromURLSegment(this.entityInfo, item.detail.RecordID));
|
|
1342
1654
|
}
|
|
1655
|
+
/** @deprecated Use {@link OpenRecord}. */
|
|
1656
|
+
openRecord(item) {
|
|
1657
|
+
return this.OpenRecord(item);
|
|
1658
|
+
}
|
|
1343
1659
|
// === Inline Editing ===
|
|
1344
|
-
|
|
1345
|
-
this.
|
|
1346
|
-
this.
|
|
1660
|
+
StartEditingName() {
|
|
1661
|
+
this.EditingName = this.record.Name;
|
|
1662
|
+
this.IsEditingName = true;
|
|
1347
1663
|
this.cdr.detectChanges();
|
|
1348
1664
|
}
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1665
|
+
/** @deprecated Use {@link StartEditingName}. */
|
|
1666
|
+
startEditingName() {
|
|
1667
|
+
return this.StartEditingName();
|
|
1668
|
+
}
|
|
1669
|
+
async SaveNameEdit() {
|
|
1670
|
+
if (!this.EditingName.trim()) {
|
|
1671
|
+
this.CancelNameEdit();
|
|
1352
1672
|
return;
|
|
1353
1673
|
}
|
|
1354
|
-
this.record.Name = this.
|
|
1674
|
+
this.record.Name = this.EditingName.trim();
|
|
1355
1675
|
const saved = await this.record.Save();
|
|
1356
1676
|
if (saved) {
|
|
1357
1677
|
this.showNotification('Name updated', 'success', 2000);
|
|
@@ -1359,20 +1679,32 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1359
1679
|
else {
|
|
1360
1680
|
this.showNotification('Failed to update name', 'error', 3000);
|
|
1361
1681
|
}
|
|
1362
|
-
this.
|
|
1682
|
+
this.IsEditingName = false;
|
|
1683
|
+
this.cdr.detectChanges();
|
|
1684
|
+
}
|
|
1685
|
+
/** @deprecated Use {@link SaveNameEdit}. */
|
|
1686
|
+
async saveNameEdit() {
|
|
1687
|
+
return this.SaveNameEdit();
|
|
1688
|
+
}
|
|
1689
|
+
CancelNameEdit() {
|
|
1690
|
+
this.IsEditingName = false;
|
|
1363
1691
|
this.cdr.detectChanges();
|
|
1364
1692
|
}
|
|
1693
|
+
/** @deprecated Use {@link CancelNameEdit}. */
|
|
1365
1694
|
cancelNameEdit() {
|
|
1366
|
-
this.
|
|
1695
|
+
return this.CancelNameEdit();
|
|
1696
|
+
}
|
|
1697
|
+
StartEditingDescription() {
|
|
1698
|
+
this.EditingDescription = this.record.Description || '';
|
|
1699
|
+
this.IsEditingDescription = true;
|
|
1367
1700
|
this.cdr.detectChanges();
|
|
1368
1701
|
}
|
|
1702
|
+
/** @deprecated Use {@link StartEditingDescription}. */
|
|
1369
1703
|
startEditingDescription() {
|
|
1370
|
-
|
|
1371
|
-
this.isEditingDescription = true;
|
|
1372
|
-
this.cdr.detectChanges();
|
|
1704
|
+
return this.StartEditingDescription();
|
|
1373
1705
|
}
|
|
1374
|
-
async
|
|
1375
|
-
this.record.Description = this.
|
|
1706
|
+
async SaveDescriptionEdit() {
|
|
1707
|
+
this.record.Description = this.EditingDescription.trim() || null;
|
|
1376
1708
|
const saved = await this.record.Save();
|
|
1377
1709
|
if (saved) {
|
|
1378
1710
|
this.showNotification('Description updated', 'success', 2000);
|
|
@@ -1380,33 +1712,57 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1380
1712
|
else {
|
|
1381
1713
|
this.showNotification('Failed to update description', 'error', 3000);
|
|
1382
1714
|
}
|
|
1383
|
-
this.
|
|
1715
|
+
this.IsEditingDescription = false;
|
|
1384
1716
|
this.cdr.detectChanges();
|
|
1385
1717
|
}
|
|
1386
|
-
|
|
1387
|
-
|
|
1718
|
+
/** @deprecated Use {@link SaveDescriptionEdit}. */
|
|
1719
|
+
async saveDescriptionEdit() {
|
|
1720
|
+
return this.SaveDescriptionEdit();
|
|
1721
|
+
}
|
|
1722
|
+
CancelDescriptionEdit() {
|
|
1723
|
+
this.IsEditingDescription = false;
|
|
1388
1724
|
this.cdr.detectChanges();
|
|
1389
1725
|
}
|
|
1726
|
+
/** @deprecated Use {@link CancelDescriptionEdit}. */
|
|
1727
|
+
cancelDescriptionEdit() {
|
|
1728
|
+
return this.CancelDescriptionEdit();
|
|
1729
|
+
}
|
|
1390
1730
|
// === Helpers ===
|
|
1391
|
-
get
|
|
1731
|
+
get EntityDisplayName() {
|
|
1392
1732
|
return this.entityInfo?.DisplayName || this.entityInfo?.Name || this.record?.Entity || 'Unknown';
|
|
1393
1733
|
}
|
|
1394
|
-
|
|
1734
|
+
/** @deprecated Use {@link EntityDisplayName}. */
|
|
1735
|
+
get entityDisplayName() {
|
|
1736
|
+
return this.EntityDisplayName;
|
|
1737
|
+
}
|
|
1738
|
+
get EntityIcon() {
|
|
1395
1739
|
return this.entityInfo?.Icon || 'fa-solid fa-table';
|
|
1396
1740
|
}
|
|
1397
|
-
|
|
1741
|
+
/** @deprecated Use {@link EntityIcon}. */
|
|
1742
|
+
get entityIcon() {
|
|
1743
|
+
return this.EntityIcon;
|
|
1744
|
+
}
|
|
1745
|
+
get CategoryName() {
|
|
1398
1746
|
if (!this.record?.CategoryID)
|
|
1399
1747
|
return 'Uncategorized';
|
|
1400
|
-
const category = this.
|
|
1748
|
+
const category = this.Categories.find(c => UUIDsEqual(c.ID, this.record.CategoryID));
|
|
1401
1749
|
return category?.Name || 'Unknown';
|
|
1402
1750
|
}
|
|
1751
|
+
/** @deprecated Use {@link CategoryName}. */
|
|
1752
|
+
get categoryName() {
|
|
1753
|
+
return this.CategoryName;
|
|
1754
|
+
}
|
|
1755
|
+
get FormattedItemCount() {
|
|
1756
|
+
return this.Stats.itemCount.toLocaleString();
|
|
1757
|
+
}
|
|
1758
|
+
/** @deprecated Use {@link FormattedItemCount}. */
|
|
1403
1759
|
get formattedItemCount() {
|
|
1404
|
-
return this.
|
|
1760
|
+
return this.FormattedItemCount;
|
|
1405
1761
|
}
|
|
1406
|
-
get
|
|
1407
|
-
if (!this.
|
|
1762
|
+
get FormattedLastUpdated() {
|
|
1763
|
+
if (!this.Stats.lastUpdated)
|
|
1408
1764
|
return 'Never';
|
|
1409
|
-
const date = new Date(this.
|
|
1765
|
+
const date = new Date(this.Stats.lastUpdated);
|
|
1410
1766
|
const now = new Date();
|
|
1411
1767
|
const diffMs = now.getTime() - date.getTime();
|
|
1412
1768
|
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
@@ -1418,13 +1774,25 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1418
1774
|
return `${diffDays} days ago`;
|
|
1419
1775
|
return date.toLocaleDateString();
|
|
1420
1776
|
}
|
|
1421
|
-
|
|
1777
|
+
/** @deprecated Use {@link FormattedLastUpdated}. */
|
|
1778
|
+
get formattedLastUpdated() {
|
|
1779
|
+
return this.FormattedLastUpdated;
|
|
1780
|
+
}
|
|
1781
|
+
GetOwnerName() {
|
|
1422
1782
|
return this.record?.User || 'Unknown';
|
|
1423
1783
|
}
|
|
1424
|
-
|
|
1784
|
+
/** @deprecated Use {@link GetOwnerName}. */
|
|
1785
|
+
getOwnerName() {
|
|
1786
|
+
return this.GetOwnerName();
|
|
1787
|
+
}
|
|
1788
|
+
IsCurrentUserOwner() {
|
|
1425
1789
|
return UUIDsEqual(this.record?.UserID, this.metadata.CurrentUser?.ID);
|
|
1426
1790
|
}
|
|
1427
|
-
|
|
1791
|
+
/** @deprecated Use {@link IsCurrentUserOwner}. */
|
|
1792
|
+
isCurrentUserOwner() {
|
|
1793
|
+
return this.IsCurrentUserOwner();
|
|
1794
|
+
}
|
|
1795
|
+
async OnCategoryChange(categoryId) {
|
|
1428
1796
|
this.record.CategoryID = categoryId;
|
|
1429
1797
|
const saved = await this.record.Save();
|
|
1430
1798
|
if (saved) {
|
|
@@ -1435,35 +1803,51 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1435
1803
|
}
|
|
1436
1804
|
this.cdr.detectChanges();
|
|
1437
1805
|
}
|
|
1438
|
-
|
|
1806
|
+
/** @deprecated Use {@link OnCategoryChange}. */
|
|
1807
|
+
async onCategoryChange(categoryId) {
|
|
1808
|
+
return this.OnCategoryChange(categoryId);
|
|
1809
|
+
}
|
|
1810
|
+
async RefreshItems() {
|
|
1439
1811
|
await this.loadStats();
|
|
1440
|
-
await this.loadItems(Math.min(this.
|
|
1812
|
+
await this.loadItems(Math.min(this.ItemsPage, this.TotalPages - 1));
|
|
1441
1813
|
this.updateNavBadges();
|
|
1442
1814
|
}
|
|
1815
|
+
/** @deprecated Use {@link RefreshItems}. */
|
|
1816
|
+
async refreshItems() {
|
|
1817
|
+
return this.RefreshItems();
|
|
1818
|
+
}
|
|
1443
1819
|
// ==========================================
|
|
1444
1820
|
// Add Records Dialog
|
|
1445
1821
|
// ==========================================
|
|
1446
|
-
async
|
|
1447
|
-
this.
|
|
1448
|
-
this.
|
|
1449
|
-
this.
|
|
1450
|
-
this.
|
|
1451
|
-
this.
|
|
1822
|
+
async OpenAddRecordsDialog() {
|
|
1823
|
+
this.ShowAddRecordsDialog = true;
|
|
1824
|
+
this.AddableRecords = [];
|
|
1825
|
+
this.AddRecordsSearchFilter = '';
|
|
1826
|
+
this.AddDialogLoading = true;
|
|
1827
|
+
this.AddDialogSaving = false;
|
|
1452
1828
|
// Load existing list detail IDs to mark which records are already in the list
|
|
1453
1829
|
await this.loadExistingListDetailIds();
|
|
1454
|
-
this.
|
|
1830
|
+
this.AddDialogLoading = false;
|
|
1455
1831
|
this.cdr.detectChanges();
|
|
1456
1832
|
}
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
this.
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
this.
|
|
1463
|
-
this.
|
|
1464
|
-
this.
|
|
1833
|
+
/** @deprecated Use {@link OpenAddRecordsDialog}. */
|
|
1834
|
+
async openAddRecordsDialog() {
|
|
1835
|
+
return this.OpenAddRecordsDialog();
|
|
1836
|
+
}
|
|
1837
|
+
CloseAddRecordsDialog() {
|
|
1838
|
+
this.ShowAddRecordsDialog = false;
|
|
1839
|
+
this.AddableRecords = [];
|
|
1840
|
+
this.AddRecordsSearchFilter = '';
|
|
1841
|
+
this.ExistingListDetailIds.clear();
|
|
1842
|
+
this.AddDialogSaving = false;
|
|
1843
|
+
this.AddProgress = 0;
|
|
1844
|
+
this.AddTotal = 0;
|
|
1465
1845
|
this.cdr.detectChanges();
|
|
1466
1846
|
}
|
|
1847
|
+
/** @deprecated Use {@link CloseAddRecordsDialog}. */
|
|
1848
|
+
closeAddRecordsDialog() {
|
|
1849
|
+
return this.CloseAddRecordsDialog();
|
|
1850
|
+
}
|
|
1467
1851
|
async loadExistingListDetailIds() {
|
|
1468
1852
|
if (!this.record)
|
|
1469
1853
|
return;
|
|
@@ -1475,24 +1859,28 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1475
1859
|
ResultType: 'simple'
|
|
1476
1860
|
}, this.metadata.CurrentUser);
|
|
1477
1861
|
if (result.Success) {
|
|
1478
|
-
this.
|
|
1862
|
+
this.ExistingListDetailIds = new Set(result.Results.map(r => NormalizeUUID(r.RecordID)));
|
|
1479
1863
|
}
|
|
1480
1864
|
}
|
|
1481
|
-
|
|
1482
|
-
this.
|
|
1865
|
+
OnAddRecordsSearchChange(value) {
|
|
1866
|
+
this.AddRecordsSearchFilter = value;
|
|
1483
1867
|
this.searchSubject.next(value);
|
|
1484
1868
|
}
|
|
1869
|
+
/** @deprecated Use {@link OnAddRecordsSearchChange}. */
|
|
1870
|
+
onAddRecordsSearchChange(value) {
|
|
1871
|
+
return this.OnAddRecordsSearchChange(value);
|
|
1872
|
+
}
|
|
1485
1873
|
async searchRecords(searchText) {
|
|
1486
1874
|
if (!this.record || !searchText || searchText.length < 2) {
|
|
1487
|
-
this.
|
|
1875
|
+
this.AddableRecords = [];
|
|
1488
1876
|
this.cdr.detectChanges();
|
|
1489
1877
|
return;
|
|
1490
1878
|
}
|
|
1491
|
-
this.
|
|
1879
|
+
this.AddDialogLoading = true;
|
|
1492
1880
|
this.cdr.detectChanges();
|
|
1493
1881
|
const sourceEntityInfo = this.metadata.EntityByID(this.record.EntityID);
|
|
1494
1882
|
if (!sourceEntityInfo) {
|
|
1495
|
-
this.
|
|
1883
|
+
this.AddDialogLoading = false;
|
|
1496
1884
|
this.cdr.detectChanges();
|
|
1497
1885
|
return;
|
|
1498
1886
|
}
|
|
@@ -1512,7 +1900,7 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1512
1900
|
ResultType: 'simple'
|
|
1513
1901
|
});
|
|
1514
1902
|
if (result.Success) {
|
|
1515
|
-
this.
|
|
1903
|
+
this.AddableRecords = result.Results.map((record) => {
|
|
1516
1904
|
// Compact key segment (raw value, or "F1|v1||F2|v2" for a composite key) — the form ListDetail.RecordID stores
|
|
1517
1905
|
const recordId = CompositeKey.FromEntityRecord(sourceEntityInfo, record).ToCompactURLSegment();
|
|
1518
1906
|
return {
|
|
@@ -1520,41 +1908,57 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1520
1908
|
Name: displayField.Field
|
|
1521
1909
|
? FormatRecordDisplayValue(recordId, record[displayField.Field.Name], displayField)
|
|
1522
1910
|
: recordId,
|
|
1523
|
-
isInList: this.
|
|
1911
|
+
isInList: this.ExistingListDetailIds.has(NormalizeUUID(recordId)),
|
|
1524
1912
|
isSelected: false
|
|
1525
1913
|
};
|
|
1526
1914
|
});
|
|
1527
1915
|
}
|
|
1528
|
-
this.
|
|
1916
|
+
this.AddDialogLoading = false;
|
|
1529
1917
|
this.cdr.detectChanges();
|
|
1530
1918
|
}
|
|
1531
|
-
|
|
1919
|
+
ToggleRecordSelection(record) {
|
|
1532
1920
|
if (record.isInList)
|
|
1533
1921
|
return; // Can't select records already in list
|
|
1534
1922
|
record.isSelected = !record.isSelected;
|
|
1535
1923
|
this.cdr.detectChanges();
|
|
1536
1924
|
}
|
|
1925
|
+
/** @deprecated Use {@link ToggleRecordSelection}. */
|
|
1926
|
+
toggleRecordSelection(record) {
|
|
1927
|
+
return this.ToggleRecordSelection(record);
|
|
1928
|
+
}
|
|
1929
|
+
get SelectedAddableRecords() {
|
|
1930
|
+
return this.AddableRecords.filter(r => r.isSelected);
|
|
1931
|
+
}
|
|
1932
|
+
/** @deprecated Use {@link SelectedAddableRecords}. */
|
|
1537
1933
|
get selectedAddableRecords() {
|
|
1538
|
-
return this.
|
|
1934
|
+
return this.SelectedAddableRecords;
|
|
1539
1935
|
}
|
|
1540
|
-
|
|
1541
|
-
this.
|
|
1936
|
+
SelectAllAddable() {
|
|
1937
|
+
this.AddableRecords.forEach(r => {
|
|
1542
1938
|
if (!r.isInList)
|
|
1543
1939
|
r.isSelected = true;
|
|
1544
1940
|
});
|
|
1545
1941
|
this.cdr.detectChanges();
|
|
1546
1942
|
}
|
|
1547
|
-
|
|
1548
|
-
|
|
1943
|
+
/** @deprecated Use {@link SelectAllAddable}. */
|
|
1944
|
+
selectAllAddable() {
|
|
1945
|
+
return this.SelectAllAddable();
|
|
1946
|
+
}
|
|
1947
|
+
DeselectAllAddable() {
|
|
1948
|
+
this.AddableRecords.forEach(r => r.isSelected = false);
|
|
1549
1949
|
this.cdr.detectChanges();
|
|
1550
1950
|
}
|
|
1551
|
-
|
|
1552
|
-
|
|
1951
|
+
/** @deprecated Use {@link DeselectAllAddable}. */
|
|
1952
|
+
deselectAllAddable() {
|
|
1953
|
+
return this.DeselectAllAddable();
|
|
1954
|
+
}
|
|
1955
|
+
async ConfirmAddRecords() {
|
|
1956
|
+
const recordsToAdd = this.SelectedAddableRecords;
|
|
1553
1957
|
if (recordsToAdd.length === 0 || !this.record)
|
|
1554
1958
|
return;
|
|
1555
|
-
this.
|
|
1556
|
-
this.
|
|
1557
|
-
this.
|
|
1959
|
+
this.AddDialogSaving = true;
|
|
1960
|
+
this.AddTotal = recordsToAdd.length;
|
|
1961
|
+
this.AddProgress = 0;
|
|
1558
1962
|
this.cdr.detectChanges();
|
|
1559
1963
|
// Use transaction group for bulk insert
|
|
1560
1964
|
const tg = await this.metadata.CreateTransactionGroup();
|
|
@@ -1567,43 +1971,55 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1567
1971
|
}
|
|
1568
1972
|
const success = await tg.Submit();
|
|
1569
1973
|
if (success) {
|
|
1570
|
-
this.
|
|
1974
|
+
this.AddProgress = this.AddTotal;
|
|
1571
1975
|
this.showNotification(`Added ${recordsToAdd.length} record${recordsToAdd.length !== 1 ? 's' : ''} to list`, 'success', 2500);
|
|
1572
|
-
this.
|
|
1573
|
-
await this.
|
|
1976
|
+
this.CloseAddRecordsDialog();
|
|
1977
|
+
await this.RefreshItems();
|
|
1574
1978
|
}
|
|
1575
1979
|
else {
|
|
1576
1980
|
LogError('Error adding records to list');
|
|
1577
1981
|
this.showNotification('Failed to add some records', 'error', 2500);
|
|
1578
|
-
this.
|
|
1982
|
+
this.AddDialogSaving = false;
|
|
1579
1983
|
this.cdr.detectChanges();
|
|
1580
1984
|
}
|
|
1581
1985
|
}
|
|
1986
|
+
/** @deprecated Use {@link ConfirmAddRecords}. */
|
|
1987
|
+
async confirmAddRecords() {
|
|
1988
|
+
return this.ConfirmAddRecords();
|
|
1989
|
+
}
|
|
1582
1990
|
// ==========================================
|
|
1583
1991
|
// Add From View Dialog
|
|
1584
1992
|
// ==========================================
|
|
1585
|
-
async
|
|
1586
|
-
this.
|
|
1587
|
-
this.
|
|
1993
|
+
async OpenAddFromViewDialog() {
|
|
1994
|
+
this.ShowAddFromViewDialog = true;
|
|
1995
|
+
this.UserViewsToAdd = [];
|
|
1588
1996
|
this.userViewsToAddIds.clear();
|
|
1589
1997
|
this.cdr.detectChanges();
|
|
1590
|
-
if (!this.
|
|
1998
|
+
if (!this.UserViews) {
|
|
1591
1999
|
await this.loadEntityViews();
|
|
1592
2000
|
}
|
|
1593
2001
|
}
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
this.
|
|
2002
|
+
/** @deprecated Use {@link OpenAddFromViewDialog}. */
|
|
2003
|
+
async openAddFromViewDialog() {
|
|
2004
|
+
return this.OpenAddFromViewDialog();
|
|
2005
|
+
}
|
|
2006
|
+
CloseAddFromViewDialog() {
|
|
2007
|
+
this.ShowAddFromViewDialog = false;
|
|
2008
|
+
this.UserViewsToAdd = [];
|
|
1597
2009
|
this.userViewsToAddIds.clear();
|
|
1598
|
-
this.
|
|
1599
|
-
this.
|
|
1600
|
-
this.
|
|
2010
|
+
this.ShowAddFromViewLoader = false;
|
|
2011
|
+
this.AddFromViewProgress = 0;
|
|
2012
|
+
this.AddFromViewTotal = 0;
|
|
1601
2013
|
this.cdr.detectChanges();
|
|
1602
2014
|
}
|
|
2015
|
+
/** @deprecated Use {@link CloseAddFromViewDialog}. */
|
|
2016
|
+
closeAddFromViewDialog() {
|
|
2017
|
+
return this.CloseAddFromViewDialog();
|
|
2018
|
+
}
|
|
1603
2019
|
async loadEntityViews() {
|
|
1604
2020
|
if (!this.record || !this.record.Entity)
|
|
1605
2021
|
return;
|
|
1606
|
-
this.
|
|
2022
|
+
this.ShowAddFromViewLoader = true;
|
|
1607
2023
|
this.cdr.detectChanges();
|
|
1608
2024
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
1609
2025
|
const runViewResult = await rv.RunView({
|
|
@@ -1615,36 +2031,44 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1615
2031
|
LogError(`Error loading User Views for entity ${this.record.Entity}`);
|
|
1616
2032
|
}
|
|
1617
2033
|
else {
|
|
1618
|
-
this.
|
|
2034
|
+
this.UserViews = runViewResult.Results;
|
|
1619
2035
|
}
|
|
1620
|
-
this.
|
|
2036
|
+
this.ShowAddFromViewLoader = false;
|
|
1621
2037
|
this.cdr.detectChanges();
|
|
1622
2038
|
}
|
|
1623
|
-
|
|
1624
|
-
const index = this.
|
|
2039
|
+
ToggleViewSelection(view) {
|
|
2040
|
+
const index = this.UserViewsToAdd.findIndex(v => UUIDsEqual(v.ID, view.ID));
|
|
1625
2041
|
if (index >= 0) {
|
|
1626
|
-
this.
|
|
2042
|
+
this.UserViewsToAdd.splice(index, 1);
|
|
1627
2043
|
this.userViewsToAddIds.delete(NormalizeUUID(view.ID));
|
|
1628
2044
|
}
|
|
1629
2045
|
else {
|
|
1630
|
-
this.
|
|
2046
|
+
this.UserViewsToAdd.push(view);
|
|
1631
2047
|
this.userViewsToAddIds.add(NormalizeUUID(view.ID));
|
|
1632
2048
|
}
|
|
1633
2049
|
this.cdr.detectChanges();
|
|
1634
2050
|
}
|
|
1635
|
-
|
|
2051
|
+
/** @deprecated Use {@link ToggleViewSelection}. */
|
|
2052
|
+
toggleViewSelection(view) {
|
|
2053
|
+
return this.ToggleViewSelection(view);
|
|
2054
|
+
}
|
|
2055
|
+
IsViewSelected(view) {
|
|
1636
2056
|
return this.userViewsToAddIds.has(NormalizeUUID(view.ID));
|
|
1637
2057
|
}
|
|
1638
|
-
|
|
1639
|
-
|
|
2058
|
+
/** @deprecated Use {@link IsViewSelected}. */
|
|
2059
|
+
isViewSelected(view) {
|
|
2060
|
+
return this.IsViewSelected(view);
|
|
2061
|
+
}
|
|
2062
|
+
async ConfirmAddFromView() {
|
|
2063
|
+
if (!this.record || this.UserViewsToAdd.length === 0)
|
|
1640
2064
|
return;
|
|
1641
|
-
this.
|
|
1642
|
-
this.
|
|
2065
|
+
this.ShowAddFromViewLoader = true;
|
|
2066
|
+
this.FetchingRecordsToSave = true;
|
|
1643
2067
|
this.cdr.detectChanges();
|
|
1644
2068
|
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
1645
2069
|
// Collect all unique record IDs from selected views
|
|
1646
2070
|
const recordIdSet = new Set();
|
|
1647
|
-
for (const userView of this.
|
|
2071
|
+
for (const userView of this.UserViewsToAdd) {
|
|
1648
2072
|
const runViewResult = await rv.RunView({
|
|
1649
2073
|
ViewID: userView.ID,
|
|
1650
2074
|
ViewEntity: userView,
|
|
@@ -1657,14 +2081,14 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1657
2081
|
}
|
|
1658
2082
|
// Filter out records already in the list
|
|
1659
2083
|
await this.loadExistingListDetailIds();
|
|
1660
|
-
const recordsToAdd = [...recordIdSet].filter(id => !this.
|
|
1661
|
-
this.
|
|
1662
|
-
this.
|
|
1663
|
-
this.
|
|
2084
|
+
const recordsToAdd = [...recordIdSet].filter(id => !this.ExistingListDetailIds.has(id));
|
|
2085
|
+
this.AddFromViewTotal = recordsToAdd.length;
|
|
2086
|
+
this.AddFromViewProgress = 0;
|
|
2087
|
+
this.FetchingRecordsToSave = false;
|
|
1664
2088
|
this.cdr.detectChanges();
|
|
1665
2089
|
if (recordsToAdd.length === 0) {
|
|
1666
2090
|
this.showNotification('All records already in list', 'info', 2500);
|
|
1667
|
-
this.
|
|
2091
|
+
this.ShowAddFromViewLoader = false;
|
|
1668
2092
|
this.cdr.detectChanges();
|
|
1669
2093
|
return;
|
|
1670
2094
|
}
|
|
@@ -1680,36 +2104,44 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1680
2104
|
}
|
|
1681
2105
|
const success = await tg.Submit();
|
|
1682
2106
|
if (success) {
|
|
1683
|
-
this.
|
|
2107
|
+
this.AddFromViewProgress = this.AddFromViewTotal;
|
|
1684
2108
|
this.showNotification(`Added ${recordsToAdd.length} record${recordsToAdd.length !== 1 ? 's' : ''} to list`, 'success', 2500);
|
|
1685
|
-
this.
|
|
1686
|
-
await this.
|
|
2109
|
+
this.CloseAddFromViewDialog();
|
|
2110
|
+
await this.RefreshItems();
|
|
1687
2111
|
}
|
|
1688
2112
|
else {
|
|
1689
2113
|
LogError('Error adding records from view to list');
|
|
1690
2114
|
this.showNotification('Failed to add some records', 'error', 2500);
|
|
1691
|
-
this.
|
|
2115
|
+
this.ShowAddFromViewLoader = false;
|
|
1692
2116
|
this.cdr.detectChanges();
|
|
1693
2117
|
}
|
|
1694
2118
|
}
|
|
2119
|
+
/** @deprecated Use {@link ConfirmAddFromView}. */
|
|
2120
|
+
async confirmAddFromView() {
|
|
2121
|
+
return this.ConfirmAddFromView();
|
|
2122
|
+
}
|
|
1695
2123
|
// ==========================================
|
|
1696
2124
|
// Share Dialog
|
|
1697
2125
|
// ==========================================
|
|
1698
|
-
|
|
2126
|
+
OpenShareDialog() {
|
|
1699
2127
|
if (!this.record?.IsSaved)
|
|
1700
2128
|
return;
|
|
1701
|
-
this.
|
|
2129
|
+
this.ShareDialogConfig = {
|
|
1702
2130
|
listId: this.record.ID,
|
|
1703
2131
|
listName: this.record.Name,
|
|
1704
2132
|
currentUserId: this.metadata.CurrentUser.ID,
|
|
1705
|
-
isOwner: this.
|
|
2133
|
+
isOwner: this.IsCurrentUserOwner()
|
|
1706
2134
|
};
|
|
1707
|
-
this.
|
|
2135
|
+
this.ShowShareDialog = true;
|
|
1708
2136
|
this.cdr.detectChanges();
|
|
1709
2137
|
}
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
this.
|
|
2138
|
+
/** @deprecated Use {@link OpenShareDialog}. */
|
|
2139
|
+
openShareDialog() {
|
|
2140
|
+
return this.OpenShareDialog();
|
|
2141
|
+
}
|
|
2142
|
+
OnShareDialogComplete(result) {
|
|
2143
|
+
this.ShowShareDialog = false;
|
|
2144
|
+
this.ShareDialogConfig = null;
|
|
1713
2145
|
if (result.action === 'apply') {
|
|
1714
2146
|
// Refresh stats to update share counts
|
|
1715
2147
|
this.loadStats().then(() => {
|
|
@@ -1719,34 +2151,58 @@ let MJListFormComponentExtended = class MJListFormComponentExtended extends MJLi
|
|
|
1719
2151
|
}
|
|
1720
2152
|
this.cdr.detectChanges();
|
|
1721
2153
|
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
this.
|
|
2154
|
+
/** @deprecated Use {@link OnShareDialogComplete}. */
|
|
2155
|
+
onShareDialogComplete(result) {
|
|
2156
|
+
return this.OnShareDialogComplete(result);
|
|
2157
|
+
}
|
|
2158
|
+
OnShareDialogCancel() {
|
|
2159
|
+
this.ShowShareDialog = false;
|
|
2160
|
+
this.ShareDialogConfig = null;
|
|
1725
2161
|
this.cdr.detectChanges();
|
|
1726
2162
|
}
|
|
2163
|
+
/** @deprecated Use {@link OnShareDialogCancel}. */
|
|
2164
|
+
onShareDialogCancel() {
|
|
2165
|
+
return this.OnShareDialogCancel();
|
|
2166
|
+
}
|
|
1727
2167
|
// ==========================================
|
|
1728
2168
|
// Invitations / Audit Log dialogs (mockups 16, 18)
|
|
1729
2169
|
// ==========================================
|
|
1730
|
-
|
|
2170
|
+
OpenInvitationsDialog() {
|
|
1731
2171
|
// Closing share dialog so it doesn't stack visually. User can
|
|
1732
2172
|
// reopen via toolbar; the share dialog isn't stateful enough to
|
|
1733
2173
|
// need preservation across this transition.
|
|
1734
|
-
this.
|
|
1735
|
-
this.
|
|
2174
|
+
this.ShowShareDialog = false;
|
|
2175
|
+
this.ShowInvitationsDialog = true;
|
|
1736
2176
|
this.cdr.detectChanges();
|
|
1737
2177
|
}
|
|
2178
|
+
/** @deprecated Use {@link OpenInvitationsDialog}. */
|
|
2179
|
+
openInvitationsDialog() {
|
|
2180
|
+
return this.OpenInvitationsDialog();
|
|
2181
|
+
}
|
|
2182
|
+
CloseInvitationsDialog() {
|
|
2183
|
+
this.ShowInvitationsDialog = false;
|
|
2184
|
+
this.cdr.detectChanges();
|
|
2185
|
+
}
|
|
2186
|
+
/** @deprecated Use {@link CloseInvitationsDialog}. */
|
|
1738
2187
|
closeInvitationsDialog() {
|
|
1739
|
-
this.
|
|
2188
|
+
return this.CloseInvitationsDialog();
|
|
2189
|
+
}
|
|
2190
|
+
OpenAuditLogDialog() {
|
|
2191
|
+
this.ShowShareDialog = false;
|
|
2192
|
+
this.ShowAuditLogDialog = true;
|
|
1740
2193
|
this.cdr.detectChanges();
|
|
1741
2194
|
}
|
|
2195
|
+
/** @deprecated Use {@link OpenAuditLogDialog}. */
|
|
1742
2196
|
openAuditLogDialog() {
|
|
1743
|
-
this.
|
|
1744
|
-
|
|
2197
|
+
return this.OpenAuditLogDialog();
|
|
2198
|
+
}
|
|
2199
|
+
CloseAuditLogDialog() {
|
|
2200
|
+
this.ShowAuditLogDialog = false;
|
|
1745
2201
|
this.cdr.detectChanges();
|
|
1746
2202
|
}
|
|
2203
|
+
/** @deprecated Use {@link CloseAuditLogDialog}. */
|
|
1747
2204
|
closeAuditLogDialog() {
|
|
1748
|
-
this.
|
|
1749
|
-
this.cdr.detectChanges();
|
|
2205
|
+
return this.CloseAuditLogDialog();
|
|
1750
2206
|
}
|
|
1751
2207
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJListFormComponentExtended_BaseFactory; return function MJListFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJListFormComponentExtended_BaseFactory || (ɵMJListFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJListFormComponentExtended)))(__ngFactoryType__ || MJListFormComponentExtended); }; })(); }
|
|
1752
2208
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJListFormComponentExtended, selectors: [["mj-list-form-extended"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 43, vars: 22, consts: [["nameInput", ""], [1, "list-form-explorer"], [1, "list-header"], [1, "header-content"], [1, "header-icon"], [1, "header-info"], [1, "name-row"], [1, "entity-badge"], [1, "header-stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "nav-rail"], [1, "nav-item", 3, "active", "disabled", "title"], [1, "main-content"], [1, "section", "overview-section"], [1, "section", "items-section"], [1, "section", "sharing-section"], [1, "section", "activity-section"], [1, "section", "settings-section"], [3, "Title", "Visible", "MinWidth", "Width", "Height"], ["Title", "Add Records from Views", 3, "Visible", "MinWidth", "Width", "Height"], [3, "config", "visible"], [3, "Visible", "Title", "MinWidth", "Width", "Height"], [1, "list-name"], ["title", "Edit name", 1, "edit-btn"], ["title", "Edit name", 1, "edit-btn", 3, "click"], [1, "fa-solid", "fa-pen"], ["type", "text", 1, "inline-edit-input", "name-input", 3, "ngModelChange", "keydown.enter", "keydown.escape", "ngModel"], [1, "save-btn", 3, "click"], [1, "fa-solid", "fa-check"], [1, "cancel-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "nav-item", 3, "click", "title"], [1, "nav-label"], [1, "nav-badge"], [1, "overview-grid"], [1, "overview-card", "description-card"], [1, "card-header"], [1, "fa-solid", "fa-align-left"], [1, "edit-btn"], [1, "card-body"], [1, "overview-card", "details-card"], [1, "fa-solid", "fa-info-circle"], [1, "detail-row"], [1, "detail-label"], [1, "detail-value"], [1, "detail-icon"], [1, "category-select", 3, "ngModel"], [1, "fa-solid", "fa-user", "detail-icon"], [1, "owner-badge"], [1, "fa-solid", "fa-calendar", "detail-icon"], [1, "overview-card", "actions-card"], [1, "fa-solid", "fa-bolt"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-list"], [1, "action-count"], [1, "action-btn"], ["title", "Coming soon", 1, "action-btn", 3, "disabled"], [1, "fa-solid", "fa-file-export"], [1, "coming-soon"], [1, "edit-btn", 3, "click"], [1, "description-text"], [1, "description-empty"], ["placeholder", "Add a description...", "rows", "3", 1, "inline-edit-input", "description-input", 3, "ngModelChange", "keydown.escape", "ngModel"], [1, "edit-actions"], [1, "btn-primary", 3, "click"], [1, "btn-secondary", 3, "click"], [1, "fa-solid", "fa-folder", "detail-icon"], [1, "category-select", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [1, "fa-solid", "fa-share-nodes"], [1, "section-header"], [1, "section-actions"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search this page...", 3, "ngModelChange", "ngModel"], [1, "add-buttons"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "loading-state"], ["Icon", "fa-solid fa-inbox", "Title", "No Items Yet", 3, "Message"], [1, "items-table-container"], ["title", "Add individual records", 1, "btn-secondary", 3, "click"], [1, "fa-solid", "fa-plus"], ["title", "Add records from a saved view", 1, "btn-secondary", 3, "click"], [1, "fa-solid", "fa-table-list"], ["text", "Loading items...", "size", "medium"], [1, "items-toolbar"], [1, "items-table"], [1, "col-checkbox"], ["type", "checkbox", 3, "change", "checked"], [1, "col-name"], [1, "col-id"], [1, "col-added"], [1, "col-actions"], [3, "selected"], [1, "items-footer"], [1, "items-count"], [1, "items-pager"], [1, "selection-count"], [1, "btn-danger", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "item-name"], [1, "item-icon"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "record-id"], ["title", "Open record", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["title", "Previous page", 1, "btn-icon", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-label"], ["title", "Next page", 1, "btn-icon", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-right"], [1, "sharing-summary"], ["Icon", "fa-solid fa-share-nodes", "Title", "Not Shared Yet", "ActionIcon", "fa-solid fa-user-plus", 3, "Message", "ActionText"], [1, "readonly-notice"], [1, "fa-solid", "fa-user-plus"], [1, "summary-card"], [1, "summary-icon"], [1, "fa-solid", "fa-users"], [1, "summary-content"], [1, "summary-value"], [1, "summary-label"], [1, "summary-icon", "pending"], [1, "fa-solid", "fa-envelope"], ["Icon", "fa-solid fa-share-nodes", "Title", "Not Shared Yet", "ActionIcon", "fa-solid fa-user-plus", 3, "Action", "Message", "ActionText"], [1, "activity-timeline"], [1, "timeline-item"], [1, "timeline-icon"], [1, "fa-solid", "fa-edit"], [1, "timeline-content"], [1, "timeline-text"], [1, "timeline-date"], [1, "timeline-icon", "create"], [1, "activity-info"], [1, "settings-form"], ["SectionKey", "listSettings", "SectionName", "List Settings", "Icon", "fa fa-cog", 3, "Form", "FormContext"], [1, "form-body"], ["FieldName", "Name", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "Description", "Type", "textarea", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "CategoryID", "Type", "textbox", "LinkType", "Record", "LinkComponentType", "Search", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["SectionKey", "systemInfo", "SectionName", "System Information", "Icon", "fa fa-info-circle", 3, "Form", "FormContext"], ["FieldName", "EntityID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "UserID", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_CreatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], ["FieldName", "__mj_UpdatedAt", "Type", "textbox", 3, "Record", "ShowLabel", "EditMode", "FormContext"], [3, "Close", "Title", "Visible", "MinWidth", "Width", "Height"], [1, "dialog-content", "add-records-dialog"], [1, "dialog-loading"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], ["mjButton", "", 3, "click", "disabled"], ["size", "small", 3, "text"], [1, "search-section"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", 1, "mj-input", "search-input", 3, "ngModelChange", "placeholder", "ngModel"], [1, "search-hint"], [1, "records-list"], [1, "list-loading"], ["Variant", "no-results", "Size", "compact", 3, "Title"], ["Size", "compact", "Icon", "fa-solid fa-list", "Title", "Search for records to add to this list"], ["size", "small", 3, "showText"], [1, "selection-controls"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "selection-info"], [1, "records-scroll"], [1, "record-item", 3, "in-list", "selected"], [1, "record-item", 3, "click"], [1, "record-checkbox"], ["title", "Already in list", 1, "fa-solid", "fa-check", "in-list-icon"], ["type", "checkbox", 3, "checked"], [1, "record-name"], [1, "in-list-badge"], ["type", "checkbox", 3, "click", "change", "checked"], ["Title", "Add Records from Views", 3, "Close", "Visible", "MinWidth", "Width", "Height"], [1, "dialog-content"], ["text", "Loading records from views...", "size", "small"], ["text", "Loading views...", "size", "small"], [1, "dialog-instruction"], [1, "views-list"], ["Size", "compact", "Icon", "fa-solid fa-folder-open", "Title", "No saved views found for this entity"], [1, "view-item", 3, "selected"], [1, "view-item", 3, "click"], [1, "fa-solid", "fa-table-list", "view-icon"], [1, "view-name"], [3, "complete", "cancel", "manageInvitations", "viewAuditLog", "config", "visible"], [3, "Close", "Visible", "Title", "MinWidth", "Width", "Height"], [1, "dialog-content", "invitations-dialog"], [3, "Provider", "ListID", "ListName"], ["mjButton", "", "variant", "outline", 3, "click"], [1, "dialog-content", "audit-log-dialog"], [3, "Provider", "ListID"]], template: function MJListFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|