@memberjunction/ng-dashboards 3.4.0 → 4.1.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 +102 -339
- package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +103 -44
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +149 -211
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
- package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
- package/dist/AI/components/charts/time-series-chart.component.js +6 -7
- package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +33 -37
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +3 -6
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +34 -27
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +34 -32
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +26 -27
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.js +52 -42
- package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
- package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
- package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +193 -189
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +0 -2
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +113 -114
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +294 -302
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +151 -155
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +237 -234
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +15 -14
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +3 -6
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +17 -19
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -6
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.d.ts +0 -4
- package/dist/Actions/components/code-management.component.d.ts.map +1 -1
- package/dist/Actions/components/code-management.component.js +3 -9
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.d.ts +0 -4
- package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +3 -9
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +13 -16
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +3 -3
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
- package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -10
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -4
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
- package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +3 -9
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.d.ts +0 -4
- package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +3 -9
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/Actions/index.d.ts +0 -7
- package/dist/Actions/index.d.ts.map +1 -1
- package/dist/Actions/index.js +0 -8
- package/dist/Actions/index.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts +0 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +38 -51
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +112 -108
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +210 -201
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +136 -124
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +91 -88
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -122
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
- package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +31 -44
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
- package/dist/Credentials/pipes/group-by.pipe.js +2 -1
- package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +2 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +83 -64
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DataExplorer/index.d.ts +2 -2
- package/dist/DataExplorer/index.d.ts.map +1 -1
- package/dist/DataExplorer/index.js +2 -2
- package/dist/DataExplorer/index.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-application.d.ts +109 -27
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +351 -75
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +48 -12
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +267 -187
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +761 -685
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +340 -316
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +508 -455
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +0 -1
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +0 -11
- package/dist/Lists/index.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
- package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/index.d.ts +5 -5
- package/dist/MCP/index.d.ts.map +1 -1
- package/dist/MCP/index.js +5 -5
- package/dist/MCP/index.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +976 -697
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
- package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
- package/dist/MCP/mcp-filter-panel.component.js +288 -0
- package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
- package/dist/MCP/mcp-resource.component.d.ts +11 -5
- package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
- package/dist/MCP/mcp-resource.component.js +8 -9
- package/dist/MCP/mcp-resource.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +16 -19
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +17 -26
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
- package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
- package/dist/MCP/services/mcp-tools.service.js +5 -6
- package/dist/MCP/services/mcp-tools.service.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
- package/dist/Scheduling/components/job-slideout.component.js +117 -116
- package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-activity-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 +134 -134
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +30 -30
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +42 -35
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +3 -3
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +16 -16
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +3 -3
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +15 -15
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
- package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
- package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +0 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -8
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/graph-resource.component.js +521 -0
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/index.d.ts +5 -0
- package/dist/VersionHistory/components/index.d.ts.map +1 -0
- package/dist/VersionHistory/components/index.js +5 -0
- package/dist/VersionHistory/components/index.js.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/labels-resource.component.js +968 -0
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
- package/dist/VersionHistory/components/restore-resource.component.js +472 -0
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
- package/dist/VersionHistory/index.d.ts +2 -0
- package/dist/VersionHistory/index.d.ts.map +1 -0
- package/dist/VersionHistory/index.js +2 -0
- package/dist/VersionHistory/index.js.map +1 -0
- package/dist/module.d.ts +42 -36
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +41 -7
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +20 -19
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +22 -120
- package/dist/public-api.js.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
- package/dist/shared/pipes/highlight-search.pipe.js +2 -1
- package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
- package/package.json +64 -62
|
@@ -17,22 +17,22 @@ import * as i4 from "@angular/forms";
|
|
|
17
17
|
import * as i5 from "@memberjunction/ng-shared-generic";
|
|
18
18
|
const _c0 = a0 => ({ node: a0, depth: 0 });
|
|
19
19
|
const _c1 = (a0, a1) => ({ node: a0, depth: a1 });
|
|
20
|
-
function
|
|
20
|
+
function ListsMyListsResource_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
21
21
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
22
22
|
i0.ɵɵelementStart(0, "button", 23);
|
|
23
|
-
i0.ɵɵlistener("click", function
|
|
23
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSearch()); });
|
|
24
24
|
i0.ɵɵelement(1, "i", 24);
|
|
25
25
|
i0.ɵɵelementEnd();
|
|
26
26
|
} }
|
|
27
|
-
function
|
|
28
|
-
i0.ɵɵelementStart(0, "div",
|
|
29
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
27
|
+
function ListsMyListsResource_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
29
|
+
i0.ɵɵelement(1, "mj-loading", 25);
|
|
30
30
|
i0.ɵɵelementEnd();
|
|
31
31
|
} }
|
|
32
|
-
function
|
|
32
|
+
function ListsMyListsResource_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
33
33
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
34
|
-
i0.ɵɵelementStart(0, "div",
|
|
35
|
-
i0.ɵɵelement(2, "div",
|
|
34
|
+
i0.ɵɵelementStart(0, "div", 14)(1, "div", 26);
|
|
35
|
+
i0.ɵɵelement(2, "div", 27)(3, "i", 5);
|
|
36
36
|
i0.ɵɵelementEnd();
|
|
37
37
|
i0.ɵɵelementStart(4, "h3");
|
|
38
38
|
i0.ɵɵtext(5, "No Lists Yet");
|
|
@@ -40,30 +40,30 @@ function ListsMyListsResource_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
40
40
|
i0.ɵɵelementStart(6, "p");
|
|
41
41
|
i0.ɵɵtext(7, "Lists help you organize and track groups of records across your data.");
|
|
42
42
|
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(8, "div",
|
|
44
|
-
i0.ɵɵelement(10, "i",
|
|
43
|
+
i0.ɵɵelementStart(8, "div", 28)(9, "div", 29);
|
|
44
|
+
i0.ɵɵelement(10, "i", 30);
|
|
45
45
|
i0.ɵɵelementStart(11, "span");
|
|
46
46
|
i0.ɵɵtext(12, "Group records from any entity");
|
|
47
47
|
i0.ɵɵelementEnd()();
|
|
48
|
-
i0.ɵɵelementStart(13, "div",
|
|
49
|
-
i0.ɵɵelement(14, "i",
|
|
48
|
+
i0.ɵɵelementStart(13, "div", 29);
|
|
49
|
+
i0.ɵɵelement(14, "i", 30);
|
|
50
50
|
i0.ɵɵelementStart(15, "span");
|
|
51
51
|
i0.ɵɵtext(16, "Organize with categories");
|
|
52
52
|
i0.ɵɵelementEnd()();
|
|
53
|
-
i0.ɵɵelementStart(17, "div",
|
|
54
|
-
i0.ɵɵelement(18, "i",
|
|
53
|
+
i0.ɵɵelementStart(17, "div", 29);
|
|
54
|
+
i0.ɵɵelement(18, "i", 30);
|
|
55
55
|
i0.ɵɵelementStart(19, "span");
|
|
56
56
|
i0.ɵɵtext(20, "Quick access from any view");
|
|
57
57
|
i0.ɵɵelementEnd()()();
|
|
58
|
-
i0.ɵɵelementStart(21, "button",
|
|
59
|
-
i0.ɵɵlistener("click", function
|
|
58
|
+
i0.ɵɵelementStart(21, "button", 31);
|
|
59
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_16_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createNewList()); });
|
|
60
60
|
i0.ɵɵelement(22, "i", 12);
|
|
61
61
|
i0.ɵɵtext(23, " Create Your First List ");
|
|
62
62
|
i0.ɵɵelementEnd()();
|
|
63
63
|
} }
|
|
64
|
-
function
|
|
64
|
+
function ListsMyListsResource_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
65
65
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
66
|
-
i0.ɵɵelementStart(0, "div",
|
|
66
|
+
i0.ɵɵelementStart(0, "div", 15)(1, "div", 32);
|
|
67
67
|
i0.ɵɵelement(2, "i", 8);
|
|
68
68
|
i0.ɵɵelementEnd();
|
|
69
69
|
i0.ɵɵelementStart(3, "h3");
|
|
@@ -76,11 +76,11 @@ function ListsMyListsResource_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
76
76
|
i0.ɵɵelementEnd();
|
|
77
77
|
i0.ɵɵtext(9, "\"");
|
|
78
78
|
i0.ɵɵelementEnd();
|
|
79
|
-
i0.ɵɵelementStart(10, "p",
|
|
79
|
+
i0.ɵɵelementStart(10, "p", 33);
|
|
80
80
|
i0.ɵɵtext(11, "Try a different search term or clear your search.");
|
|
81
81
|
i0.ɵɵelementEnd();
|
|
82
|
-
i0.ɵɵelementStart(12, "button",
|
|
83
|
-
i0.ɵɵlistener("click", function
|
|
82
|
+
i0.ɵɵelementStart(12, "button", 34);
|
|
83
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_17_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSearch()); });
|
|
84
84
|
i0.ɵɵtext(13, "Clear Search");
|
|
85
85
|
i0.ɵɵelementEnd()();
|
|
86
86
|
} if (rf & 2) {
|
|
@@ -88,31 +88,28 @@ function ListsMyListsResource_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
88
88
|
i0.ɵɵadvance(8);
|
|
89
89
|
i0.ɵɵtextInterpolate(ctx_r2.searchTerm);
|
|
90
90
|
} }
|
|
91
|
-
function
|
|
91
|
+
function ListsMyListsResource_Conditional_18_Conditional_8_For_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
92
92
|
i0.ɵɵelementContainer(0);
|
|
93
93
|
} }
|
|
94
|
-
function
|
|
95
|
-
i0.ɵɵ
|
|
96
|
-
i0.ɵɵtemplate(1, ListsMyListsResource_div_18_div_8_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 49);
|
|
97
|
-
i0.ɵɵelementContainerEnd();
|
|
94
|
+
function ListsMyListsResource_Conditional_18_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵtemplate(0, ListsMyListsResource_Conditional_18_Conditional_8_For_2_ng_container_0_Template, 1, 0, "ng-container", 43);
|
|
98
96
|
} if (rf & 2) {
|
|
99
97
|
const node_r7 = ctx.$implicit;
|
|
100
98
|
i0.ɵɵnextContext(3);
|
|
101
99
|
const categoryNodeTemplate_r8 = i0.ɵɵreference(20);
|
|
102
|
-
i0.ɵɵadvance();
|
|
103
100
|
i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTemplate_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r7));
|
|
104
101
|
} }
|
|
105
|
-
function
|
|
106
|
-
i0.ɵɵelementStart(0, "div",
|
|
107
|
-
i0.ɵɵ
|
|
102
|
+
function ListsMyListsResource_Conditional_18_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
104
|
+
i0.ɵɵrepeaterCreate(1, ListsMyListsResource_Conditional_18_Conditional_8_For_2_Template, 1, 4, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
|
|
108
105
|
i0.ɵɵelementEnd();
|
|
109
106
|
} if (rf & 2) {
|
|
110
107
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
111
108
|
i0.ɵɵadvance();
|
|
112
|
-
i0.ɵɵ
|
|
109
|
+
i0.ɵɵrepeater(ctx_r2.categoryTree);
|
|
113
110
|
} }
|
|
114
|
-
function
|
|
115
|
-
i0.ɵɵelementStart(0, "p",
|
|
111
|
+
function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelementStart(0, "p", 53);
|
|
116
113
|
i0.ɵɵtext(1);
|
|
117
114
|
i0.ɵɵelementEnd();
|
|
118
115
|
} if (rf & 2) {
|
|
@@ -120,9 +117,9 @@ function ListsMyListsResource_div_18_div_9_div_1_p_10_Template(rf, ctx) { if (rf
|
|
|
120
117
|
i0.ɵɵadvance();
|
|
121
118
|
i0.ɵɵtextInterpolate(item_r10.list.Description);
|
|
122
119
|
} }
|
|
123
|
-
function
|
|
124
|
-
i0.ɵɵelementStart(0, "span",
|
|
125
|
-
i0.ɵɵelement(1, "i",
|
|
120
|
+
function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
+
i0.ɵɵelementStart(0, "span", 59);
|
|
122
|
+
i0.ɵɵelement(1, "i", 61);
|
|
126
123
|
i0.ɵɵtext(2);
|
|
127
124
|
i0.ɵɵelementEnd();
|
|
128
125
|
} if (rf & 2) {
|
|
@@ -131,32 +128,32 @@ function ListsMyListsResource_div_18_div_9_div_1_span_19_Template(rf, ctx) { if
|
|
|
131
128
|
i0.ɵɵadvance(2);
|
|
132
129
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.getCategoryName(item_r10.list.CategoryID), " ");
|
|
133
130
|
} }
|
|
134
|
-
function
|
|
131
|
+
function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
135
132
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
136
|
-
i0.ɵɵelementStart(0, "div",
|
|
137
|
-
i0.ɵɵlistener("click", function
|
|
138
|
-
i0.ɵɵelementStart(1, "div",
|
|
133
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
134
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template_div_click_0_listener() { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r10.list)); })("keydown.enter", function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template_div_keydown_enter_0_listener() { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r10.list)); })("keydown.space", function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template_div_keydown_space_0_listener($event) { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); ctx_r2.openList(item_r10.list); return i0.ɵɵresetView($event.preventDefault()); });
|
|
135
|
+
i0.ɵɵelementStart(1, "div", 46)(2, "div", 47);
|
|
139
136
|
i0.ɵɵelement(3, "i");
|
|
140
137
|
i0.ɵɵelementEnd();
|
|
141
|
-
i0.ɵɵelementStart(4, "div",
|
|
142
|
-
i0.ɵɵlistener("click", function
|
|
143
|
-
i0.ɵɵelement(6, "i",
|
|
138
|
+
i0.ɵɵelementStart(4, "div", 48)(5, "button", 49);
|
|
139
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template_button_click_5_listener($event) { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r10.list)); });
|
|
140
|
+
i0.ɵɵelement(6, "i", 50);
|
|
144
141
|
i0.ɵɵelementEnd()()();
|
|
145
|
-
i0.ɵɵelementStart(7, "div",
|
|
142
|
+
i0.ɵɵelementStart(7, "div", 51)(8, "h3", 52);
|
|
146
143
|
i0.ɵɵtext(9);
|
|
147
144
|
i0.ɵɵelementEnd();
|
|
148
|
-
i0.ɵɵ
|
|
149
|
-
i0.ɵɵelementStart(11, "div",
|
|
150
|
-
i0.ɵɵelement(13, "i",
|
|
145
|
+
i0.ɵɵconditionalCreate(10, ListsMyListsResource_Conditional_18_Conditional_9_For_2_Conditional_10_Template, 2, 1, "p", 53);
|
|
146
|
+
i0.ɵɵelementStart(11, "div", 54)(12, "span", 55);
|
|
147
|
+
i0.ɵɵelement(13, "i", 56);
|
|
151
148
|
i0.ɵɵtext(14);
|
|
152
149
|
i0.ɵɵelementEnd();
|
|
153
|
-
i0.ɵɵelementStart(15, "span",
|
|
154
|
-
i0.ɵɵelement(16, "i",
|
|
150
|
+
i0.ɵɵelementStart(15, "span", 55);
|
|
151
|
+
i0.ɵɵelement(16, "i", 57);
|
|
155
152
|
i0.ɵɵtext(17);
|
|
156
153
|
i0.ɵɵelementEnd()()();
|
|
157
|
-
i0.ɵɵelementStart(18, "div",
|
|
158
|
-
i0.ɵɵ
|
|
159
|
-
i0.ɵɵelementStart(20, "span",
|
|
154
|
+
i0.ɵɵelementStart(18, "div", 58);
|
|
155
|
+
i0.ɵɵconditionalCreate(19, ListsMyListsResource_Conditional_18_Conditional_9_For_2_Conditional_19_Template, 3, 1, "span", 59);
|
|
156
|
+
i0.ɵɵelementStart(20, "span", 60);
|
|
160
157
|
i0.ɵɵtext(21);
|
|
161
158
|
i0.ɵɵelementEnd()()();
|
|
162
159
|
} if (rf & 2) {
|
|
@@ -172,39 +169,40 @@ function ListsMyListsResource_div_18_div_9_div_1_Template(rf, ctx) { if (rf & 1)
|
|
|
172
169
|
i0.ɵɵadvance(4);
|
|
173
170
|
i0.ɵɵtextInterpolate(item_r10.list.Name);
|
|
174
171
|
i0.ɵɵadvance();
|
|
175
|
-
i0.ɵɵ
|
|
172
|
+
i0.ɵɵconditional(item_r10.list.Description ? 10 : -1);
|
|
176
173
|
i0.ɵɵadvance(4);
|
|
177
174
|
i0.ɵɵtextInterpolate1(" ", item_r10.entityName, " ");
|
|
178
175
|
i0.ɵɵadvance(3);
|
|
179
176
|
i0.ɵɵtextInterpolate2(" ", item_r10.itemCount, " item", item_r10.itemCount !== 1 ? "s" : "", " ");
|
|
180
177
|
i0.ɵɵadvance(2);
|
|
181
|
-
i0.ɵɵ
|
|
178
|
+
i0.ɵɵconditional(item_r10.list.CategoryID ? 19 : -1);
|
|
182
179
|
i0.ɵɵadvance(2);
|
|
183
|
-
i0.ɵɵtextInterpolate1("Updated ", ctx_r2.formatDate(item_r10.list.__mj_UpdatedAt)
|
|
180
|
+
i0.ɵɵtextInterpolate1("Updated ", ctx_r2.formatDate(item_r10.list.__mj_UpdatedAt));
|
|
184
181
|
} }
|
|
185
|
-
function
|
|
186
|
-
i0.ɵɵelementStart(0, "div",
|
|
187
|
-
i0.ɵɵ
|
|
182
|
+
function ListsMyListsResource_Conditional_18_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
183
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
184
|
+
i0.ɵɵrepeaterCreate(1, ListsMyListsResource_Conditional_18_Conditional_9_For_2_Template, 22, 13, "div", 44, i0.ɵɵrepeaterTrackByIdentity);
|
|
188
185
|
i0.ɵɵelementEnd();
|
|
189
186
|
} if (rf & 2) {
|
|
190
187
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
191
188
|
i0.ɵɵadvance();
|
|
192
|
-
i0.ɵɵ
|
|
189
|
+
i0.ɵɵrepeater(ctx_r2.filteredLists);
|
|
193
190
|
} }
|
|
194
|
-
function
|
|
191
|
+
function ListsMyListsResource_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
195
192
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
196
|
-
i0.ɵɵelementStart(0, "div",
|
|
197
|
-
i0.ɵɵlistener("click", function
|
|
198
|
-
i0.ɵɵelement(3, "i",
|
|
193
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "div", 35)(2, "button", 36);
|
|
194
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_18_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.viewMode = "grid"); });
|
|
195
|
+
i0.ɵɵelement(3, "i", 37);
|
|
199
196
|
i0.ɵɵelementEnd();
|
|
200
|
-
i0.ɵɵelementStart(4, "button",
|
|
201
|
-
i0.ɵɵlistener("click", function
|
|
202
|
-
i0.ɵɵelement(5, "i",
|
|
197
|
+
i0.ɵɵelementStart(4, "button", 38);
|
|
198
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_18_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.viewMode = "list"); });
|
|
199
|
+
i0.ɵɵelement(5, "i", 39);
|
|
203
200
|
i0.ɵɵelementEnd();
|
|
204
|
-
i0.ɵɵelementStart(6, "span",
|
|
201
|
+
i0.ɵɵelementStart(6, "span", 40);
|
|
205
202
|
i0.ɵɵtext(7);
|
|
206
203
|
i0.ɵɵelementEnd()();
|
|
207
|
-
i0.ɵɵ
|
|
204
|
+
i0.ɵɵconditionalCreate(8, ListsMyListsResource_Conditional_18_Conditional_8_Template, 3, 0, "div", 41);
|
|
205
|
+
i0.ɵɵconditionalCreate(9, ListsMyListsResource_Conditional_18_Conditional_9_Template, 3, 0, "div", 42);
|
|
208
206
|
i0.ɵɵelementEnd();
|
|
209
207
|
} if (rf & 2) {
|
|
210
208
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -213,21 +211,21 @@ function ListsMyListsResource_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
|
213
211
|
i0.ɵɵadvance(2);
|
|
214
212
|
i0.ɵɵclassProp("active", ctx_r2.viewMode === "list");
|
|
215
213
|
i0.ɵɵadvance(3);
|
|
216
|
-
i0.ɵɵtextInterpolate2("", ctx_r2.filteredLists.length, " list", ctx_r2.filteredLists.length !== 1 ? "s" : ""
|
|
214
|
+
i0.ɵɵtextInterpolate2("", ctx_r2.filteredLists.length, " list", ctx_r2.filteredLists.length !== 1 ? "s" : "");
|
|
217
215
|
i0.ɵɵadvance();
|
|
218
|
-
i0.ɵɵ
|
|
216
|
+
i0.ɵɵconditional(ctx_r2.viewMode === "list" ? 8 : -1);
|
|
219
217
|
i0.ɵɵadvance();
|
|
220
|
-
i0.ɵɵ
|
|
218
|
+
i0.ɵɵconditional(ctx_r2.viewMode === "grid" ? 9 : -1);
|
|
221
219
|
} }
|
|
222
|
-
function
|
|
220
|
+
function ListsMyListsResource_ng_template_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
223
221
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
224
|
-
i0.ɵɵelementStart(0, "div",
|
|
225
|
-
i0.ɵɵlistener("click", function
|
|
226
|
-
i0.ɵɵelement(1, "i")(2, "i",
|
|
227
|
-
i0.ɵɵelementStart(3, "span",
|
|
222
|
+
i0.ɵɵelementStart(0, "div", 66);
|
|
223
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_ng_template_19_Conditional_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r11); const node_r12 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r12)); });
|
|
224
|
+
i0.ɵɵelement(1, "i")(2, "i", 61);
|
|
225
|
+
i0.ɵɵelementStart(3, "span", 67);
|
|
228
226
|
i0.ɵɵtext(4);
|
|
229
227
|
i0.ɵɵelementEnd();
|
|
230
|
-
i0.ɵɵelementStart(5, "span",
|
|
228
|
+
i0.ɵɵelementStart(5, "span", 68);
|
|
231
229
|
i0.ɵɵtext(6);
|
|
232
230
|
i0.ɵɵelementEnd()();
|
|
233
231
|
} if (rf & 2) {
|
|
@@ -242,15 +240,15 @@ function ListsMyListsResource_ng_template_19_div_1_Template(rf, ctx) { if (rf &
|
|
|
242
240
|
i0.ɵɵadvance(2);
|
|
243
241
|
i0.ɵɵtextInterpolate(ctx_r2.getListCountInCategory(node_r12));
|
|
244
242
|
} }
|
|
245
|
-
function
|
|
243
|
+
function ListsMyListsResource_ng_template_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
246
244
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
247
|
-
i0.ɵɵelementStart(0, "div",
|
|
248
|
-
i0.ɵɵlistener("click", function
|
|
249
|
-
i0.ɵɵelement(1, "i")(2, "i",
|
|
250
|
-
i0.ɵɵelementStart(3, "span",
|
|
245
|
+
i0.ɵɵelementStart(0, "div", 69);
|
|
246
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_ng_template_19_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r13); const node_r12 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCategory(node_r12)); });
|
|
247
|
+
i0.ɵɵelement(1, "i")(2, "i", 70);
|
|
248
|
+
i0.ɵɵelementStart(3, "span", 67);
|
|
251
249
|
i0.ɵɵtext(4, "Uncategorized");
|
|
252
250
|
i0.ɵɵelementEnd();
|
|
253
|
-
i0.ɵɵelementStart(5, "span",
|
|
251
|
+
i0.ɵɵelementStart(5, "span", 68);
|
|
254
252
|
i0.ɵɵtext(6);
|
|
255
253
|
i0.ɵɵelementEnd()();
|
|
256
254
|
} if (rf & 2) {
|
|
@@ -260,22 +258,22 @@ function ListsMyListsResource_ng_template_19_div_2_Template(rf, ctx) { if (rf &
|
|
|
260
258
|
i0.ɵɵadvance(5);
|
|
261
259
|
i0.ɵɵtextInterpolate(node_r12.lists.length);
|
|
262
260
|
} }
|
|
263
|
-
function
|
|
261
|
+
function ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
264
262
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
265
|
-
i0.ɵɵelementStart(0, "div",
|
|
266
|
-
i0.ɵɵlistener("click", function
|
|
267
|
-
i0.ɵɵelementStart(1, "div",
|
|
263
|
+
i0.ɵɵelementStart(0, "div", 72);
|
|
264
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template_div_click_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15.list)); })("keydown.enter", function ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template_div_keydown_enter_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openList(item_r15.list)); })("keydown.space", function ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template_div_keydown_space_0_listener($event) { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); ctx_r2.openList(item_r15.list); return i0.ɵɵresetView($event.preventDefault()); });
|
|
265
|
+
i0.ɵɵelementStart(1, "div", 73);
|
|
268
266
|
i0.ɵɵelement(2, "i");
|
|
269
267
|
i0.ɵɵelementEnd();
|
|
270
|
-
i0.ɵɵelementStart(3, "div",
|
|
268
|
+
i0.ɵɵelementStart(3, "div", 74)(4, "span", 75);
|
|
271
269
|
i0.ɵɵtext(5);
|
|
272
270
|
i0.ɵɵelementEnd();
|
|
273
|
-
i0.ɵɵelementStart(6, "span",
|
|
271
|
+
i0.ɵɵelementStart(6, "span", 76);
|
|
274
272
|
i0.ɵɵtext(7);
|
|
275
273
|
i0.ɵɵelementEnd()();
|
|
276
|
-
i0.ɵɵelementStart(8, "div",
|
|
277
|
-
i0.ɵɵlistener("click", function
|
|
278
|
-
i0.ɵɵelement(10, "i",
|
|
274
|
+
i0.ɵɵelementStart(8, "div", 77)(9, "button", 78);
|
|
275
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template_button_click_9_listener($event) { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.openListMenu($event, item_r15.list)); });
|
|
276
|
+
i0.ɵɵelement(10, "i", 50);
|
|
279
277
|
i0.ɵɵelementEnd()()();
|
|
280
278
|
} if (rf & 2) {
|
|
281
279
|
const item_r15 = ctx.$implicit;
|
|
@@ -292,92 +290,89 @@ function ListsMyListsResource_ng_template_19_div_3_div_1_Template(rf, ctx) { if
|
|
|
292
290
|
i0.ɵɵadvance(2);
|
|
293
291
|
i0.ɵɵattribute("aria-label", "More options for " + item_r15.list.Name);
|
|
294
292
|
} }
|
|
295
|
-
function
|
|
296
|
-
i0.ɵɵelementStart(0, "div",
|
|
297
|
-
i0.ɵɵ
|
|
293
|
+
function ListsMyListsResource_ng_template_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
294
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
295
|
+
i0.ɵɵrepeaterCreate(1, ListsMyListsResource_ng_template_19_Conditional_3_For_2_Template, 11, 9, "div", 71, i0.ɵɵrepeaterTrackByIdentity);
|
|
298
296
|
i0.ɵɵelementEnd();
|
|
299
297
|
} if (rf & 2) {
|
|
300
298
|
const node_r12 = i0.ɵɵnextContext().node;
|
|
301
299
|
i0.ɵɵadvance();
|
|
302
|
-
i0.ɵɵ
|
|
300
|
+
i0.ɵɵrepeater(node_r12.lists);
|
|
303
301
|
} }
|
|
304
|
-
function
|
|
302
|
+
function ListsMyListsResource_ng_template_19_Conditional_4_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
305
303
|
i0.ɵɵelementContainer(0);
|
|
306
304
|
} }
|
|
307
|
-
function
|
|
308
|
-
i0.ɵɵ
|
|
309
|
-
i0.ɵɵtemplate(1, ListsMyListsResource_ng_template_19_ng_container_4_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 49);
|
|
310
|
-
i0.ɵɵelementContainerEnd();
|
|
305
|
+
function ListsMyListsResource_ng_template_19_Conditional_4_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
306
|
+
i0.ɵɵtemplate(0, ListsMyListsResource_ng_template_19_Conditional_4_For_1_ng_container_0_Template, 1, 0, "ng-container", 43);
|
|
311
307
|
} if (rf & 2) {
|
|
312
308
|
const child_r16 = ctx.$implicit;
|
|
313
309
|
const depth_r17 = i0.ɵɵnextContext(2).depth;
|
|
314
310
|
i0.ɵɵnextContext();
|
|
315
311
|
const categoryNodeTemplate_r8 = i0.ɵɵreference(20);
|
|
316
|
-
i0.ɵɵadvance();
|
|
317
312
|
i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTemplate_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r16, depth_r17 + 1));
|
|
318
313
|
} }
|
|
319
|
-
function
|
|
320
|
-
i0.ɵɵ
|
|
321
|
-
i0.ɵɵtemplate(1, ListsMyListsResource_ng_template_19_ng_container_4_ng_container_1_Template, 2, 5, "ng-container", 48);
|
|
322
|
-
i0.ɵɵelementContainerEnd();
|
|
314
|
+
function ListsMyListsResource_ng_template_19_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
315
|
+
i0.ɵɵrepeaterCreate(0, ListsMyListsResource_ng_template_19_Conditional_4_For_1_Template, 1, 5, "ng-container", null, i0.ɵɵrepeaterTrackByIdentity);
|
|
323
316
|
} if (rf & 2) {
|
|
324
317
|
const node_r12 = i0.ɵɵnextContext().node;
|
|
325
|
-
i0.ɵɵ
|
|
326
|
-
i0.ɵɵproperty("ngForOf", node_r12.children);
|
|
318
|
+
i0.ɵɵrepeater(node_r12.children);
|
|
327
319
|
} }
|
|
328
320
|
function ListsMyListsResource_ng_template_19_Template(rf, ctx) { if (rf & 1) {
|
|
329
|
-
i0.ɵɵelementStart(0, "div",
|
|
330
|
-
i0.ɵɵ
|
|
321
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
322
|
+
i0.ɵɵconditionalCreate(1, ListsMyListsResource_ng_template_19_Conditional_1_Template, 7, 6, "div", 63);
|
|
323
|
+
i0.ɵɵconditionalCreate(2, ListsMyListsResource_ng_template_19_Conditional_2_Template, 7, 3, "div", 64);
|
|
324
|
+
i0.ɵɵconditionalCreate(3, ListsMyListsResource_ng_template_19_Conditional_3_Template, 3, 0, "div", 65);
|
|
325
|
+
i0.ɵɵconditionalCreate(4, ListsMyListsResource_ng_template_19_Conditional_4_Template, 2, 0);
|
|
331
326
|
i0.ɵɵelementEnd();
|
|
332
327
|
} if (rf & 2) {
|
|
333
328
|
const node_r12 = ctx.node;
|
|
334
329
|
const depth_r17 = ctx.depth;
|
|
335
330
|
i0.ɵɵstyleProp("margin-left", depth_r17 * 20, "px");
|
|
336
331
|
i0.ɵɵadvance();
|
|
337
|
-
i0.ɵɵ
|
|
332
|
+
i0.ɵɵconditional(node_r12.category ? 1 : -1);
|
|
338
333
|
i0.ɵɵadvance();
|
|
339
|
-
i0.ɵɵ
|
|
334
|
+
i0.ɵɵconditional(!node_r12.category && node_r12.lists.length > 0 ? 2 : -1);
|
|
340
335
|
i0.ɵɵadvance();
|
|
341
|
-
i0.ɵɵ
|
|
336
|
+
i0.ɵɵconditional(node_r12.isExpanded ? 3 : -1);
|
|
342
337
|
i0.ɵɵadvance();
|
|
343
|
-
i0.ɵɵ
|
|
338
|
+
i0.ɵɵconditional(node_r12.isExpanded ? 4 : -1);
|
|
344
339
|
} }
|
|
345
|
-
function
|
|
340
|
+
function ListsMyListsResource_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
346
341
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
347
|
-
i0.ɵɵelementStart(0, "div",
|
|
348
|
-
i0.ɵɵlistener("click", function
|
|
342
|
+
i0.ɵɵelementStart(0, "div", 79);
|
|
343
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_21_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeContextMenu()); });
|
|
349
344
|
i0.ɵɵelementEnd();
|
|
350
345
|
} }
|
|
351
|
-
function
|
|
346
|
+
function ListsMyListsResource_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
352
347
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
353
|
-
i0.ɵɵelementStart(0, "div",
|
|
354
|
-
i0.ɵɵlistener("click", function
|
|
355
|
-
i0.ɵɵelement(2, "i",
|
|
348
|
+
i0.ɵɵelementStart(0, "div", 80)(1, "button", 81);
|
|
349
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_22_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.editList()); });
|
|
350
|
+
i0.ɵɵelement(2, "i", 82);
|
|
356
351
|
i0.ɵɵtext(3, " Edit ");
|
|
357
352
|
i0.ɵɵelementEnd();
|
|
358
|
-
i0.ɵɵelementStart(4, "button",
|
|
359
|
-
i0.ɵɵlistener("click", function
|
|
360
|
-
i0.ɵɵelement(5, "i",
|
|
353
|
+
i0.ɵɵelementStart(4, "button", 81);
|
|
354
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_22_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.duplicateList()); });
|
|
355
|
+
i0.ɵɵelement(5, "i", 83);
|
|
361
356
|
i0.ɵɵtext(6, " Duplicate ");
|
|
362
357
|
i0.ɵɵelementEnd();
|
|
363
|
-
i0.ɵɵelement(7, "div",
|
|
364
|
-
i0.ɵɵelementStart(8, "button",
|
|
365
|
-
i0.ɵɵlistener("click", function
|
|
366
|
-
i0.ɵɵelement(9, "i",
|
|
358
|
+
i0.ɵɵelement(7, "div", 84);
|
|
359
|
+
i0.ɵɵelementStart(8, "button", 85);
|
|
360
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_22_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.confirmDeleteList()); });
|
|
361
|
+
i0.ɵɵelement(9, "i", 86);
|
|
367
362
|
i0.ɵɵtext(10, " Delete ");
|
|
368
363
|
i0.ɵɵelementEnd()();
|
|
369
364
|
} if (rf & 2) {
|
|
370
365
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
371
366
|
i0.ɵɵstyleProp("top", ctx_r2.contextMenuY, "px")("left", ctx_r2.contextMenuX, "px");
|
|
372
367
|
} }
|
|
373
|
-
function
|
|
368
|
+
function ListsMyListsResource_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
374
369
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
375
|
-
i0.ɵɵelementStart(0, "div",
|
|
376
|
-
i0.ɵɵlistener("click", function
|
|
370
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
371
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_23_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
377
372
|
i0.ɵɵelementEnd();
|
|
378
373
|
} }
|
|
379
|
-
function
|
|
380
|
-
i0.ɵɵelementStart(0, "option",
|
|
374
|
+
function ListsMyListsResource_Conditional_24_For_28_Template(rf, ctx) { if (rf & 1) {
|
|
375
|
+
i0.ɵɵelementStart(0, "option", 97);
|
|
381
376
|
i0.ɵɵtext(1);
|
|
382
377
|
i0.ɵɵelementEnd();
|
|
383
378
|
} if (rf & 2) {
|
|
@@ -386,55 +381,55 @@ function ListsMyListsResource_div_24_option_27_Template(rf, ctx) { if (rf & 1) {
|
|
|
386
381
|
i0.ɵɵadvance();
|
|
387
382
|
i0.ɵɵtextInterpolate(cat_r23.displayName);
|
|
388
383
|
} }
|
|
389
|
-
function
|
|
390
|
-
i0.ɵɵelement(0, "i",
|
|
384
|
+
function ListsMyListsResource_Conditional_24_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
385
|
+
i0.ɵɵelement(0, "i", 100);
|
|
391
386
|
} }
|
|
392
|
-
function
|
|
387
|
+
function ListsMyListsResource_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
393
388
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
394
|
-
i0.ɵɵelementStart(0, "div",
|
|
389
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 88)(2, "h3");
|
|
395
390
|
i0.ɵɵtext(3);
|
|
396
391
|
i0.ɵɵelementEnd();
|
|
397
|
-
i0.ɵɵelementStart(4, "button",
|
|
398
|
-
i0.ɵɵlistener("click", function
|
|
392
|
+
i0.ɵɵelementStart(4, "button", 89);
|
|
393
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_24_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
399
394
|
i0.ɵɵelement(5, "i", 24);
|
|
400
395
|
i0.ɵɵelementEnd()();
|
|
401
|
-
i0.ɵɵelementStart(6, "div",
|
|
396
|
+
i0.ɵɵelementStart(6, "div", 90)(7, "div", 91)(8, "label");
|
|
402
397
|
i0.ɵɵtext(9, "Name *");
|
|
403
398
|
i0.ɵɵelementEnd();
|
|
404
|
-
i0.ɵɵelementStart(10, "input",
|
|
405
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
399
|
+
i0.ɵɵelementStart(10, "input", 92);
|
|
400
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_24_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListName, $event) || (ctx_r2.newListName = $event); return i0.ɵɵresetView($event); });
|
|
406
401
|
i0.ɵɵelementEnd()();
|
|
407
|
-
i0.ɵɵelementStart(11, "div",
|
|
402
|
+
i0.ɵɵelementStart(11, "div", 91)(12, "label");
|
|
408
403
|
i0.ɵɵtext(13, "Description");
|
|
409
404
|
i0.ɵɵelementEnd();
|
|
410
|
-
i0.ɵɵelementStart(14, "textarea",
|
|
411
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
405
|
+
i0.ɵɵelementStart(14, "textarea", 93);
|
|
406
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_24_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.newListDescription, $event) || (ctx_r2.newListDescription = $event); return i0.ɵɵresetView($event); });
|
|
412
407
|
i0.ɵɵelementEnd()();
|
|
413
|
-
i0.ɵɵelementStart(15, "div",
|
|
408
|
+
i0.ɵɵelementStart(15, "div", 91)(16, "label");
|
|
414
409
|
i0.ɵɵtext(17, "Entity *");
|
|
415
410
|
i0.ɵɵelementEnd();
|
|
416
|
-
i0.ɵɵelementStart(18, "div",
|
|
417
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
418
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
411
|
+
i0.ɵɵelementStart(18, "div", 94)(19, "input", 95, 1);
|
|
412
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_24_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.entitySearchTerm, $event) || (ctx_r2.entitySearchTerm = $event); return i0.ɵɵresetView($event); });
|
|
413
|
+
i0.ɵɵlistener("ngModelChange", function ListsMyListsResource_Conditional_24_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.filterEntities($event)); })("focus", function ListsMyListsResource_Conditional_24_Template_input_focus_19_listener() { i0.ɵɵrestoreView(_r21); const entityInput_r22 = i0.ɵɵreference(20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.openEntityDropdown(entityInput_r22)); });
|
|
419
414
|
i0.ɵɵelementEnd()()();
|
|
420
|
-
i0.ɵɵelementStart(21, "div",
|
|
415
|
+
i0.ɵɵelementStart(21, "div", 91)(22, "label");
|
|
421
416
|
i0.ɵɵtext(23, "Category");
|
|
422
417
|
i0.ɵɵelementEnd();
|
|
423
|
-
i0.ɵɵelementStart(24, "select",
|
|
424
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
425
|
-
i0.ɵɵelementStart(25, "option",
|
|
418
|
+
i0.ɵɵelementStart(24, "select", 96);
|
|
419
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Conditional_24_Template_select_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.selectedCategoryId, $event) || (ctx_r2.selectedCategoryId = $event); return i0.ɵɵresetView($event); });
|
|
420
|
+
i0.ɵɵelementStart(25, "option", 97);
|
|
426
421
|
i0.ɵɵtext(26, "No category");
|
|
427
422
|
i0.ɵɵelementEnd();
|
|
428
|
-
i0.ɵɵ
|
|
423
|
+
i0.ɵɵrepeaterCreate(27, ListsMyListsResource_Conditional_24_For_28_Template, 2, 2, "option", 97, i0.ɵɵrepeaterTrackByIdentity);
|
|
429
424
|
i0.ɵɵelementEnd()()();
|
|
430
|
-
i0.ɵɵelementStart(
|
|
431
|
-
i0.ɵɵlistener("click", function
|
|
432
|
-
i0.ɵɵ
|
|
433
|
-
i0.ɵɵtext(
|
|
425
|
+
i0.ɵɵelementStart(29, "div", 98)(30, "button", 99);
|
|
426
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_24_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.saveList()); });
|
|
427
|
+
i0.ɵɵconditionalCreate(31, ListsMyListsResource_Conditional_24_Conditional_31_Template, 1, 0, "i", 100);
|
|
428
|
+
i0.ɵɵtext(32);
|
|
434
429
|
i0.ɵɵelementEnd();
|
|
435
|
-
i0.ɵɵelementStart(
|
|
436
|
-
i0.ɵɵlistener("click", function
|
|
437
|
-
i0.ɵɵtext(
|
|
430
|
+
i0.ɵɵelementStart(33, "button", 101);
|
|
431
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_24_Template_button_click_33_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeCreateDialog()); });
|
|
432
|
+
i0.ɵɵtext(34, "Cancel");
|
|
438
433
|
i0.ɵɵelementEnd()()();
|
|
439
434
|
} if (rf & 2) {
|
|
440
435
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -452,51 +447,51 @@ function ListsMyListsResource_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
|
452
447
|
i0.ɵɵadvance();
|
|
453
448
|
i0.ɵɵproperty("ngValue", null);
|
|
454
449
|
i0.ɵɵadvance(2);
|
|
455
|
-
i0.ɵɵ
|
|
456
|
-
i0.ɵɵadvance(
|
|
450
|
+
i0.ɵɵrepeater(ctx_r2.flatCategories);
|
|
451
|
+
i0.ɵɵadvance(3);
|
|
457
452
|
i0.ɵɵproperty("disabled", !ctx_r2.newListName || !ctx_r2.selectedEntityId || ctx_r2.isSaving);
|
|
458
453
|
i0.ɵɵadvance();
|
|
459
|
-
i0.ɵɵ
|
|
454
|
+
i0.ɵɵconditional(ctx_r2.isSaving ? 31 : -1);
|
|
460
455
|
i0.ɵɵadvance();
|
|
461
456
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.isSaving ? "Saving..." : ctx_r2.editingList ? "Save" : "Create", " ");
|
|
462
457
|
i0.ɵɵadvance();
|
|
463
458
|
i0.ɵɵproperty("disabled", ctx_r2.isSaving);
|
|
464
459
|
} }
|
|
465
|
-
function
|
|
460
|
+
function ListsMyListsResource_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
466
461
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
467
|
-
i0.ɵɵelementStart(0, "div",
|
|
468
|
-
i0.ɵɵlistener("click", function
|
|
462
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
463
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_25_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
469
464
|
i0.ɵɵelementEnd();
|
|
470
465
|
} }
|
|
471
|
-
function
|
|
472
|
-
i0.ɵɵelement(0, "i",
|
|
466
|
+
function ListsMyListsResource_Conditional_26_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
467
|
+
i0.ɵɵelement(0, "i", 100);
|
|
473
468
|
} }
|
|
474
|
-
function
|
|
469
|
+
function ListsMyListsResource_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
475
470
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
476
|
-
i0.ɵɵelementStart(0, "div",
|
|
471
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "div", 88)(2, "h3");
|
|
477
472
|
i0.ɵɵtext(3, "Delete List");
|
|
478
473
|
i0.ɵɵelementEnd();
|
|
479
|
-
i0.ɵɵelementStart(4, "button",
|
|
480
|
-
i0.ɵɵlistener("click", function
|
|
474
|
+
i0.ɵɵelementStart(4, "button", 89);
|
|
475
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_26_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
481
476
|
i0.ɵɵelement(5, "i", 24);
|
|
482
477
|
i0.ɵɵelementEnd()();
|
|
483
|
-
i0.ɵɵelementStart(6, "div",
|
|
478
|
+
i0.ɵɵelementStart(6, "div", 90)(7, "p");
|
|
484
479
|
i0.ɵɵtext(8, "Are you sure you want to delete \"");
|
|
485
480
|
i0.ɵɵelementStart(9, "strong");
|
|
486
481
|
i0.ɵɵtext(10);
|
|
487
482
|
i0.ɵɵelementEnd();
|
|
488
483
|
i0.ɵɵtext(11, "\"?");
|
|
489
484
|
i0.ɵɵelementEnd();
|
|
490
|
-
i0.ɵɵelementStart(12, "p",
|
|
485
|
+
i0.ɵɵelementStart(12, "p", 102);
|
|
491
486
|
i0.ɵɵtext(13, "This will also remove all items in the list.");
|
|
492
487
|
i0.ɵɵelementEnd()();
|
|
493
|
-
i0.ɵɵelementStart(14, "div",
|
|
494
|
-
i0.ɵɵlistener("click", function
|
|
495
|
-
i0.ɵɵ
|
|
488
|
+
i0.ɵɵelementStart(14, "div", 98)(15, "button", 103);
|
|
489
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_26_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteList()); });
|
|
490
|
+
i0.ɵɵconditionalCreate(16, ListsMyListsResource_Conditional_26_Conditional_16_Template, 1, 0, "i", 100);
|
|
496
491
|
i0.ɵɵtext(17);
|
|
497
492
|
i0.ɵɵelementEnd();
|
|
498
|
-
i0.ɵɵelementStart(18, "button",
|
|
499
|
-
i0.ɵɵlistener("click", function
|
|
493
|
+
i0.ɵɵelementStart(18, "button", 104);
|
|
494
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_26_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.cancelDelete()); });
|
|
500
495
|
i0.ɵɵtext(19, "Cancel");
|
|
501
496
|
i0.ɵɵelementEnd()()();
|
|
502
497
|
} if (rf & 2) {
|
|
@@ -504,14 +499,14 @@ function ListsMyListsResource_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
|
504
499
|
i0.ɵɵadvance(10);
|
|
505
500
|
i0.ɵɵtextInterpolate(ctx_r2.deleteListName);
|
|
506
501
|
i0.ɵɵadvance(6);
|
|
507
|
-
i0.ɵɵ
|
|
502
|
+
i0.ɵɵconditional(ctx_r2.isDeleting ? 16 : -1);
|
|
508
503
|
i0.ɵɵadvance();
|
|
509
504
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.isDeleting ? "Deleting..." : "Delete", " ");
|
|
510
505
|
} }
|
|
511
|
-
function
|
|
506
|
+
function ListsMyListsResource_Conditional_27_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
512
507
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
513
|
-
i0.ɵɵelementStart(0, "div",
|
|
514
|
-
i0.ɵɵlistener("click", function
|
|
508
|
+
i0.ɵɵelementStart(0, "div", 110);
|
|
509
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_27_For_4_Template_div_click_0_listener() { const entity_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.selectEntity(entity_r28)); });
|
|
515
510
|
i0.ɵɵtext(1);
|
|
516
511
|
i0.ɵɵelementEnd();
|
|
517
512
|
} if (rf & 2) {
|
|
@@ -519,18 +514,19 @@ function ListsMyListsResource_div_27_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
519
514
|
i0.ɵɵadvance();
|
|
520
515
|
i0.ɵɵtextInterpolate1(" ", entity_r28.Name, " ");
|
|
521
516
|
} }
|
|
522
|
-
function
|
|
523
|
-
i0.ɵɵelementStart(0, "div",
|
|
517
|
+
function ListsMyListsResource_Conditional_27_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
518
|
+
i0.ɵɵelementStart(0, "div", 109);
|
|
524
519
|
i0.ɵɵtext(1, " No entities found ");
|
|
525
520
|
i0.ɵɵelementEnd();
|
|
526
521
|
} }
|
|
527
|
-
function
|
|
522
|
+
function ListsMyListsResource_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
528
523
|
const _r26 = i0.ɵɵgetCurrentView();
|
|
529
|
-
i0.ɵɵelementStart(0, "div",
|
|
530
|
-
i0.ɵɵlistener("click", function
|
|
524
|
+
i0.ɵɵelementStart(0, "div", 105)(1, "div", 106);
|
|
525
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_Conditional_27_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeEntityDropdown()); });
|
|
531
526
|
i0.ɵɵelementEnd();
|
|
532
|
-
i0.ɵɵelementStart(2, "div",
|
|
533
|
-
i0.ɵɵ
|
|
527
|
+
i0.ɵɵelementStart(2, "div", 107);
|
|
528
|
+
i0.ɵɵrepeaterCreate(3, ListsMyListsResource_Conditional_27_For_4_Template, 2, 1, "div", 108, i0.ɵɵrepeaterTrackByIdentity);
|
|
529
|
+
i0.ɵɵconditionalCreate(5, ListsMyListsResource_Conditional_27_Conditional_5_Template, 2, 0, "div", 109);
|
|
534
530
|
i0.ɵɵelementEnd()();
|
|
535
531
|
} if (rf & 2) {
|
|
536
532
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -539,13 +535,10 @@ function ListsMyListsResource_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
|
539
535
|
i0.ɵɵadvance(2);
|
|
540
536
|
i0.ɵɵclassProp("open-above", ctx_r2.entityDropdownPosition.openAbove);
|
|
541
537
|
i0.ɵɵadvance();
|
|
542
|
-
i0.ɵɵ
|
|
543
|
-
i0.ɵɵadvance();
|
|
544
|
-
i0.ɵɵ
|
|
538
|
+
i0.ɵɵrepeater(ctx_r2.filteredEntities);
|
|
539
|
+
i0.ɵɵadvance(2);
|
|
540
|
+
i0.ɵɵconditional(ctx_r2.filteredEntities.length === 0 ? 5 : -1);
|
|
545
541
|
} }
|
|
546
|
-
export function LoadListsMyListsResource() {
|
|
547
|
-
// simple tree shaker prevention
|
|
548
|
-
}
|
|
549
542
|
let ListsMyListsResource = class ListsMyListsResource extends BaseResourceComponent {
|
|
550
543
|
cdr;
|
|
551
544
|
tabService;
|
|
@@ -1044,8 +1037,8 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
1044
1037
|
}
|
|
1045
1038
|
static ɵfac = function ListsMyListsResource_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ListsMyListsResource)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.TabService), i0.ɵɵdirectiveInject(i2.MJNotificationService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
1046
1039
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListsMyListsResource, selectors: [["mj-lists-my-lists-resource"]], hostBindings: function ListsMyListsResource_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1047
|
-
i0.ɵɵlistener("click", function ListsMyListsResource_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); },
|
|
1048
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 28, vars: 13, consts: [["categoryNodeTemplate", ""], ["entityInput", ""], [1, "lists-my-lists-container"], [1, "lists-header"], [1, "header-title"], [1, "fa-solid", "fa-list-check"], [1, "header-actions"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists...", 3, "ngModelChange", "ngModel"], [
|
|
1040
|
+
i0.ɵɵlistener("click", function ListsMyListsResource_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); }, i0.ɵɵresolveDocument)("keydown.escape", function ListsMyListsResource_keydown_escape_HostBindingHandler() { return ctx.onEscapeKey(); }, i0.ɵɵresolveDocument);
|
|
1041
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 28, vars: 13, consts: [["categoryNodeTemplate", ""], ["entityInput", ""], [1, "lists-my-lists-container"], [1, "lists-header"], [1, "header-title"], [1, "fa-solid", "fa-list-check"], [1, "header-actions"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search lists...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "btn-create", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "loading-container"], [1, "empty-state"], [1, "empty-state", "search-empty"], [1, "lists-content"], [1, "context-menu-overlay"], [1, "context-menu", 3, "top", "left"], [1, "modal-overlay"], [1, "modal-dialog"], [1, "modal-dialog", "confirm-dialog"], [1, "entity-dropdown-portal", 3, "top", "left", "width", "dropdown-above"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], ["text", "Loading lists...", "size", "medium"], [1, "empty-state-icon-wrapper"], [1, "icon-bg"], [1, "empty-state-features"], [1, "feature-item"], [1, "fa-solid", "fa-check-circle"], [1, "btn-create-large", 3, "click"], [1, "empty-state-icon-wrapper", "search"], [1, "empty-hint"], [1, "btn-clear", 3, "click"], [1, "view-controls"], ["title", "Grid view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List view", 1, "view-toggle", 3, "click"], [1, "fa-solid", "fa-list"], [1, "list-count"], [1, "category-tree"], ["role", "list", "aria-label", "My Lists", 1, "lists-grid"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["tabindex", "0", "role", "listitem", 1, "list-card"], ["tabindex", "0", "role", "listitem", 1, "list-card", 3, "click", "keydown.enter", "keydown.space"], [1, "card-header"], ["aria-hidden", "true", 1, "card-icon"], [1, "card-menu"], [1, "menu-btn", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-ellipsis-v"], [1, "card-body"], [1, "card-title"], [1, "card-description"], [1, "card-meta"], [1, "meta-item"], [1, "fa-solid", "fa-database"], [1, "fa-solid", "fa-hashtag"], [1, "card-footer"], [1, "category-tag"], [1, "date-info"], [1, "fa-solid", "fa-folder"], [1, "category-section"], [1, "category-header"], [1, "category-header", "uncategorized"], ["role", "list", 1, "category-lists"], [1, "category-header", 3, "click"], [1, "category-name"], [1, "category-count"], [1, "category-header", "uncategorized", 3, "click"], [1, "fa-solid", "fa-inbox"], ["tabindex", "0", "role", "listitem", 1, "list-row"], ["tabindex", "0", "role", "listitem", 1, "list-row", 3, "click", "keydown.enter", "keydown.space"], ["aria-hidden", "true", 1, "list-icon"], [1, "list-info"], [1, "list-name"], [1, "list-meta"], [1, "list-actions"], [1, "action-btn", 3, "click"], [1, "context-menu-overlay", 3, "click"], [1, "context-menu"], [1, "menu-item", 3, "click"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-copy"], [1, "menu-divider"], [1, "menu-item", "danger", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "modal-overlay", 3, "click"], [1, "modal-header"], [1, "modal-close", 3, "click"], [1, "modal-body"], [1, "form-group"], ["type", "text", "placeholder", "Enter list name", 1, "form-input", 3, "ngModelChange", "ngModel"], ["placeholder", "Optional description", "rows", "3", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "custom-select-wrapper"], ["type", "text", "placeholder", "Search and select an entity", 1, "form-input", 3, "ngModelChange", "focus", "ngModel", "disabled"], [1, "form-input", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [1, "modal-footer"], [1, "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "btn-secondary", 3, "click", "disabled"], [1, "warning-text"], [1, "btn-danger", 3, "click"], [1, "btn-secondary", 3, "click"], [1, "entity-dropdown-portal"], [1, "entity-dropdown-backdrop", 3, "click"], [1, "entity-dropdown-content"], [1, "dropdown-item"], [1, "dropdown-empty"], [1, "dropdown-item", 3, "click"]], template: function ListsMyListsResource_Template(rf, ctx) { if (rf & 1) {
|
|
1049
1042
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1050
1043
|
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4);
|
|
1051
1044
|
i0.ɵɵelement(3, "i", 5);
|
|
@@ -1058,7 +1051,7 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
1058
1051
|
i0.ɵɵtwoWayListener("ngModelChange", function ListsMyListsResource_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.searchTerm, $event) || (ctx.searchTerm = $event); return i0.ɵɵresetView($event); });
|
|
1059
1052
|
i0.ɵɵlistener("ngModelChange", function ListsMyListsResource_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSearchChange($event)); });
|
|
1060
1053
|
i0.ɵɵelementEnd();
|
|
1061
|
-
i0.ɵɵ
|
|
1054
|
+
i0.ɵɵconditionalCreate(10, ListsMyListsResource_Conditional_10_Template, 2, 0, "button", 10);
|
|
1062
1055
|
i0.ɵɵelementEnd();
|
|
1063
1056
|
i0.ɵɵelementStart(11, "button", 11);
|
|
1064
1057
|
i0.ɵɵlistener("click", function ListsMyListsResource_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.createNewList()); });
|
|
@@ -1066,36 +1059,47 @@ let ListsMyListsResource = class ListsMyListsResource extends BaseResourceCompon
|
|
|
1066
1059
|
i0.ɵɵelementStart(13, "span");
|
|
1067
1060
|
i0.ɵɵtext(14, "New List");
|
|
1068
1061
|
i0.ɵɵelementEnd()()()();
|
|
1069
|
-
i0.ɵɵ
|
|
1062
|
+
i0.ɵɵconditionalCreate(15, ListsMyListsResource_Conditional_15_Template, 2, 0, "div", 13);
|
|
1063
|
+
i0.ɵɵconditionalCreate(16, ListsMyListsResource_Conditional_16_Template, 24, 0, "div", 14);
|
|
1064
|
+
i0.ɵɵconditionalCreate(17, ListsMyListsResource_Conditional_17_Template, 14, 1, "div", 15);
|
|
1065
|
+
i0.ɵɵconditionalCreate(18, ListsMyListsResource_Conditional_18_Template, 10, 8, "div", 16);
|
|
1066
|
+
i0.ɵɵtemplate(19, ListsMyListsResource_ng_template_19_Template, 5, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1067
|
+
i0.ɵɵconditionalCreate(21, ListsMyListsResource_Conditional_21_Template, 1, 0, "div", 17);
|
|
1068
|
+
i0.ɵɵconditionalCreate(22, ListsMyListsResource_Conditional_22_Template, 11, 4, "div", 18);
|
|
1069
|
+
i0.ɵɵconditionalCreate(23, ListsMyListsResource_Conditional_23_Template, 1, 0, "div", 19);
|
|
1070
|
+
i0.ɵɵconditionalCreate(24, ListsMyListsResource_Conditional_24_Template, 35, 11, "div", 20);
|
|
1071
|
+
i0.ɵɵconditionalCreate(25, ListsMyListsResource_Conditional_25_Template, 1, 0, "div", 19);
|
|
1072
|
+
i0.ɵɵconditionalCreate(26, ListsMyListsResource_Conditional_26_Template, 20, 3, "div", 21);
|
|
1073
|
+
i0.ɵɵconditionalCreate(27, ListsMyListsResource_Conditional_27_Template, 6, 11, "div", 22);
|
|
1070
1074
|
i0.ɵɵelementEnd();
|
|
1071
1075
|
} if (rf & 2) {
|
|
1072
1076
|
i0.ɵɵadvance(9);
|
|
1073
1077
|
i0.ɵɵtwoWayProperty("ngModel", ctx.searchTerm);
|
|
1074
1078
|
i0.ɵɵadvance();
|
|
1075
|
-
i0.ɵɵ
|
|
1079
|
+
i0.ɵɵconditional(ctx.searchTerm ? 10 : -1);
|
|
1076
1080
|
i0.ɵɵadvance(5);
|
|
1077
|
-
i0.ɵɵ
|
|
1081
|
+
i0.ɵɵconditional(ctx.isLoading ? 15 : -1);
|
|
1078
1082
|
i0.ɵɵadvance();
|
|
1079
|
-
i0.ɵɵ
|
|
1083
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.filteredLists.length === 0 && !ctx.searchTerm ? 16 : -1);
|
|
1080
1084
|
i0.ɵɵadvance();
|
|
1081
|
-
i0.ɵɵ
|
|
1085
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.filteredLists.length === 0 && ctx.searchTerm ? 17 : -1);
|
|
1082
1086
|
i0.ɵɵadvance();
|
|
1083
|
-
i0.ɵɵ
|
|
1087
|
+
i0.ɵɵconditional(!ctx.isLoading && ctx.filteredLists.length > 0 ? 18 : -1);
|
|
1084
1088
|
i0.ɵɵadvance(3);
|
|
1085
|
-
i0.ɵɵ
|
|
1089
|
+
i0.ɵɵconditional(ctx.showContextMenu ? 21 : -1);
|
|
1086
1090
|
i0.ɵɵadvance();
|
|
1087
|
-
i0.ɵɵ
|
|
1091
|
+
i0.ɵɵconditional(ctx.showContextMenu ? 22 : -1);
|
|
1088
1092
|
i0.ɵɵadvance();
|
|
1089
|
-
i0.ɵɵ
|
|
1093
|
+
i0.ɵɵconditional(ctx.showCreateDialog ? 23 : -1);
|
|
1090
1094
|
i0.ɵɵadvance();
|
|
1091
|
-
i0.ɵɵ
|
|
1095
|
+
i0.ɵɵconditional(ctx.showCreateDialog ? 24 : -1);
|
|
1092
1096
|
i0.ɵɵadvance();
|
|
1093
|
-
i0.ɵɵ
|
|
1097
|
+
i0.ɵɵconditional(ctx.showDeleteConfirm ? 25 : -1);
|
|
1094
1098
|
i0.ɵɵadvance();
|
|
1095
|
-
i0.ɵɵ
|
|
1099
|
+
i0.ɵɵconditional(ctx.showDeleteConfirm ? 26 : -1);
|
|
1096
1100
|
i0.ɵɵadvance();
|
|
1097
|
-
i0.ɵɵ
|
|
1098
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgModel, i5.LoadingComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-my-lists-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .lists-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 250px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n }\n\n .clear-search:hover {\n color: #666;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .search-empty .empty-state-icon-wrapper {\n margin-bottom: 20px;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .lists-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .view-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .view-toggle {\n padding: 8px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 4px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n border-color: #2196F3;\n color: white;\n }\n\n .list-count {\n margin-left: auto;\n color: #999;\n font-size: 14px;\n }\n\n /* Grid View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .category-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n background: #e8f4fd;\n padding: 2px 8px;\n border-radius: 4px;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Category Tree */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .list-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e3f2fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-name {\n display: block;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .list-row:hover .action-btn {\n opacity: 1;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Context Menu (native) */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown - Fixed positioning to escape modal z-index */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002; /* Above modal (1001) */\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .lists-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n }\n\n .header-actions {\n flex-direction: column;\n }\n\n .search-box input {\n width: 100%;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "], encapsulation: 2 });
|
|
1101
|
+
i0.ɵɵconditional(ctx.showEntityDropdown && !ctx.editingList ? 27 : -1);
|
|
1102
|
+
} }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgModel, i5.LoadingComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-my-lists-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .lists-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 250px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n }\n\n .clear-search:hover {\n color: #666;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .search-empty .empty-state-icon-wrapper {\n margin-bottom: 20px;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .lists-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .view-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .view-toggle {\n padding: 8px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 4px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n border-color: #2196F3;\n color: white;\n }\n\n .list-count {\n margin-left: auto;\n color: #999;\n font-size: 14px;\n }\n\n /* Grid View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .category-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n background: #e8f4fd;\n padding: 2px 8px;\n border-radius: 4px;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Category Tree */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .list-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e3f2fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-name {\n display: block;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .list-row:hover .action-btn {\n opacity: 1;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Context Menu (native) */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown - Fixed positioning to escape modal z-index */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002; /* Above modal (1001) */\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .lists-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n }\n\n .header-actions {\n flex-direction: column;\n }\n\n .search-box input {\n width: 100%;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "], encapsulation: 2 });
|
|
1099
1103
|
};
|
|
1100
1104
|
ListsMyListsResource = __decorate([
|
|
1101
1105
|
RegisterClass(BaseResourceComponent, 'ListsMyListsResource')
|
|
@@ -1103,7 +1107,7 @@ ListsMyListsResource = __decorate([
|
|
|
1103
1107
|
export { ListsMyListsResource };
|
|
1104
1108
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListsMyListsResource, [{
|
|
1105
1109
|
type: Component,
|
|
1106
|
-
args: [{ selector: 'mj-lists-my-lists-resource', template: `
|
|
1110
|
+
args: [{ standalone: false, selector: 'mj-lists-my-lists-resource', template: `
|
|
1107
1111
|
<div class="lists-my-lists-container">
|
|
1108
1112
|
<!-- Header -->
|
|
1109
1113
|
<div class="lists-header">
|
|
@@ -1119,9 +1123,11 @@ export { ListsMyListsResource };
|
|
|
1119
1123
|
placeholder="Search lists..."
|
|
1120
1124
|
[(ngModel)]="searchTerm"
|
|
1121
1125
|
(ngModelChange)="onSearchChange($event)" />
|
|
1122
|
-
|
|
1123
|
-
<
|
|
1124
|
-
|
|
1126
|
+
@if (searchTerm) {
|
|
1127
|
+
<button class="clear-search" (click)="clearSearch()">
|
|
1128
|
+
<i class="fa-solid fa-times"></i>
|
|
1129
|
+
</button>
|
|
1130
|
+
}
|
|
1125
1131
|
</div>
|
|
1126
1132
|
<button class="btn-create" (click)="createNewList()">
|
|
1127
1133
|
<i class="fa-solid fa-plus"></i>
|
|
@@ -1129,308 +1135,350 @@ export { ListsMyListsResource };
|
|
|
1129
1135
|
</button>
|
|
1130
1136
|
</div>
|
|
1131
1137
|
</div>
|
|
1132
|
-
|
|
1138
|
+
|
|
1133
1139
|
<!-- Loading State -->
|
|
1134
|
-
|
|
1135
|
-
<
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
<!-- Empty State -->
|
|
1139
|
-
<div class="empty-state" *ngIf="!isLoading && filteredLists.length === 0 && !searchTerm">
|
|
1140
|
-
<div class="empty-state-icon-wrapper">
|
|
1141
|
-
<div class="icon-bg"></div>
|
|
1142
|
-
<i class="fa-solid fa-list-check"></i>
|
|
1140
|
+
@if (isLoading) {
|
|
1141
|
+
<div class="loading-container">
|
|
1142
|
+
<mj-loading text="Loading lists..." size="medium"></mj-loading>
|
|
1143
1143
|
</div>
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
<i class="fa-solid fa-check-circle"></i>
|
|
1153
|
-
<span>Organize with categories</span>
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
<!-- Empty State -->
|
|
1147
|
+
@if (!isLoading && filteredLists.length === 0 && !searchTerm) {
|
|
1148
|
+
<div class="empty-state">
|
|
1149
|
+
<div class="empty-state-icon-wrapper">
|
|
1150
|
+
<div class="icon-bg"></div>
|
|
1151
|
+
<i class="fa-solid fa-list-check"></i>
|
|
1154
1152
|
</div>
|
|
1155
|
-
<
|
|
1156
|
-
|
|
1157
|
-
|
|
1153
|
+
<h3>No Lists Yet</h3>
|
|
1154
|
+
<p>Lists help you organize and track groups of records across your data.</p>
|
|
1155
|
+
<div class="empty-state-features">
|
|
1156
|
+
<div class="feature-item">
|
|
1157
|
+
<i class="fa-solid fa-check-circle"></i>
|
|
1158
|
+
<span>Group records from any entity</span>
|
|
1159
|
+
</div>
|
|
1160
|
+
<div class="feature-item">
|
|
1161
|
+
<i class="fa-solid fa-check-circle"></i>
|
|
1162
|
+
<span>Organize with categories</span>
|
|
1163
|
+
</div>
|
|
1164
|
+
<div class="feature-item">
|
|
1165
|
+
<i class="fa-solid fa-check-circle"></i>
|
|
1166
|
+
<span>Quick access from any view</span>
|
|
1167
|
+
</div>
|
|
1158
1168
|
</div>
|
|
1169
|
+
<button class="btn-create-large" (click)="createNewList()">
|
|
1170
|
+
<i class="fa-solid fa-plus"></i>
|
|
1171
|
+
Create Your First List
|
|
1172
|
+
</button>
|
|
1159
1173
|
</div>
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
Create Your First List
|
|
1163
|
-
</button>
|
|
1164
|
-
</div>
|
|
1165
|
-
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1166
1176
|
<!-- No Results State -->
|
|
1167
|
-
|
|
1168
|
-
<div class="empty-state
|
|
1169
|
-
<
|
|
1177
|
+
@if (!isLoading && filteredLists.length === 0 && searchTerm) {
|
|
1178
|
+
<div class="empty-state search-empty">
|
|
1179
|
+
<div class="empty-state-icon-wrapper search">
|
|
1180
|
+
<i class="fa-solid fa-search"></i>
|
|
1181
|
+
</div>
|
|
1182
|
+
<h3>No Results Found</h3>
|
|
1183
|
+
<p>No lists match "<strong>{{searchTerm}}</strong>"</p>
|
|
1184
|
+
<p class="empty-hint">Try a different search term or clear your search.</p>
|
|
1185
|
+
<button class="btn-clear" (click)="clearSearch()">Clear Search</button>
|
|
1170
1186
|
</div>
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
<p class="empty-hint">Try a different search term or clear your search.</p>
|
|
1174
|
-
<button class="btn-clear" (click)="clearSearch()">Clear Search</button>
|
|
1175
|
-
</div>
|
|
1176
|
-
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1177
1189
|
<!-- Lists Grid -->
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
<
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
<!-- Grid View -->
|
|
1206
|
-
<div class="lists-grid" *ngIf="viewMode === 'grid'" role="list" aria-label="My Lists">
|
|
1207
|
-
<div
|
|
1208
|
-
class="list-card"
|
|
1209
|
-
*ngFor="let item of filteredLists"
|
|
1210
|
-
(click)="openList(item.list)"
|
|
1211
|
-
(keydown.enter)="openList(item.list)"
|
|
1212
|
-
(keydown.space)="openList(item.list); $event.preventDefault()"
|
|
1213
|
-
tabindex="0"
|
|
1214
|
-
role="listitem"
|
|
1215
|
-
[attr.aria-label]="item.list.Name + ' - ' + item.entityName + ' - ' + item.itemCount + ' items'">
|
|
1216
|
-
<div class="card-header">
|
|
1217
|
-
<div class="card-icon" [style.background-color]="getEntityColor(item.list.Entity)" aria-hidden="true">
|
|
1218
|
-
<i [class]="getEntityIcon(item.list.Entity)"></i>
|
|
1219
|
-
</div>
|
|
1220
|
-
<div class="card-menu">
|
|
1221
|
-
<button class="menu-btn" (click)="openListMenu($event, item.list)" [attr.aria-label]="'More options for ' + item.list.Name">
|
|
1222
|
-
<i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
|
|
1223
|
-
</button>
|
|
1224
|
-
</div>
|
|
1225
|
-
</div>
|
|
1226
|
-
<div class="card-body">
|
|
1227
|
-
<h3 class="card-title">{{item.list.Name}}</h3>
|
|
1228
|
-
<p class="card-description" *ngIf="item.list.Description">{{item.list.Description}}</p>
|
|
1229
|
-
<div class="card-meta">
|
|
1230
|
-
<span class="meta-item">
|
|
1231
|
-
<i class="fa-solid fa-database"></i>
|
|
1232
|
-
{{item.entityName}}
|
|
1233
|
-
</span>
|
|
1234
|
-
<span class="meta-item">
|
|
1235
|
-
<i class="fa-solid fa-hashtag"></i>
|
|
1236
|
-
{{item.itemCount}} item{{item.itemCount !== 1 ? 's' : ''}}
|
|
1237
|
-
</span>
|
|
1238
|
-
</div>
|
|
1190
|
+
@if (!isLoading && filteredLists.length > 0) {
|
|
1191
|
+
<div class="lists-content">
|
|
1192
|
+
<!-- View Toggle -->
|
|
1193
|
+
<div class="view-controls">
|
|
1194
|
+
<button
|
|
1195
|
+
class="view-toggle"
|
|
1196
|
+
[class.active]="viewMode === 'grid'"
|
|
1197
|
+
(click)="viewMode = 'grid'"
|
|
1198
|
+
title="Grid view">
|
|
1199
|
+
<i class="fa-solid fa-grip"></i>
|
|
1200
|
+
</button>
|
|
1201
|
+
<button
|
|
1202
|
+
class="view-toggle"
|
|
1203
|
+
[class.active]="viewMode === 'list'"
|
|
1204
|
+
(click)="viewMode = 'list'"
|
|
1205
|
+
title="List view">
|
|
1206
|
+
<i class="fa-solid fa-list"></i>
|
|
1207
|
+
</button>
|
|
1208
|
+
<span class="list-count">{{filteredLists.length}} list{{filteredLists.length !== 1 ? 's' : ''}}</span>
|
|
1209
|
+
</div>
|
|
1210
|
+
<!-- Category Tree View -->
|
|
1211
|
+
@if (viewMode === 'list') {
|
|
1212
|
+
<div class="category-tree">
|
|
1213
|
+
@for (node of categoryTree; track node) {
|
|
1214
|
+
<ng-container *ngTemplateOutlet="categoryNodeTemplate; context: { node: node, depth: 0 }"></ng-container>
|
|
1215
|
+
}
|
|
1239
1216
|
</div>
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1217
|
+
}
|
|
1218
|
+
<!-- Grid View -->
|
|
1219
|
+
@if (viewMode === 'grid') {
|
|
1220
|
+
<div class="lists-grid" role="list" aria-label="My Lists">
|
|
1221
|
+
@for (item of filteredLists; track item) {
|
|
1222
|
+
<div
|
|
1223
|
+
class="list-card"
|
|
1224
|
+
(click)="openList(item.list)"
|
|
1225
|
+
(keydown.enter)="openList(item.list)"
|
|
1226
|
+
(keydown.space)="openList(item.list); $event.preventDefault()"
|
|
1227
|
+
tabindex="0"
|
|
1228
|
+
role="listitem"
|
|
1229
|
+
[attr.aria-label]="item.list.Name + ' - ' + item.entityName + ' - ' + item.itemCount + ' items'">
|
|
1230
|
+
<div class="card-header">
|
|
1231
|
+
<div class="card-icon" [style.background-color]="getEntityColor(item.list.Entity)" aria-hidden="true">
|
|
1232
|
+
<i [class]="getEntityIcon(item.list.Entity)"></i>
|
|
1233
|
+
</div>
|
|
1234
|
+
<div class="card-menu">
|
|
1235
|
+
<button class="menu-btn" (click)="openListMenu($event, item.list)" [attr.aria-label]="'More options for ' + item.list.Name">
|
|
1236
|
+
<i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
|
|
1237
|
+
</button>
|
|
1238
|
+
</div>
|
|
1239
|
+
</div>
|
|
1240
|
+
<div class="card-body">
|
|
1241
|
+
<h3 class="card-title">{{item.list.Name}}</h3>
|
|
1242
|
+
@if (item.list.Description) {
|
|
1243
|
+
<p class="card-description">{{item.list.Description}}</p>
|
|
1244
|
+
}
|
|
1245
|
+
<div class="card-meta">
|
|
1246
|
+
<span class="meta-item">
|
|
1247
|
+
<i class="fa-solid fa-database"></i>
|
|
1248
|
+
{{item.entityName}}
|
|
1249
|
+
</span>
|
|
1250
|
+
<span class="meta-item">
|
|
1251
|
+
<i class="fa-solid fa-hashtag"></i>
|
|
1252
|
+
{{item.itemCount}} item{{item.itemCount !== 1 ? 's' : ''}}
|
|
1253
|
+
</span>
|
|
1254
|
+
</div>
|
|
1255
|
+
</div>
|
|
1256
|
+
<div class="card-footer">
|
|
1257
|
+
@if (item.list.CategoryID) {
|
|
1258
|
+
<span class="category-tag">
|
|
1259
|
+
<i class="fa-solid fa-folder"></i>
|
|
1260
|
+
{{getCategoryName(item.list.CategoryID)}}
|
|
1261
|
+
</span>
|
|
1262
|
+
}
|
|
1263
|
+
<span class="date-info">Updated {{formatDate(item.list.__mj_UpdatedAt)}}</span>
|
|
1264
|
+
</div>
|
|
1265
|
+
</div>
|
|
1266
|
+
}
|
|
1246
1267
|
</div>
|
|
1247
|
-
|
|
1268
|
+
}
|
|
1248
1269
|
</div>
|
|
1249
|
-
|
|
1250
|
-
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1251
1272
|
<!-- Category Node Template -->
|
|
1252
1273
|
<ng-template #categoryNodeTemplate let-node="node" let-depth="depth">
|
|
1253
1274
|
<div class="category-section" [style.margin-left.px]="depth * 20">
|
|
1254
1275
|
<!-- Category Header -->
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1276
|
+
@if (node.category) {
|
|
1277
|
+
<div
|
|
1278
|
+
class="category-header"
|
|
1279
|
+
(click)="toggleCategory(node)">
|
|
1280
|
+
<i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
|
|
1281
|
+
<i class="fa-solid fa-folder" [class.fa-folder-open]="node.isExpanded"></i>
|
|
1282
|
+
<span class="category-name">{{node.category.Name}}</span>
|
|
1283
|
+
<span class="category-count">{{getListCountInCategory(node)}}</span>
|
|
1284
|
+
</div>
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1265
1287
|
<!-- Uncategorized Header -->
|
|
1266
|
-
|
|
1267
|
-
class="category-header uncategorized"
|
|
1268
|
-
*ngIf="!node.category && node.lists.length > 0"
|
|
1269
|
-
(click)="toggleCategory(node)">
|
|
1270
|
-
<i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
|
|
1271
|
-
<i class="fa-solid fa-inbox"></i>
|
|
1272
|
-
<span class="category-name">Uncategorized</span>
|
|
1273
|
-
<span class="category-count">{{node.lists.length}}</span>
|
|
1274
|
-
</div>
|
|
1275
|
-
|
|
1276
|
-
<!-- Lists in this category -->
|
|
1277
|
-
<div class="category-lists" *ngIf="node.isExpanded" role="list">
|
|
1288
|
+
@if (!node.category && node.lists.length > 0) {
|
|
1278
1289
|
<div
|
|
1279
|
-
class="
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
role="listitem"
|
|
1286
|
-
[attr.aria-label]="item.list.Name + ' - ' + item.entityName + ' - ' + item.itemCount + ' items'">
|
|
1287
|
-
<div class="list-icon" [style.background-color]="getEntityColor(item.list.Entity)" aria-hidden="true">
|
|
1288
|
-
<i [class]="getEntityIcon(item.list.Entity)"></i>
|
|
1289
|
-
</div>
|
|
1290
|
-
<div class="list-info">
|
|
1291
|
-
<span class="list-name">{{item.list.Name}}</span>
|
|
1292
|
-
<span class="list-meta">{{item.entityName}} · {{item.itemCount}} items</span>
|
|
1293
|
-
</div>
|
|
1294
|
-
<div class="list-actions">
|
|
1295
|
-
<button class="action-btn" (click)="openListMenu($event, item.list)" [attr.aria-label]="'More options for ' + item.list.Name">
|
|
1296
|
-
<i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
|
|
1297
|
-
</button>
|
|
1298
|
-
</div>
|
|
1290
|
+
class="category-header uncategorized"
|
|
1291
|
+
(click)="toggleCategory(node)">
|
|
1292
|
+
<i [class]="node.isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'"></i>
|
|
1293
|
+
<i class="fa-solid fa-inbox"></i>
|
|
1294
|
+
<span class="category-name">Uncategorized</span>
|
|
1295
|
+
<span class="category-count">{{node.lists.length}}</span>
|
|
1299
1296
|
</div>
|
|
1300
|
-
|
|
1301
|
-
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
<!-- Lists in this category -->
|
|
1300
|
+
@if (node.isExpanded) {
|
|
1301
|
+
<div class="category-lists" role="list">
|
|
1302
|
+
@for (item of node.lists; track item) {
|
|
1303
|
+
<div
|
|
1304
|
+
class="list-row"
|
|
1305
|
+
(click)="openList(item.list)"
|
|
1306
|
+
(keydown.enter)="openList(item.list)"
|
|
1307
|
+
(keydown.space)="openList(item.list); $event.preventDefault()"
|
|
1308
|
+
tabindex="0"
|
|
1309
|
+
role="listitem"
|
|
1310
|
+
[attr.aria-label]="item.list.Name + ' - ' + item.entityName + ' - ' + item.itemCount + ' items'">
|
|
1311
|
+
<div class="list-icon" [style.background-color]="getEntityColor(item.list.Entity)" aria-hidden="true">
|
|
1312
|
+
<i [class]="getEntityIcon(item.list.Entity)"></i>
|
|
1313
|
+
</div>
|
|
1314
|
+
<div class="list-info">
|
|
1315
|
+
<span class="list-name">{{item.list.Name}}</span>
|
|
1316
|
+
<span class="list-meta">{{item.entityName}} · {{item.itemCount}} items</span>
|
|
1317
|
+
</div>
|
|
1318
|
+
<div class="list-actions">
|
|
1319
|
+
<button class="action-btn" (click)="openListMenu($event, item.list)" [attr.aria-label]="'More options for ' + item.list.Name">
|
|
1320
|
+
<i class="fa-solid fa-ellipsis-v" aria-hidden="true"></i>
|
|
1321
|
+
</button>
|
|
1322
|
+
</div>
|
|
1323
|
+
</div>
|
|
1324
|
+
}
|
|
1325
|
+
</div>
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1302
1328
|
<!-- Child categories -->
|
|
1303
|
-
|
|
1304
|
-
|
|
1329
|
+
@if (node.isExpanded) {
|
|
1330
|
+
@for (child of node.children; track child) {
|
|
1305
1331
|
<ng-container *ngTemplateOutlet="categoryNodeTemplate; context: { node: child, depth: depth + 1 }"></ng-container>
|
|
1306
|
-
|
|
1307
|
-
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1308
1334
|
</div>
|
|
1309
1335
|
</ng-template>
|
|
1310
|
-
|
|
1336
|
+
|
|
1311
1337
|
<!-- Context Menu (native) -->
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
<!-- Create/Edit List Dialog (native modal) -->
|
|
1330
|
-
<div class="modal-overlay" *ngIf="showCreateDialog" (click)="closeCreateDialog()"></div>
|
|
1331
|
-
<div class="modal-dialog" *ngIf="showCreateDialog">
|
|
1332
|
-
<div class="modal-header">
|
|
1333
|
-
<h3>{{editingList ? 'Edit List' : 'Create New List'}}</h3>
|
|
1334
|
-
<button class="modal-close" (click)="closeCreateDialog()">
|
|
1335
|
-
<i class="fa-solid fa-times"></i>
|
|
1338
|
+
@if (showContextMenu) {
|
|
1339
|
+
<div class="context-menu-overlay" (click)="closeContextMenu()"></div>
|
|
1340
|
+
}
|
|
1341
|
+
@if (showContextMenu) {
|
|
1342
|
+
<div class="context-menu" [style.top.px]="contextMenuY" [style.left.px]="contextMenuX">
|
|
1343
|
+
<button class="menu-item" (click)="editList()">
|
|
1344
|
+
<i class="fa-solid fa-pen"></i>
|
|
1345
|
+
Edit
|
|
1346
|
+
</button>
|
|
1347
|
+
<button class="menu-item" (click)="duplicateList()">
|
|
1348
|
+
<i class="fa-solid fa-copy"></i>
|
|
1349
|
+
Duplicate
|
|
1350
|
+
</button>
|
|
1351
|
+
<div class="menu-divider"></div>
|
|
1352
|
+
<button class="menu-item danger" (click)="confirmDeleteList()">
|
|
1353
|
+
<i class="fa-solid fa-trash"></i>
|
|
1354
|
+
Delete
|
|
1336
1355
|
</button>
|
|
1337
1356
|
</div>
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
<
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
placeholder="Optional description"
|
|
1352
|
-
class="form-input"
|
|
1353
|
-
rows="3"></textarea>
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
<!-- Create/Edit List Dialog (native modal) -->
|
|
1360
|
+
@if (showCreateDialog) {
|
|
1361
|
+
<div class="modal-overlay" (click)="closeCreateDialog()"></div>
|
|
1362
|
+
}
|
|
1363
|
+
@if (showCreateDialog) {
|
|
1364
|
+
<div class="modal-dialog">
|
|
1365
|
+
<div class="modal-header">
|
|
1366
|
+
<h3>{{editingList ? 'Edit List' : 'Create New List'}}</h3>
|
|
1367
|
+
<button class="modal-close" (click)="closeCreateDialog()">
|
|
1368
|
+
<i class="fa-solid fa-times"></i>
|
|
1369
|
+
</button>
|
|
1354
1370
|
</div>
|
|
1355
|
-
<div class="
|
|
1356
|
-
<
|
|
1357
|
-
|
|
1371
|
+
<div class="modal-body">
|
|
1372
|
+
<div class="form-group">
|
|
1373
|
+
<label>Name *</label>
|
|
1358
1374
|
<input
|
|
1359
|
-
#entityInput
|
|
1360
1375
|
type="text"
|
|
1361
|
-
[(ngModel)]="
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1376
|
+
[(ngModel)]="newListName"
|
|
1377
|
+
placeholder="Enter list name"
|
|
1378
|
+
class="form-input" />
|
|
1379
|
+
</div>
|
|
1380
|
+
<div class="form-group">
|
|
1381
|
+
<label>Description</label>
|
|
1382
|
+
<textarea
|
|
1383
|
+
[(ngModel)]="newListDescription"
|
|
1384
|
+
placeholder="Optional description"
|
|
1365
1385
|
class="form-input"
|
|
1366
|
-
|
|
1386
|
+
rows="3"></textarea>
|
|
1387
|
+
</div>
|
|
1388
|
+
<div class="form-group">
|
|
1389
|
+
<label>Entity *</label>
|
|
1390
|
+
<div class="custom-select-wrapper">
|
|
1391
|
+
<input
|
|
1392
|
+
#entityInput
|
|
1393
|
+
type="text"
|
|
1394
|
+
[(ngModel)]="entitySearchTerm"
|
|
1395
|
+
(ngModelChange)="filterEntities($event)"
|
|
1396
|
+
(focus)="openEntityDropdown(entityInput)"
|
|
1397
|
+
placeholder="Search and select an entity"
|
|
1398
|
+
class="form-input"
|
|
1399
|
+
[disabled]="!!editingList" />
|
|
1400
|
+
</div>
|
|
1401
|
+
</div>
|
|
1402
|
+
<div class="form-group">
|
|
1403
|
+
<label>Category</label>
|
|
1404
|
+
<select [(ngModel)]="selectedCategoryId" class="form-input">
|
|
1405
|
+
<option [ngValue]="null">No category</option>
|
|
1406
|
+
@for (cat of flatCategories; track cat) {
|
|
1407
|
+
<option [ngValue]="cat.ID">{{cat.displayName}}</option>
|
|
1408
|
+
}
|
|
1409
|
+
</select>
|
|
1367
1410
|
</div>
|
|
1368
1411
|
</div>
|
|
1369
|
-
<div class="
|
|
1370
|
-
<
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1412
|
+
<div class="modal-footer">
|
|
1413
|
+
<button
|
|
1414
|
+
class="btn-primary"
|
|
1415
|
+
(click)="saveList()"
|
|
1416
|
+
[disabled]="!newListName || !selectedEntityId || isSaving">
|
|
1417
|
+
@if (isSaving) {
|
|
1418
|
+
<i class="fa-solid fa-spinner fa-spin"></i>
|
|
1419
|
+
}
|
|
1420
|
+
{{isSaving ? 'Saving...' : (editingList ? 'Save' : 'Create')}}
|
|
1421
|
+
</button>
|
|
1422
|
+
<button class="btn-secondary" (click)="closeCreateDialog()" [disabled]="isSaving">Cancel</button>
|
|
1375
1423
|
</div>
|
|
1376
1424
|
</div>
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
class="btn-primary"
|
|
1380
|
-
(click)="saveList()"
|
|
1381
|
-
[disabled]="!newListName || !selectedEntityId || isSaving">
|
|
1382
|
-
<i *ngIf="isSaving" class="fa-solid fa-spinner fa-spin"></i>
|
|
1383
|
-
{{isSaving ? 'Saving...' : (editingList ? 'Save' : 'Create')}}
|
|
1384
|
-
</button>
|
|
1385
|
-
<button class="btn-secondary" (click)="closeCreateDialog()" [disabled]="isSaving">Cancel</button>
|
|
1386
|
-
</div>
|
|
1387
|
-
</div>
|
|
1388
|
-
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1389
1427
|
<!-- Delete Confirmation Dialog -->
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1428
|
+
@if (showDeleteConfirm) {
|
|
1429
|
+
<div class="modal-overlay" (click)="cancelDelete()"></div>
|
|
1430
|
+
}
|
|
1431
|
+
@if (showDeleteConfirm) {
|
|
1432
|
+
<div class="modal-dialog confirm-dialog">
|
|
1433
|
+
<div class="modal-header">
|
|
1434
|
+
<h3>Delete List</h3>
|
|
1435
|
+
<button class="modal-close" (click)="cancelDelete()">
|
|
1436
|
+
<i class="fa-solid fa-times"></i>
|
|
1437
|
+
</button>
|
|
1438
|
+
</div>
|
|
1439
|
+
<div class="modal-body">
|
|
1440
|
+
<p>Are you sure you want to delete "<strong>{{deleteListName}}</strong>"?</p>
|
|
1441
|
+
<p class="warning-text">This will also remove all items in the list.</p>
|
|
1442
|
+
</div>
|
|
1443
|
+
<div class="modal-footer">
|
|
1444
|
+
<button class="btn-danger" (click)="deleteList()">
|
|
1445
|
+
@if (isDeleting) {
|
|
1446
|
+
<i class="fa-solid fa-spinner fa-spin"></i>
|
|
1447
|
+
}
|
|
1448
|
+
{{isDeleting ? 'Deleting...' : 'Delete'}}
|
|
1449
|
+
</button>
|
|
1450
|
+
<button class="btn-secondary" (click)="cancelDelete()">Cancel</button>
|
|
1451
|
+
</div>
|
|
1408
1452
|
</div>
|
|
1409
|
-
|
|
1410
|
-
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1411
1455
|
<!-- Entity Dropdown Portal (fixed positioning) -->
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1456
|
+
@if (showEntityDropdown && !editingList) {
|
|
1457
|
+
<div
|
|
1458
|
+
class="entity-dropdown-portal"
|
|
1459
|
+
[style.top.px]="entityDropdownPosition.top"
|
|
1460
|
+
[style.left.px]="entityDropdownPosition.left"
|
|
1461
|
+
[style.width.px]="entityDropdownPosition.width"
|
|
1462
|
+
[class.dropdown-above]="entityDropdownPosition.openAbove">
|
|
1463
|
+
<div class="entity-dropdown-backdrop" (click)="closeEntityDropdown()"></div>
|
|
1464
|
+
<div class="entity-dropdown-content" [class.open-above]="entityDropdownPosition.openAbove">
|
|
1465
|
+
@for (entity of filteredEntities; track entity) {
|
|
1466
|
+
<div
|
|
1467
|
+
class="dropdown-item"
|
|
1468
|
+
(click)="selectEntity(entity)">
|
|
1469
|
+
{{entity.Name}}
|
|
1470
|
+
</div>
|
|
1471
|
+
}
|
|
1472
|
+
@if (filteredEntities.length === 0) {
|
|
1473
|
+
<div class="dropdown-empty">
|
|
1474
|
+
No entities found
|
|
1475
|
+
</div>
|
|
1476
|
+
}
|
|
1429
1477
|
</div>
|
|
1430
1478
|
</div>
|
|
1431
|
-
|
|
1479
|
+
}
|
|
1432
1480
|
</div>
|
|
1433
|
-
`, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-my-lists-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .lists-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 250px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n }\n\n .clear-search:hover {\n color: #666;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .search-empty .empty-state-icon-wrapper {\n margin-bottom: 20px;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .lists-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .view-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .view-toggle {\n padding: 8px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 4px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n border-color: #2196F3;\n color: white;\n }\n\n .list-count {\n margin-left: auto;\n color: #999;\n font-size: 14px;\n }\n\n /* Grid View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .category-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n background: #e8f4fd;\n padding: 2px 8px;\n border-radius: 4px;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Category Tree */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .list-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e3f2fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-name {\n display: block;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .list-row:hover .action-btn {\n opacity: 1;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Context Menu (native) */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown - Fixed positioning to escape modal z-index */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002; /* Above modal (1001) */\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .lists-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n }\n\n .header-actions {\n flex-direction: column;\n }\n\n .search-box input {\n width: 100%;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "] }]
|
|
1481
|
+
`, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .lists-my-lists-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n overflow: hidden;\n }\n\n /* Header */\n .lists-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 24px;\n color: #2196F3;\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n }\n\n .header-actions {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .search-box {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-box i.fa-search {\n position: absolute;\n left: 12px;\n color: #999;\n }\n\n .search-box input {\n padding: 8px 36px 8px 36px;\n border: 1px solid #ddd;\n border-radius: 20px;\n font-size: 14px;\n width: 250px;\n transition: border-color 0.2s, box-shadow 0.2s;\n }\n\n .search-box input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: #999;\n cursor: pointer;\n padding: 4px;\n }\n\n .clear-search:hover {\n color: #666;\n }\n\n .btn-create {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-create:hover {\n background: #1976D2;\n }\n\n /* Loading */\n .loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n }\n\n /* Empty State */\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 40px;\n text-align: center;\n max-width: 480px;\n margin: 0 auto;\n }\n\n .empty-state-icon-wrapper {\n position: relative;\n margin-bottom: 24px;\n }\n\n .empty-state-icon-wrapper .icon-bg {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 120px;\n height: 120px;\n border-radius: 50%;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.1) 0%, rgba(33, 150, 243, 0.05) 100%);\n }\n\n .empty-state-icon-wrapper > i {\n position: relative;\n font-size: 56px;\n color: #2196F3;\n z-index: 1;\n }\n\n .empty-state-icon-wrapper.search > i {\n font-size: 48px;\n color: #9e9e9e;\n }\n\n .empty-state h3 {\n margin: 0 0 12px;\n font-size: 22px;\n font-weight: 600;\n color: #333;\n }\n\n .empty-state p {\n margin: 0 0 8px;\n color: #666;\n font-size: 15px;\n line-height: 1.5;\n }\n\n .empty-state p:last-of-type {\n margin-bottom: 24px;\n }\n\n .empty-hint {\n color: #999 !important;\n font-size: 13px !important;\n }\n\n .empty-state-features {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 28px;\n text-align: left;\n }\n\n .feature-item {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n color: #555;\n }\n\n .feature-item i {\n font-size: 14px !important;\n color: #4CAF50 !important;\n }\n\n .search-empty .empty-state-icon-wrapper {\n margin-bottom: 20px;\n }\n\n .btn-create-large {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 14px 28px;\n background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n }\n\n .btn-create-large:hover {\n background: linear-gradient(135deg, #1976D2 0%, #1565C0 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);\n }\n\n .btn-clear {\n padding: 10px 20px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n color: #666;\n cursor: pointer;\n }\n\n .btn-clear:hover {\n background: #e0e0e0;\n }\n\n /* Content */\n .lists-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px 24px;\n }\n\n .view-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n }\n\n .view-toggle {\n padding: 8px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 4px;\n color: #666;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .view-toggle:hover {\n background: #f5f5f5;\n }\n\n .view-toggle.active {\n background: #2196F3;\n border-color: #2196F3;\n color: white;\n }\n\n .list-count {\n margin-left: auto;\n color: #999;\n font-size: 14px;\n }\n\n /* Grid View */\n .lists-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .list-card {\n background: white;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n overflow: hidden;\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s, outline 0.1s;\n outline: 2px solid transparent;\n }\n\n .list-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.12);\n }\n\n .list-card:focus {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .list-card:focus:not(:focus-visible) {\n outline: none;\n }\n\n .list-card:focus-visible {\n outline: 2px solid #2196F3;\n outline-offset: 2px;\n }\n\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px 16px 0;\n }\n\n .card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 18px;\n }\n\n .menu-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .menu-btn:hover {\n background: #f5f5f5;\n color: #666;\n }\n\n .card-body {\n padding: 12px 16px;\n }\n\n .card-title {\n margin: 0 0 4px;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .card-description {\n margin: 0 0 12px;\n font-size: 13px;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta {\n display: flex;\n gap: 16px;\n }\n\n .meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #999;\n }\n\n .card-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n border-top: 1px solid #f0f0f0;\n background: #fafafa;\n }\n\n .category-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #666;\n background: #e8f4fd;\n padding: 2px 8px;\n border-radius: 4px;\n }\n\n .date-info {\n font-size: 12px;\n color: #999;\n }\n\n /* Category Tree */\n .category-tree {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .category-section {\n background: white;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .category-header:hover {\n background: #f5f5f5;\n }\n\n .category-header i:first-child {\n width: 16px;\n text-align: center;\n color: #999;\n }\n\n .category-header .fa-folder,\n .category-header .fa-folder-open {\n color: #ffc107;\n }\n\n .category-header.uncategorized .fa-inbox {\n color: #999;\n }\n\n .category-name {\n flex: 1;\n font-weight: 500;\n color: #333;\n }\n\n .category-count {\n font-size: 12px;\n color: #999;\n background: #f0f0f0;\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .category-lists {\n border-top: 1px solid #f0f0f0;\n }\n\n .list-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 12px 40px;\n cursor: pointer;\n transition: background 0.2s;\n outline: none;\n }\n\n .list-row:hover {\n background: #f5f5f5;\n }\n\n .list-row:focus {\n background: #e3f2fd;\n }\n\n .list-row:focus-visible {\n background: #e3f2fd;\n box-shadow: inset 3px 0 0 #2196F3;\n }\n\n .list-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .list-info {\n flex: 1;\n min-width: 0;\n }\n\n .list-name {\n display: block;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .list-meta {\n font-size: 12px;\n color: #999;\n }\n\n .list-actions {\n display: flex;\n gap: 4px;\n }\n\n .action-btn {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .list-row:hover .action-btn {\n opacity: 1;\n }\n\n .action-btn:hover {\n background: #e0e0e0;\n color: #666;\n }\n\n /* Context Menu (native) */\n .context-menu-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n }\n\n .context-menu {\n position: fixed;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n min-width: 160px;\n padding: 4px 0;\n z-index: 1000;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 10px 16px;\n background: none;\n border: none;\n text-align: left;\n font-size: 14px;\n color: #333;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .menu-item:hover {\n background: #f5f5f5;\n }\n\n .menu-item.danger {\n color: #d32f2f;\n }\n\n .menu-item.danger:hover {\n background: #ffebee;\n }\n\n .menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n }\n\n /* Modal Styles */\n .modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n }\n\n .modal-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n width: 500px;\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n z-index: 1001;\n }\n\n .confirm-dialog {\n width: 400px;\n }\n\n .modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n }\n\n .modal-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n }\n\n .modal-close {\n background: none;\n border: none;\n padding: 4px 8px;\n color: #999;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .modal-close:hover {\n background: #f0f0f0;\n color: #666;\n }\n\n .modal-body {\n padding: 20px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-body p {\n margin: 0 0 8px;\n color: #333;\n }\n\n .warning-text {\n color: #d32f2f !important;\n font-size: 13px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n background: #fafafa;\n }\n\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #2196F3;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-primary:hover:not(:disabled) {\n background: #1976D2;\n }\n\n .btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-secondary {\n padding: 10px 20px;\n background: white;\n color: #666;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: #f5f5f5;\n }\n\n .btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: #d32f2f;\n color: white;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .btn-danger:hover:not(:disabled) {\n background: #c62828;\n }\n\n /* Form Styles */\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-group:last-child {\n margin-bottom: 0;\n }\n\n .form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #666;\n }\n\n .form-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.2s, box-shadow 0.2s;\n box-sizing: border-box;\n }\n\n .form-input:focus {\n outline: none;\n border-color: #2196F3;\n box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);\n }\n\n .form-input:disabled {\n background: #f5f5f5;\n color: #999;\n }\n\n textarea.form-input {\n resize: vertical;\n min-height: 80px;\n }\n\n select.form-input {\n cursor: pointer;\n }\n\n .custom-select-wrapper {\n position: relative;\n }\n\n /* Portal Dropdown - Fixed positioning to escape modal z-index */\n .entity-dropdown-portal {\n position: fixed;\n z-index: 10002; /* Above modal (1001) */\n }\n\n .entity-dropdown-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: -1;\n }\n\n .entity-dropdown-content {\n max-height: 200px;\n overflow-y: auto;\n background: white;\n border: 1px solid #ddd;\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n }\n\n .entity-dropdown-content.open-above {\n position: absolute;\n bottom: 0;\n }\n\n .dropdown-item {\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 14px;\n color: #333;\n }\n\n .dropdown-item:hover {\n background: #e3f2fd;\n }\n\n .dropdown-item:first-child {\n border-radius: 6px 6px 0 0;\n }\n\n .dropdown-item:last-child {\n border-radius: 0 0 6px 6px;\n }\n\n .dropdown-empty {\n padding: 10px 12px;\n color: #999;\n font-style: italic;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .lists-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n }\n\n .header-actions {\n flex-direction: column;\n }\n\n .search-box input {\n width: 100%;\n }\n\n .btn-create {\n width: 100%;\n justify-content: center;\n }\n\n .lists-grid {\n grid-template-columns: 1fr;\n }\n\n .modal-dialog {\n width: 95vw;\n }\n }\n "] }]
|
|
1434
1482
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.TabService }, { type: i2.MJNotificationService }, { type: i0.ElementRef }], { onDocumentClick: [{
|
|
1435
1483
|
type: HostListener,
|
|
1436
1484
|
args: ['document:click', ['$event']]
|
|
@@ -1438,5 +1486,5 @@ export { ListsMyListsResource };
|
|
|
1438
1486
|
type: HostListener,
|
|
1439
1487
|
args: ['document:keydown.escape']
|
|
1440
1488
|
}] }); })();
|
|
1441
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsMyListsResource, { className: "ListsMyListsResource", filePath: "src/Lists/components/lists-my-lists-resource.component.ts", lineNumber:
|
|
1489
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListsMyListsResource, { className: "ListsMyListsResource", filePath: "src/Lists/components/lists-my-lists-resource.component.ts", lineNumber: 1280 }); })();
|
|
1442
1490
|
//# sourceMappingURL=lists-my-lists-resource.component.js.map
|