@memberjunction/ng-dashboards 5.38.0 → 5.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared Record Drilldown Panel
|
|
3
|
+
*
|
|
4
|
+
* A single, reusable side panel that lists records behind a selection on the
|
|
5
|
+
* Knowledge Hub "Visualize" surface. It is driven entirely by inputs and emits
|
|
6
|
+
* record-open intents up to the host — it never imports NavigationService, so it
|
|
7
|
+
* stays a generic child that the KH resource host wires to navigation.
|
|
8
|
+
*
|
|
9
|
+
* Consumed by BOTH:
|
|
10
|
+
* - Cluster-point selection: the host passes a single record row.
|
|
11
|
+
* - Tag-cloud word selection: the host passes the records carrying that tag.
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from '@angular/core';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* A single record row shown in the drilldown panel. `EntityName` + `RecordID`
|
|
17
|
+
* are the open-intent payload; `Title`/`Subtitle`/`Weight` are display-only.
|
|
18
|
+
*/
|
|
19
|
+
export interface DrilldownRecord {
|
|
20
|
+
/** Entity the record belongs to (e.g. 'MJ: Content Items' or a business entity). */
|
|
21
|
+
EntityName: string;
|
|
22
|
+
/** Primary-key URL segment used to open the record. */
|
|
23
|
+
RecordID: string;
|
|
24
|
+
/** Primary display label. */
|
|
25
|
+
Title: string;
|
|
26
|
+
/** Optional secondary line (source, content type, etc.). */
|
|
27
|
+
Subtitle?: string;
|
|
28
|
+
/** Optional weight/relevance shown as a chip (0.0 - 1.0). */
|
|
29
|
+
Weight?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Emitted when the user asks to open one of the listed records. The host
|
|
33
|
+
* translates this into a NavigationService call.
|
|
34
|
+
*/
|
|
35
|
+
export interface DrilldownOpenRequest {
|
|
36
|
+
EntityName: string;
|
|
37
|
+
RecordID: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class RecordDrilldownComponent {
|
|
40
|
+
/** Panel heading (e.g. the tag text or the selected record's label). */
|
|
41
|
+
Title: string;
|
|
42
|
+
/** Optional sub-heading under the title (e.g. "12 records"). */
|
|
43
|
+
Subtitle: string;
|
|
44
|
+
/** Icon class shown next to the title. */
|
|
45
|
+
Icon: string;
|
|
46
|
+
/** Whether the panel is visible. */
|
|
47
|
+
Visible: boolean;
|
|
48
|
+
/** Whether records are currently loading. */
|
|
49
|
+
IsLoading: boolean;
|
|
50
|
+
/** The records to list. */
|
|
51
|
+
Records: DrilldownRecord[];
|
|
52
|
+
/** Emitted when the user closes the panel. */
|
|
53
|
+
Closed: EventEmitter<void>;
|
|
54
|
+
/** Emitted when the user clicks a record to open it. */
|
|
55
|
+
OpenRecord: EventEmitter<DrilldownOpenRequest>;
|
|
56
|
+
OnClose(): void;
|
|
57
|
+
OnOpen(record: DrilldownRecord): void;
|
|
58
|
+
TrackByRecord(_index: number, record: DrilldownRecord): string;
|
|
59
|
+
WeightPercent(weight: number | undefined): number;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RecordDrilldownComponent, never>;
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RecordDrilldownComponent, "app-kh-record-drilldown", never, { "Title": { "alias": "Title"; "required": false; }; "Subtitle": { "alias": "Subtitle"; "required": false; }; "Icon": { "alias": "Icon"; "required": false; }; "Visible": { "alias": "Visible"; "required": false; }; "IsLoading": { "alias": "IsLoading"; "required": false; }; "Records": { "alias": "Records"; "required": false; }; }, { "Closed": "Closed"; "OpenRecord": "OpenRecord"; }, never, never, false, never>;
|
|
62
|
+
}
|
|
63
|
+
/** Tree-shaking prevention */
|
|
64
|
+
export declare function LoadRecordDrilldownComponent(): void;
|
|
65
|
+
//# sourceMappingURL=record-drilldown.component.d.ts.map
|
package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-drilldown.component.d.ts","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;;AAEhG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAOa,wBAAwB;IACjC,wEAAwE;IAC/D,KAAK,SAAM;IACpB,gEAAgE;IACvD,QAAQ,SAAM;IACvB,0CAA0C;IACjC,IAAI,SAAsB;IACnC,oCAAoC;IAC3B,OAAO,UAAS;IACzB,6CAA6C;IACpC,SAAS,UAAS;IAC3B,2BAA2B;IAClB,OAAO,EAAE,eAAe,EAAE,CAAM;IAEzC,8CAA8C;IACpC,MAAM,qBAA4B;IAC5C,wDAAwD;IAC9C,UAAU,qCAA4C;IAEzD,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAOrC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM;IAI9D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;yCAlC/C,wBAAwB;2CAAxB,wBAAwB;CAwCpC;AAED,8BAA8B;AAC9B,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared Record Drilldown Panel
|
|
3
|
+
*
|
|
4
|
+
* A single, reusable side panel that lists records behind a selection on the
|
|
5
|
+
* Knowledge Hub "Visualize" surface. It is driven entirely by inputs and emits
|
|
6
|
+
* record-open intents up to the host — it never imports NavigationService, so it
|
|
7
|
+
* stays a generic child that the KH resource host wires to navigation.
|
|
8
|
+
*
|
|
9
|
+
* Consumed by BOTH:
|
|
10
|
+
* - Cluster-point selection: the host passes a single record row.
|
|
11
|
+
* - Tag-cloud word selection: the host passes the records carrying that tag.
|
|
12
|
+
*/
|
|
13
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@memberjunction/ng-shared-generic";
|
|
16
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
17
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "span", 5);
|
|
19
|
+
i0.ɵɵtext(1);
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
23
|
+
i0.ɵɵadvance();
|
|
24
|
+
i0.ɵɵtextInterpolate(ctx_r1.Subtitle);
|
|
25
|
+
} }
|
|
26
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelement(0, "mj-loading", 9);
|
|
28
|
+
} }
|
|
29
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
31
|
+
i0.ɵɵelement(1, "i", 11);
|
|
32
|
+
i0.ɵɵelementStart(2, "p");
|
|
33
|
+
i0.ɵɵtext(3, "No records found");
|
|
34
|
+
i0.ɵɵelementEnd()();
|
|
35
|
+
} }
|
|
36
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
38
|
+
i0.ɵɵtext(1);
|
|
39
|
+
i0.ɵɵelementEnd();
|
|
40
|
+
} if (rf & 2) {
|
|
41
|
+
const record_r4 = i0.ɵɵnextContext().$implicit;
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵtextInterpolate(record_r4.Subtitle);
|
|
44
|
+
} }
|
|
45
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵelementStart(0, "span", 17);
|
|
47
|
+
i0.ɵɵtext(1);
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
} if (rf & 2) {
|
|
50
|
+
const record_r4 = i0.ɵɵnextContext().$implicit;
|
|
51
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
52
|
+
i0.ɵɵadvance();
|
|
53
|
+
i0.ɵɵtextInterpolate1("", ctx_r1.WeightPercent(record_r4.Weight), "%");
|
|
54
|
+
} }
|
|
55
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
57
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
58
|
+
i0.ɵɵlistener("click", function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template_div_click_0_listener() { const record_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOpen(record_r4)); });
|
|
59
|
+
i0.ɵɵelementStart(1, "div", 14)(2, "span", 15);
|
|
60
|
+
i0.ɵɵtext(3);
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵconditionalCreate(4, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_4_Template, 2, 1, "span", 16);
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
64
|
+
i0.ɵɵconditionalCreate(5, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_5_Template, 2, 1, "span", 17);
|
|
65
|
+
i0.ɵɵelement(6, "i", 18);
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
const record_r4 = ctx.$implicit;
|
|
69
|
+
i0.ɵɵadvance(3);
|
|
70
|
+
i0.ɵɵtextInterpolate(record_r4.Title);
|
|
71
|
+
i0.ɵɵadvance();
|
|
72
|
+
i0.ɵɵconditional(record_r4.Subtitle ? 4 : -1);
|
|
73
|
+
i0.ɵɵadvance();
|
|
74
|
+
i0.ɵɵconditional(record_r4.Weight != null ? 5 : -1);
|
|
75
|
+
} }
|
|
76
|
+
function RecordDrilldownComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
+
i0.ɵɵrepeaterCreate(0, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template, 7, 3, "div", 12, i0.ɵɵcomponentInstance().TrackByRecord, true);
|
|
78
|
+
} if (rf & 2) {
|
|
79
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
80
|
+
i0.ɵɵrepeater(ctx_r1.Records);
|
|
81
|
+
} }
|
|
82
|
+
function RecordDrilldownComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
84
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
|
|
85
|
+
i0.ɵɵelement(3, "i");
|
|
86
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "span", 4);
|
|
87
|
+
i0.ɵɵtext(6);
|
|
88
|
+
i0.ɵɵelementEnd();
|
|
89
|
+
i0.ɵɵconditionalCreate(7, RecordDrilldownComponent_Conditional_0_Conditional_7_Template, 2, 1, "span", 5);
|
|
90
|
+
i0.ɵɵelementEnd()();
|
|
91
|
+
i0.ɵɵelementStart(8, "button", 6);
|
|
92
|
+
i0.ɵɵlistener("click", function RecordDrilldownComponent_Conditional_0_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
|
|
93
|
+
i0.ɵɵelement(9, "i", 7);
|
|
94
|
+
i0.ɵɵelementEnd()();
|
|
95
|
+
i0.ɵɵelementStart(10, "div", 8);
|
|
96
|
+
i0.ɵɵconditionalCreate(11, RecordDrilldownComponent_Conditional_0_Conditional_11_Template, 1, 0, "mj-loading", 9)(12, RecordDrilldownComponent_Conditional_0_Conditional_12_Template, 4, 0, "div", 10)(13, RecordDrilldownComponent_Conditional_0_Conditional_13_Template, 2, 0);
|
|
97
|
+
i0.ɵɵelementEnd()();
|
|
98
|
+
} if (rf & 2) {
|
|
99
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
100
|
+
i0.ɵɵadvance(3);
|
|
101
|
+
i0.ɵɵclassMap(ctx_r1.Icon);
|
|
102
|
+
i0.ɵɵadvance(3);
|
|
103
|
+
i0.ɵɵtextInterpolate(ctx_r1.Title);
|
|
104
|
+
i0.ɵɵadvance();
|
|
105
|
+
i0.ɵɵconditional(ctx_r1.Subtitle ? 7 : -1);
|
|
106
|
+
i0.ɵɵadvance(4);
|
|
107
|
+
i0.ɵɵconditional(ctx_r1.IsLoading ? 11 : ctx_r1.Records.length === 0 ? 12 : 13);
|
|
108
|
+
} }
|
|
109
|
+
export class RecordDrilldownComponent {
|
|
110
|
+
/** Panel heading (e.g. the tag text or the selected record's label). */
|
|
111
|
+
Title = '';
|
|
112
|
+
/** Optional sub-heading under the title (e.g. "12 records"). */
|
|
113
|
+
Subtitle = '';
|
|
114
|
+
/** Icon class shown next to the title. */
|
|
115
|
+
Icon = 'fa-solid fa-list';
|
|
116
|
+
/** Whether the panel is visible. */
|
|
117
|
+
Visible = false;
|
|
118
|
+
/** Whether records are currently loading. */
|
|
119
|
+
IsLoading = false;
|
|
120
|
+
/** The records to list. */
|
|
121
|
+
Records = [];
|
|
122
|
+
/** Emitted when the user closes the panel. */
|
|
123
|
+
Closed = new EventEmitter();
|
|
124
|
+
/** Emitted when the user clicks a record to open it. */
|
|
125
|
+
OpenRecord = new EventEmitter();
|
|
126
|
+
OnClose() {
|
|
127
|
+
this.Closed.emit();
|
|
128
|
+
}
|
|
129
|
+
OnOpen(record) {
|
|
130
|
+
if (!record.EntityName || !record.RecordID) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.OpenRecord.emit({ EntityName: record.EntityName, RecordID: record.RecordID });
|
|
134
|
+
}
|
|
135
|
+
TrackByRecord(_index, record) {
|
|
136
|
+
return `${record.EntityName}|${record.RecordID}`;
|
|
137
|
+
}
|
|
138
|
+
WeightPercent(weight) {
|
|
139
|
+
if (weight == null) {
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
return Math.round(Math.max(0, Math.min(1, weight)) * 100);
|
|
143
|
+
}
|
|
144
|
+
static ɵfac = function RecordDrilldownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RecordDrilldownComponent)(); };
|
|
145
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordDrilldownComponent, selectors: [["app-kh-record-drilldown"]], inputs: { Title: "Title", Subtitle: "Subtitle", Icon: "Icon", Visible: "Visible", IsLoading: "IsLoading", Records: "Records" }, outputs: { Closed: "Closed", OpenRecord: "OpenRecord" }, standalone: false, decls: 1, vars: 1, consts: [[1, "drilldown-panel"], [1, "drilldown-header"], [1, "drilldown-title"], [1, "drilldown-title-text"], [1, "drilldown-title-main"], [1, "drilldown-title-sub"], ["mjButton", "", "variant", "icon", "size", "sm", "title", "Close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "drilldown-body"], ["text", "Loading records..."], [1, "drilldown-empty"], [1, "fa-solid", "fa-inbox"], [1, "drilldown-item"], [1, "drilldown-item", 3, "click"], [1, "drilldown-item-main"], [1, "drilldown-item-title"], [1, "drilldown-item-subtitle"], [1, "drilldown-item-weight"], [1, "fa-solid", "fa-chevron-right", "drilldown-item-chevron"]], template: function RecordDrilldownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
+
i0.ɵɵconditionalCreate(0, RecordDrilldownComponent_Conditional_0_Template, 14, 5, "div", 0);
|
|
147
|
+
} if (rf & 2) {
|
|
148
|
+
i0.ɵɵconditional(ctx.Visible ? 0 : -1);
|
|
149
|
+
} }, dependencies: [i1.LoadingComponent, i2.MJButtonDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.drilldown-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 340px;\n max-width: 100%;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.drilldown-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.drilldown-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.drilldown-title[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n}\n\n.drilldown-title-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.drilldown-title-main[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-title-sub[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.drilldown-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.drilldown-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.drilldown-empty[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 28px;\n opacity: 0.6;\n}\n\n.drilldown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.drilldown-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.drilldown-item-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n\n.drilldown-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-weight[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-radius: 10px;\n padding: 2px 8px;\n flex-shrink: 0;\n}\n\n.drilldown-item-chevron[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 12px;\n flex-shrink: 0;\n}"], changeDetection: 0 });
|
|
150
|
+
}
|
|
151
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecordDrilldownComponent, [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{ selector: 'app-kh-record-drilldown', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Visible) {\n <div class=\"drilldown-panel\">\n <div class=\"drilldown-header\">\n <div class=\"drilldown-title\">\n <i [class]=\"Icon\"></i>\n <div class=\"drilldown-title-text\">\n <span class=\"drilldown-title-main\">{{ Title }}</span>\n @if (Subtitle) {\n <span class=\"drilldown-title-sub\">{{ Subtitle }}</span>\n }\n </div>\n </div>\n <button mjButton variant=\"icon\" size=\"sm\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"drilldown-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n } @else if (Records.length === 0) {\n <div class=\"drilldown-empty\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No records found</p>\n </div>\n } @else {\n @for (record of Records; track TrackByRecord($index, record)) {\n <div class=\"drilldown-item\" (click)=\"OnOpen(record)\">\n <div class=\"drilldown-item-main\">\n <span class=\"drilldown-item-title\">{{ record.Title }}</span>\n @if (record.Subtitle) {\n <span class=\"drilldown-item-subtitle\">{{ record.Subtitle }}</span>\n }\n </div>\n @if (record.Weight != null) {\n <span class=\"drilldown-item-weight\">{{ WeightPercent(record.Weight) }}%</span>\n }\n <i class=\"fa-solid fa-chevron-right drilldown-item-chevron\"></i>\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.drilldown-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 340px;\n max-width: 100%;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.drilldown-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.drilldown-title {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.drilldown-title > i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n}\n\n.drilldown-title-text {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.drilldown-title-main {\n font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-title-sub {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.drilldown-body {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.drilldown-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.drilldown-empty > i {\n font-size: 28px;\n opacity: 0.6;\n}\n\n.drilldown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.drilldown-item:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.drilldown-item-main {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n\n.drilldown-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-weight {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-radius: 10px;\n padding: 2px 8px;\n flex-shrink: 0;\n}\n\n.drilldown-item-chevron {\n color: var(--mj-text-disabled);\n font-size: 12px;\n flex-shrink: 0;\n}\n"] }]
|
|
154
|
+
}], null, { Title: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], Subtitle: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], Icon: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], Visible: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], IsLoading: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], Records: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], Closed: [{
|
|
167
|
+
type: Output
|
|
168
|
+
}], OpenRecord: [{
|
|
169
|
+
type: Output
|
|
170
|
+
}] }); })();
|
|
171
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordDrilldownComponent, { className: "RecordDrilldownComponent", filePath: "src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts", lineNumber: 49 }); })();
|
|
172
|
+
/** Tree-shaking prevention */
|
|
173
|
+
export function LoadRecordDrilldownComponent() {
|
|
174
|
+
// Prevents tree-shaking of the component
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=record-drilldown.component.js.map
|
package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-drilldown.component.js","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts","../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.html"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;;;;;ICLpF,+BAAkC;IAAA,YAAc;IAAA,iBAAO;;;IAArB,cAAc;IAAd,qCAAc;;;IAWpD,gCAAmD;;;IAEnD,+BAA6B;IAC3B,wBAAiC;IACjC,yBAAG;IAAA,gCAAgB;IACrB,AADqB,iBAAI,EACnB;;;IAOE,gCAAsC;IAAA,YAAqB;IAAA,iBAAO;;;IAA5B,cAAqB;IAArB,wCAAqB;;;IAI7D,gCAAoC;IAAA,YAAmC;IAAA,iBAAO;;;;IAA1C,cAAmC;IAAnC,sEAAmC;;;;IAR3E,+BAAqD;IAAzB,2OAAS,wBAAc,KAAC;IAEhD,AADF,+BAAiC,eACI;IAAA,YAAkB;IAAA,iBAAO;IAC5D,+HAAuB;IAGzB,iBAAM;IACN,+HAA6B;IAG7B,wBAAgE;IAClE,iBAAM;;;IATiC,eAAkB;IAAlB,qCAAkB;IACrD,cAEC;IAFD,6CAEC;IAEH,cAEC;IAFD,mDAEC;;;IAVL,2JAaC;;;IAbD,6BAaC;;;;IApCH,AADF,AADF,8BAA6B,aACG,aACC;IAC3B,oBAAsB;IAEpB,AADF,8BAAkC,cACG;IAAA,YAAW;IAAA,iBAAO;IACrD,yGAAgB;IAIpB,AADE,iBAAM,EACF;IACN,iCAA4E;IAAlC,4LAAS,gBAAS,KAAC;IAC3D,uBAAiC;IAErC,AADE,iBAAS,EACL;IAEN,+BAA4B;IAQxB,AALA,AAFF,iHAAiB,qFAEkB,0EAK1B;IAiBb,AADE,iBAAM,EACF;;;IAtCG,eAAc;IAAd,0BAAc;IAEoB,eAAW;IAAX,kCAAW;IAC9C,cAEC;IAFD,0CAEC;IASL,eAsBC;IAtBD,+EAsBC;;ADQP,MAAM,OAAO,wBAAwB;IACjC,wEAAwE;IAC/D,KAAK,GAAG,EAAE,CAAC;IACpB,gEAAgE;IACvD,QAAQ,GAAG,EAAE,CAAC;IACvB,0CAA0C;IACjC,IAAI,GAAG,kBAAkB,CAAC;IACnC,oCAAoC;IAC3B,OAAO,GAAG,KAAK,CAAC;IACzB,6CAA6C;IACpC,SAAS,GAAG,KAAK,CAAC;IAC3B,2BAA2B;IAClB,OAAO,GAAsB,EAAE,CAAC;IAEzC,8CAA8C;IACpC,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,wDAAwD;IAC9C,UAAU,GAAG,IAAI,YAAY,EAAwB,CAAC;IAEzD,OAAO;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAuB;QACjC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAEM,aAAa,CAAC,MAAc,EAAE,MAAuB;QACxD,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;IAEM,aAAa,CAAC,MAA0B;QAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;kHAvCQ,wBAAwB;6DAAxB,wBAAwB;YChDrC,2FAAe;;YAAf,sCA2CC;;;iFDKY,wBAAwB;cAPpC,SAAS;2BACI,yBAAyB,cACvB,KAAK,mBACA,uBAAuB,CAAC,MAAM;;kBAM9C,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAGL,MAAM;;kBAEN,MAAM;;kFAjBE,wBAAwB;AA0CrC,8BAA8B;AAC9B,MAAM,UAAU,4BAA4B;IACxC,yCAAyC;AAC7C,CAAC","sourcesContent":["/**\n * @fileoverview Shared Record Drilldown Panel\n *\n * A single, reusable side panel that lists records behind a selection on the\n * Knowledge Hub \"Visualize\" surface. It is driven entirely by inputs and emits\n * record-open intents up to the host — it never imports NavigationService, so it\n * stays a generic child that the KH resource host wires to navigation.\n *\n * Consumed by BOTH:\n * - Cluster-point selection: the host passes a single record row.\n * - Tag-cloud word selection: the host passes the records carrying that tag.\n */\n\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * A single record row shown in the drilldown panel. `EntityName` + `RecordID`\n * are the open-intent payload; `Title`/`Subtitle`/`Weight` are display-only.\n */\nexport interface DrilldownRecord {\n /** Entity the record belongs to (e.g. 'MJ: Content Items' or a business entity). */\n EntityName: string;\n /** Primary-key URL segment used to open the record. */\n RecordID: string;\n /** Primary display label. */\n Title: string;\n /** Optional secondary line (source, content type, etc.). */\n Subtitle?: string;\n /** Optional weight/relevance shown as a chip (0.0 - 1.0). */\n Weight?: number;\n}\n\n/**\n * Emitted when the user asks to open one of the listed records. The host\n * translates this into a NavigationService call.\n */\nexport interface DrilldownOpenRequest {\n EntityName: string;\n RecordID: string;\n}\n\n@Component({\n selector: 'app-kh-record-drilldown',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './record-drilldown.component.html',\n styleUrls: ['./record-drilldown.component.css'],\n})\nexport class RecordDrilldownComponent {\n /** Panel heading (e.g. the tag text or the selected record's label). */\n @Input() Title = '';\n /** Optional sub-heading under the title (e.g. \"12 records\"). */\n @Input() Subtitle = '';\n /** Icon class shown next to the title. */\n @Input() Icon = 'fa-solid fa-list';\n /** Whether the panel is visible. */\n @Input() Visible = false;\n /** Whether records are currently loading. */\n @Input() IsLoading = false;\n /** The records to list. */\n @Input() Records: DrilldownRecord[] = [];\n\n /** Emitted when the user closes the panel. */\n @Output() Closed = new EventEmitter<void>();\n /** Emitted when the user clicks a record to open it. */\n @Output() OpenRecord = new EventEmitter<DrilldownOpenRequest>();\n\n public OnClose(): void {\n this.Closed.emit();\n }\n\n public OnOpen(record: DrilldownRecord): void {\n if (!record.EntityName || !record.RecordID) {\n return;\n }\n this.OpenRecord.emit({ EntityName: record.EntityName, RecordID: record.RecordID });\n }\n\n public TrackByRecord(_index: number, record: DrilldownRecord): string {\n return `${record.EntityName}|${record.RecordID}`;\n }\n\n public WeightPercent(weight: number | undefined): number {\n if (weight == null) {\n return 0;\n }\n return Math.round(Math.max(0, Math.min(1, weight)) * 100);\n }\n}\n\n/** Tree-shaking prevention */\nexport function LoadRecordDrilldownComponent(): void {\n // Prevents tree-shaking of the component\n}\n","@if (Visible) {\n <div class=\"drilldown-panel\">\n <div class=\"drilldown-header\">\n <div class=\"drilldown-title\">\n <i [class]=\"Icon\"></i>\n <div class=\"drilldown-title-text\">\n <span class=\"drilldown-title-main\">{{ Title }}</span>\n @if (Subtitle) {\n <span class=\"drilldown-title-sub\">{{ Subtitle }}</span>\n }\n </div>\n </div>\n <button mjButton variant=\"icon\" size=\"sm\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"drilldown-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n } @else if (Records.length === 0) {\n <div class=\"drilldown-empty\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No records found</p>\n </div>\n } @else {\n @for (record of Records; track TrackByRecord($index, record)) {\n <div class=\"drilldown-item\" (click)=\"OnOpen(record)\">\n <div class=\"drilldown-item-main\">\n <span class=\"drilldown-item-title\">{{ record.Title }}</span>\n @if (record.Subtitle) {\n <span class=\"drilldown-item-subtitle\">{{ record.Subtitle }}</span>\n }\n </div>\n @if (record.Weight != null) {\n <span class=\"drilldown-item-weight\">{{ WeightPercent(record.Weight) }}%</span>\n }\n <i class=\"fa-solid fa-chevron-right drilldown-item-chevron\"></i>\n </div>\n }\n }\n </div>\n </div>\n}\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Knowledge Hub Tag Cloud (Visualize > Tag Cloud mode)
|
|
3
|
+
*
|
|
4
|
+
* Renders a weighted tag cloud via `@memberjunction/ng-word-cloud`'s
|
|
5
|
+
* `MJWordCloudComponent`, driven by `TagCloudEngine.Instance.GetTagCloud(...)`.
|
|
6
|
+
*
|
|
7
|
+
* Provides a scope picker (Content Source / Content Type / Tag root) plus a
|
|
8
|
+
* sizing control. Loads on init and whenever the scope changes. Emits a
|
|
9
|
+
* `TagSelected` intent up to the host so the shared record-drilldown panel can
|
|
10
|
+
* be populated by the host (this component never touches NavigationService).
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
13
|
+
import { IMetadataProvider } from '@memberjunction/core';
|
|
14
|
+
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
15
|
+
import { TagCloudScope } from '@memberjunction/tag-engine-base';
|
|
16
|
+
import { WordCloudItem, WordCloudItemEvent } from '@memberjunction/ng-word-cloud';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
/** A selectable scope option (content source / content type / tag root). */
|
|
19
|
+
interface ScopeOption {
|
|
20
|
+
ID: string;
|
|
21
|
+
Name: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Emitted when the user clicks a tag word. The host resolves this into the
|
|
25
|
+
* shared drilldown panel (records carrying the tag).
|
|
26
|
+
*/
|
|
27
|
+
export interface TagCloudSelection {
|
|
28
|
+
/** The clicked tag's text. */
|
|
29
|
+
Tag: string;
|
|
30
|
+
/** Raw frequency count carried from TagCloudItem. */
|
|
31
|
+
Count: number;
|
|
32
|
+
/** The scope currently applied (so the host can scope the drilldown query). */
|
|
33
|
+
Scope: TagCloudScope;
|
|
34
|
+
}
|
|
35
|
+
export declare class TagCloudComponent extends BaseAngularComponent implements OnInit {
|
|
36
|
+
private cdr;
|
|
37
|
+
/** Re-declared so the host can bind `[Provider]` and we thread it through. */
|
|
38
|
+
Provider: IMetadataProvider | null;
|
|
39
|
+
/** Emitted when a tag word is clicked. */
|
|
40
|
+
TagSelected: EventEmitter<TagCloudSelection>;
|
|
41
|
+
IsLoading: boolean;
|
|
42
|
+
Items: WordCloudItem[];
|
|
43
|
+
/** Scope picker options. */
|
|
44
|
+
ContentSourceOptions: ScopeOption[];
|
|
45
|
+
ContentTypeOptions: ScopeOption[];
|
|
46
|
+
TagRootOptions: ScopeOption[];
|
|
47
|
+
/** Current scope selections (empty string = "All"). */
|
|
48
|
+
SelectedContentSourceID: string;
|
|
49
|
+
SelectedContentTypeID: string;
|
|
50
|
+
SelectedTagRootID: string;
|
|
51
|
+
/** Sizing: maximum font size driven by weight. */
|
|
52
|
+
MaxFontSize: number;
|
|
53
|
+
MinFontSize: number;
|
|
54
|
+
/** Color mode passed to the word cloud. */
|
|
55
|
+
ColorMode: 'brand' | 'categorical' | 'weight-gradient';
|
|
56
|
+
ngOnInit(): Promise<void>;
|
|
57
|
+
/** Re-load the cloud for the current scope. Called on init + scope change. */
|
|
58
|
+
LoadCloud(): Promise<void>;
|
|
59
|
+
/** Reload after any scope dropdown change. */
|
|
60
|
+
OnScopeChanged(): void;
|
|
61
|
+
/** Apply a new max font size (sizing-by-weight control). */
|
|
62
|
+
OnSizeChanged(value: number): void;
|
|
63
|
+
/** Clear all scope filters and reload. */
|
|
64
|
+
ClearScope(): void;
|
|
65
|
+
get HasActiveScope(): boolean;
|
|
66
|
+
get HasItems(): boolean;
|
|
67
|
+
/** Word-cloud click handler — emits a selection up to the host. */
|
|
68
|
+
OnWordClicked(event: WordCloudItemEvent): void;
|
|
69
|
+
/** Build the current TagCloudScope from the picker selections. */
|
|
70
|
+
BuildScope(): TagCloudScope;
|
|
71
|
+
/** Map an engine TagCloudItem to a word-cloud WordCloudItem (Count → Metadata). */
|
|
72
|
+
private toWordCloudItem;
|
|
73
|
+
/** Populate scope-picker options from the KH + Tag engines. */
|
|
74
|
+
private loadScopeOptions;
|
|
75
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TagCloudComponent, never>;
|
|
76
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TagCloudComponent, "app-kh-tag-cloud", never, { "Provider": { "alias": "Provider"; "required": false; }; }, { "TagSelected": "TagSelected"; }, never, never, false, never>;
|
|
77
|
+
}
|
|
78
|
+
/** Tree-shaking prevention */
|
|
79
|
+
export declare function LoadTagCloudComponent(): void;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=tag-cloud.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-cloud.component.d.ts","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIH,YAAY,EAEZ,MAAM,EAET,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAEH,aAAa,EAEhB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;;AAElF,4EAA4E;AAC5E,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,aAAa,CAAC;CACxB;AAED,qBAMa,iBAAkB,SAAQ,oBAAqB,YAAW,MAAM;IACzE,OAAO,CAAC,GAAG,CAA6B;IAExC,8EAA8E;IAC5D,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE5D,0CAA0C;IAChC,WAAW,kCAAyC;IAMvD,SAAS,UAAQ;IACjB,KAAK,EAAE,aAAa,EAAE,CAAM;IAEnC,4BAA4B;IACrB,oBAAoB,EAAE,WAAW,EAAE,CAAM;IACzC,kBAAkB,EAAE,WAAW,EAAE,CAAM;IACvC,cAAc,EAAE,WAAW,EAAE,CAAM;IAE1C,uDAAuD;IAChD,uBAAuB,SAAM;IAC7B,qBAAqB,SAAM;IAC3B,iBAAiB,SAAM;IAE9B,kDAAkD;IAC3C,WAAW,SAAM;IACjB,WAAW,SAAM;IAExB,2CAA2C;IACpC,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,iBAAiB,CAAqB;IAM5E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,8EAA8E;IACjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBvC,8CAA8C;IACvC,cAAc,IAAI,IAAI;IAI7B,4DAA4D;IACrD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC,0CAA0C;IACnC,UAAU,IAAI,IAAI;IAOzB,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,mEAAmE;IAC5D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IASrD,kEAAkE;IAC3D,UAAU,IAAI,aAAa;IAkBlC,mFAAmF;IACnF,OAAO,CAAC,eAAe;IAQvB,+DAA+D;YACjD,gBAAgB;yCAxIrB,iBAAiB;2CAAjB,iBAAiB;CAiK7B;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|