@memberjunction/ng-explorer-core 3.3.0 → 4.0.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 +336 -1
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +11 -0
- package/dist/app-routing.module.js.map +1 -1
- package/dist/generic/Events.types.d.ts +174 -0
- package/dist/generic/Events.types.d.ts.map +1 -0
- package/dist/generic/Events.types.js +220 -0
- package/dist/generic/Events.types.js.map +1 -0
- package/dist/lib/app-view/application-view.component.d.ts +65 -0
- package/dist/lib/app-view/application-view.component.d.ts.map +1 -0
- package/dist/lib/app-view/application-view.component.js +611 -0
- package/dist/lib/app-view/application-view.component.js.map +1 -0
- package/dist/lib/auth-button/auth-button.component.d.ts +13 -0
- package/dist/lib/auth-button/auth-button.component.d.ts.map +1 -0
- package/dist/lib/auth-button/auth-button.component.js +36 -0
- package/dist/lib/auth-button/auth-button.component.js.map +1 -0
- package/dist/lib/base-browser-component/base-browser-component.d.ts +44 -0
- package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -0
- package/dist/lib/base-browser-component/base-browser-component.js +195 -0
- package/dist/lib/base-browser-component/base-browser-component.js.map +1 -0
- package/dist/lib/chat-wrapper/chat-wrapper.component.d.ts +54 -0
- package/dist/lib/chat-wrapper/chat-wrapper.component.d.ts.map +1 -0
- package/dist/lib/chat-wrapper/chat-wrapper.component.js +257 -0
- package/dist/lib/chat-wrapper/chat-wrapper.component.js.map +1 -0
- package/dist/lib/command-palette/command-palette.component.d.ts +79 -0
- package/dist/lib/command-palette/command-palette.component.d.ts.map +1 -0
- package/dist/lib/command-palette/command-palette.component.js +326 -0
- package/dist/lib/command-palette/command-palette.component.js.map +1 -0
- package/dist/lib/command-palette/command-palette.service.d.ts +49 -0
- package/dist/lib/command-palette/command-palette.service.d.ts.map +1 -0
- package/dist/lib/command-palette/command-palette.service.js +101 -0
- package/dist/lib/command-palette/command-palette.service.js.map +1 -0
- package/dist/lib/command-palette/index.d.ts +3 -0
- package/dist/lib/command-palette/index.d.ts.map +1 -0
- package/dist/lib/command-palette/index.js +3 -0
- package/dist/lib/command-palette/index.js.map +1 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +32 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +244 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -0
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.d.ts.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +14 -12
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
- package/dist/lib/data-browser-component/data-browser.component.d.ts +23 -0
- package/dist/lib/data-browser-component/data-browser.component.d.ts.map +1 -0
- package/dist/lib/data-browser-component/data-browser.component.js +267 -0
- package/dist/lib/data-browser-component/data-browser.component.js.map +1 -0
- package/dist/lib/expansion-panel-component/expansion-panel-component.d.ts +21 -0
- package/dist/lib/expansion-panel-component/expansion-panel-component.d.ts.map +1 -0
- package/dist/lib/expansion-panel-component/expansion-panel-component.js +158 -0
- package/dist/lib/expansion-panel-component/expansion-panel-component.js.map +1 -0
- package/dist/lib/favorites/favorites.component.d.ts +15 -0
- package/dist/lib/favorites/favorites.component.d.ts.map +1 -0
- package/dist/lib/favorites/favorites.component.js +135 -0
- package/dist/lib/favorites/favorites.component.js.map +1 -0
- package/dist/lib/files/files.component.d.ts +10 -0
- package/dist/lib/files/files.component.d.ts.map +1 -0
- package/dist/lib/files/files.component.js +41 -0
- package/dist/lib/files/files.component.js.map +1 -0
- package/dist/lib/generic/form-toolbar.d.ts.map +1 -1
- package/dist/lib/generic/form-toolbar.js +56 -38
- package/dist/lib/generic/form-toolbar.js.map +1 -1
- package/dist/lib/generic/resource-container-component.d.ts.map +1 -1
- package/dist/lib/generic/resource-container-component.js +3 -2
- package/dist/lib/generic/resource-container-component.js.map +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +30 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts.map +1 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +171 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +120 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +1093 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -0
- package/dist/lib/header/MSFT_UserImageService.d.ts +12 -0
- package/dist/lib/header/MSFT_UserImageService.d.ts.map +1 -0
- package/dist/lib/header/MSFT_UserImageService.js +25 -0
- package/dist/lib/header/MSFT_UserImageService.js.map +1 -0
- package/dist/lib/header/header.component.d.ts +69 -0
- package/dist/lib/header/header.component.d.ts.map +1 -0
- package/dist/lib/header/header.component.js +342 -0
- package/dist/lib/header/header.component.js.map +1 -0
- package/dist/lib/home-component/home.component.d.ts +22 -0
- package/dist/lib/home-component/home.component.d.ts.map +1 -0
- package/dist/lib/home-component/home.component.js +194 -0
- package/dist/lib/home-component/home.component.js.map +1 -0
- package/dist/lib/home-wrapper/home-wrapper.component.d.ts +7 -0
- package/dist/lib/home-wrapper/home-wrapper.component.d.ts.map +1 -0
- package/dist/lib/home-wrapper/home-wrapper.component.js +30 -0
- package/dist/lib/home-wrapper/home-wrapper.component.js.map +1 -0
- package/dist/lib/list-view/list-view.component.d.ts +45 -0
- package/dist/lib/list-view/list-view.component.d.ts.map +1 -0
- package/dist/lib/list-view/list-view.component.js +329 -0
- package/dist/lib/list-view/list-view.component.js.map +1 -0
- package/dist/lib/navigation/navigation.component.d.ts +142 -0
- package/dist/lib/navigation/navigation.component.d.ts.map +1 -0
- package/dist/lib/navigation/navigation.component.js +1212 -0
- package/dist/lib/navigation/navigation.component.js.map +1 -0
- package/dist/lib/oauth/oauth-callback.component.d.ts +97 -0
- package/dist/lib/oauth/oauth-callback.component.d.ts.map +1 -0
- package/dist/lib/oauth/oauth-callback.component.js +408 -0
- package/dist/lib/oauth/oauth-callback.component.js.map +1 -0
- package/dist/lib/oauth/oauth.module.d.ts +14 -0
- package/dist/lib/oauth/oauth.module.d.ts.map +1 -0
- package/dist/lib/oauth/oauth.module.js +43 -0
- package/dist/lib/oauth/oauth.module.js.map +1 -0
- package/dist/lib/query-browser-component/query-browser.component.d.ts +75 -0
- package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -0
- package/dist/lib/query-browser-component/query-browser.component.js +908 -0
- package/dist/lib/query-browser-component/query-browser.component.js.map +1 -0
- package/dist/lib/report-browser-component/report-browser.component.d.ts +22 -0
- package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -0
- package/dist/lib/report-browser-component/report-browser.component.js +80 -0
- package/dist/lib/report-browser-component/report-browser.component.js.map +1 -0
- package/dist/lib/resource-browser/resource-browser.component.d.ts +178 -0
- package/dist/lib/resource-browser/resource-browser.component.d.ts.map +1 -0
- package/dist/lib/resource-browser/resource-browser.component.js +1012 -0
- package/dist/lib/resource-browser/resource-browser.component.js.map +1 -0
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.js +20 -23
- package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +36 -45
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +98 -100
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +21 -24
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +11 -10
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.js +3 -5
- package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/notifications-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/notifications-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/notifications-resource.component.js +3 -5
- package/dist/lib/resource-wrappers/notifications-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/query-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.js +3 -5
- package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/record-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.js +3 -5
- package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/report-resource.component.d.ts +13 -0
- package/dist/lib/resource-wrappers/report-resource.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/report-resource.component.js +49 -0
- package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts +0 -1
- package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js +3 -33
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +3 -5
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +0 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +8 -13
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shared/custom-icon/custom-icon.component.d.ts +11 -0
- package/dist/lib/shared/custom-icon/custom-icon.component.d.ts.map +1 -0
- package/dist/lib/shared/custom-icon/custom-icon.component.js +44 -0
- package/dist/lib/shared/custom-icon/custom-icon.component.js.map +1 -0
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts +6 -0
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts.map +1 -1
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.js +62 -34
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.js +15 -16
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.js +36 -35
- package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +14 -15
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts +59 -2
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +411 -184
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/shell/shell.module.d.ts +8 -7
- package/dist/lib/shell/shell.module.d.ts.map +1 -1
- package/dist/lib/shell/shell.module.js +12 -3
- package/dist/lib/shell/shell.module.js.map +1 -1
- package/dist/lib/single-application/single-application.component.d.ts +24 -0
- package/dist/lib/single-application/single-application.component.d.ts.map +1 -0
- package/dist/lib/single-application/single-application.component.js +122 -0
- package/dist/lib/single-application/single-application.component.js.map +1 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +56 -61
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +3 -3
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +21 -22
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +84 -83
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/single-entity/single-entity.component.d.ts +34 -0
- package/dist/lib/single-entity/single-entity.component.d.ts.map +1 -0
- package/dist/lib/single-entity/single-entity.component.js +245 -0
- package/dist/lib/single-entity/single-entity.component.js.map +1 -0
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +75 -72
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/lib/single-query/single-query.component.d.ts.map +1 -1
- package/dist/lib/single-query/single-query.component.js +4 -4
- package/dist/lib/single-query/single-query.component.js.map +1 -1
- package/dist/lib/single-record/single-record.component.d.ts.map +1 -1
- package/dist/lib/single-record/single-record.component.js +11 -11
- package/dist/lib/single-record/single-record.component.js.map +1 -1
- package/dist/lib/single-report/single-report.component.d.ts +17 -0
- package/dist/lib/single-report/single-report.component.d.ts.map +1 -0
- package/dist/lib/single-report/single-report.component.js +55 -0
- package/dist/lib/single-report/single-report.component.js.map +1 -0
- package/dist/lib/single-search-result/single-search-result.component.d.ts +2 -5
- package/dist/lib/single-search-result/single-search-result.component.d.ts.map +1 -1
- package/dist/lib/single-search-result/single-search-result.component.js +7 -23
- package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
- package/dist/lib/single-view/single-view.component.d.ts +43 -0
- package/dist/lib/single-view/single-view.component.d.ts.map +1 -0
- package/dist/lib/single-view/single-view.component.js +207 -0
- package/dist/lib/single-view/single-view.component.js.map +1 -0
- package/dist/lib/style-guide-test/style-guide-test.component.d.ts +70 -0
- package/dist/lib/style-guide-test/style-guide-test.component.d.ts.map +1 -0
- package/dist/lib/style-guide-test/style-guide-test.component.js +1024 -0
- package/dist/lib/style-guide-test/style-guide-test.component.js.map +1 -0
- package/dist/lib/system-validation/system-validation-banner.component.d.ts.map +1 -1
- package/dist/lib/system-validation/system-validation-banner.component.js +85 -65
- package/dist/lib/system-validation/system-validation-banner.component.js.map +1 -1
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts +46 -0
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts.map +1 -0
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +547 -0
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -0
- package/dist/lib/user-menu/base-user-menu.d.ts +140 -0
- package/dist/lib/user-menu/base-user-menu.d.ts.map +1 -0
- package/dist/lib/user-menu/base-user-menu.js +380 -0
- package/dist/lib/user-menu/base-user-menu.js.map +1 -0
- package/dist/lib/user-menu/index.d.ts +3 -0
- package/dist/lib/user-menu/index.d.ts.map +1 -0
- package/dist/lib/user-menu/index.js +3 -0
- package/dist/lib/user-menu/index.js.map +1 -0
- package/dist/lib/user-menu/user-menu.types.d.ts +121 -0
- package/dist/lib/user-menu/user-menu.types.d.ts.map +1 -0
- package/dist/lib/user-menu/user-menu.types.js +13 -0
- package/dist/lib/user-menu/user-menu.types.js.map +1 -0
- package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +14 -15
- package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
- package/dist/lib/user-profile/user-profile.component.d.ts.map +1 -1
- package/dist/lib/user-profile/user-profile.component.js +56 -54
- package/dist/lib/user-profile/user-profile.component.js.map +1 -1
- package/dist/module.d.ts +53 -55
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +4 -13
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +7 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +12 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +60 -62
|
@@ -2,15 +2,14 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@memberjunction/ng-base-application";
|
|
4
4
|
import * as i2 from "@memberjunction/ng-shared";
|
|
5
|
-
|
|
6
|
-
function AppNavComponent_div_1_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
5
|
+
function AppNavComponent_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
7
6
|
i0.ɵɵelement(0, "i");
|
|
8
7
|
} if (rf & 2) {
|
|
9
8
|
const item_r2 = i0.ɵɵnextContext().$implicit;
|
|
10
9
|
i0.ɵɵclassMap(item_r2.Icon);
|
|
11
10
|
} }
|
|
12
|
-
function
|
|
13
|
-
i0.ɵɵelementStart(0, "span",
|
|
11
|
+
function AppNavComponent_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementStart(0, "span", 4);
|
|
14
13
|
i0.ɵɵtext(1);
|
|
15
14
|
i0.ɵɵelementEnd();
|
|
16
15
|
} if (rf & 2) {
|
|
@@ -18,26 +17,26 @@ function AppNavComponent_div_1_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
18
17
|
i0.ɵɵadvance();
|
|
19
18
|
i0.ɵɵtextInterpolate(item_r2.Badge);
|
|
20
19
|
} }
|
|
21
|
-
function
|
|
20
|
+
function AppNavComponent_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
22
21
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
23
22
|
i0.ɵɵelementStart(0, "div", 2);
|
|
24
|
-
i0.ɵɵlistener("click", function
|
|
25
|
-
i0.ɵɵ
|
|
23
|
+
i0.ɵɵlistener("click", function AppNavComponent_For_2_Template_div_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onNavClick(item_r2, $event)); })("dblclick", function AppNavComponent_For_2_Template_div_dblclick_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onNavDblClick(item_r2, $event)); });
|
|
24
|
+
i0.ɵɵconditionalCreate(1, AppNavComponent_For_2_Conditional_1_Template, 1, 2, "i", 3);
|
|
26
25
|
i0.ɵɵelementStart(2, "span");
|
|
27
26
|
i0.ɵɵtext(3);
|
|
28
27
|
i0.ɵɵelementEnd();
|
|
29
|
-
i0.ɵɵ
|
|
28
|
+
i0.ɵɵconditionalCreate(4, AppNavComponent_For_2_Conditional_4_Template, 2, 1, "span", 4);
|
|
30
29
|
i0.ɵɵelementEnd();
|
|
31
30
|
} if (rf & 2) {
|
|
32
31
|
const item_r2 = ctx.$implicit;
|
|
33
32
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
34
33
|
i0.ɵɵclassProp("active", ctx_r2.isActive(item_r2))("no-icon", !item_r2.Icon);
|
|
35
34
|
i0.ɵɵadvance();
|
|
36
|
-
i0.ɵɵ
|
|
35
|
+
i0.ɵɵconditional(item_r2.Icon ? 1 : -1);
|
|
37
36
|
i0.ɵɵadvance(2);
|
|
38
37
|
i0.ɵɵtextInterpolate(item_r2.Label);
|
|
39
38
|
i0.ɵɵadvance();
|
|
40
|
-
i0.ɵɵ
|
|
39
|
+
i0.ɵɵconditional(item_r2.Badge ? 4 : -1);
|
|
41
40
|
} }
|
|
42
41
|
/**
|
|
43
42
|
* Horizontal navigation items for the current app.
|
|
@@ -127,23 +126,23 @@ export class AppNavComponent {
|
|
|
127
126
|
return false;
|
|
128
127
|
}
|
|
129
128
|
static ɵfac = function AppNavComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AppNavComponent)(i0.ɵɵdirectiveInject(i1.WorkspaceStateManager), i0.ɵɵdirectiveInject(i2.SharedService)); };
|
|
130
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppNavComponent, selectors: [["mj-app-nav"]], inputs: { app: "app" }, outputs: { navItemClick: "navItemClick" }, features: [i0.ɵɵNgOnChangesFeature], decls:
|
|
129
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppNavComponent, selectors: [["mj-app-nav"]], inputs: { app: "app" }, outputs: { navItemClick: "navItemClick" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [[1, "nav-list"], [1, "nav-item", 3, "active", "no-icon"], [1, "nav-item", 3, "click", "dblclick"], [3, "class"], [1, "badge"]], template: function AppNavComponent_Template(rf, ctx) { if (rf & 1) {
|
|
131
130
|
i0.ɵɵelementStart(0, "nav", 0);
|
|
132
|
-
i0.ɵɵ
|
|
131
|
+
i0.ɵɵrepeaterCreate(1, AppNavComponent_For_2_Template, 5, 7, "div", 1, i0.ɵɵrepeaterTrackByIdentity);
|
|
133
132
|
i0.ɵɵelementEnd();
|
|
134
133
|
} if (rf & 2) {
|
|
135
134
|
i0.ɵɵstyleProp("--app-color", ctx.appColor);
|
|
136
135
|
i0.ɵɵadvance();
|
|
137
|
-
i0.ɵɵ
|
|
138
|
-
} },
|
|
136
|
+
i0.ɵɵrepeater(ctx.navItems);
|
|
137
|
+
} }, styles: [".nav-list[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n.nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border-radius: 6px;\n text-decoration: none;\n color: #616161;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.15s;\n position: relative;\n cursor: pointer;\n user-select: none;\n}\n.nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n color: #424242;\n}\n.nav-list[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--app-color, #1976d2) 12%, white);\n color: var(--app-color, #1976d2);\n}\n.nav-list[_ngcontent-%COMP%] .nav-item.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--app-color, #1976d2);\n}\n.nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n.nav-list[_ngcontent-%COMP%] .nav-item.no-icon[_ngcontent-%COMP%] {\n padding-left: 12px;\n padding-right: 12px;\n}\n.nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] .badge[_ngcontent-%COMP%] {\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n}\n\n\n\n.mobile-nav-content[_nghost-%COMP%] .nav-list[_ngcontent-%COMP%], .mobile-nav-content [_nghost-%COMP%] .nav-list[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 2px;\n padding: 0 12px;\n}\n.mobile-nav-content[_nghost-%COMP%] .nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%], .mobile-nav-content [_nghost-%COMP%] .nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-radius: 8px;\n}\n.mobile-nav-content[_nghost-%COMP%] .nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .mobile-nav-content [_nghost-%COMP%] .nav-list[_ngcontent-%COMP%] .nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n}"] });
|
|
139
138
|
}
|
|
140
139
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppNavComponent, [{
|
|
141
140
|
type: Component,
|
|
142
|
-
args: [{ selector: 'mj-app-nav', template: "<nav class=\"nav-list\" [style.--app-color]=\"appColor\">\n
|
|
141
|
+
args: [{ standalone: false, selector: 'mj-app-nav', template: "<nav class=\"nav-list\" [style.--app-color]=\"appColor\">\n @for (item of navItems; track item) {\n <div\n class=\"nav-item\"\n [class.active]=\"isActive(item)\"\n [class.no-icon]=\"!item.Icon\"\n (click)=\"onNavClick(item, $event)\"\n (dblclick)=\"onNavDblClick(item, $event)\">\n @if (item.Icon) {\n <i [class]=\"item.Icon\"></i>\n }\n <span>{{ item.Label }}</span>\n @if (item.Badge) {\n <span class=\"badge\">{{ item.Badge }}</span>\n }\n </div>\n }\n</nav>\n", styles: [".nav-list {\n display: flex;\n gap: 4px;\n}\n.nav-list .nav-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border-radius: 6px;\n text-decoration: none;\n color: #616161;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.15s;\n position: relative;\n cursor: pointer;\n user-select: none;\n}\n.nav-list .nav-item:hover {\n background: #f5f5f5;\n color: #424242;\n}\n.nav-list .nav-item.active {\n background: color-mix(in srgb, var(--app-color, #1976d2) 12%, white);\n color: var(--app-color, #1976d2);\n}\n.nav-list .nav-item.active i {\n color: var(--app-color, #1976d2);\n}\n.nav-list .nav-item i {\n font-size: 16px;\n}\n.nav-list .nav-item.no-icon {\n padding-left: 12px;\n padding-right: 12px;\n}\n.nav-list .nav-item .badge {\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n}\n\n/* Mobile drawer vertical layout */\n:host-context(.mobile-nav-content) .nav-list {\n flex-direction: column;\n gap: 2px;\n padding: 0 12px;\n}\n:host-context(.mobile-nav-content) .nav-list .nav-item {\n padding: 12px 16px;\n border-radius: 8px;\n}\n:host-context(.mobile-nav-content) .nav-list .nav-item i {\n width: 20px;\n text-align: center;\n}\n"] }]
|
|
143
142
|
}], () => [{ type: i1.WorkspaceStateManager }, { type: i2.SharedService }], { app: [{
|
|
144
143
|
type: Input
|
|
145
144
|
}], navItemClick: [{
|
|
146
145
|
type: Output
|
|
147
146
|
}] }); })();
|
|
148
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppNavComponent, { className: "AppNavComponent", filePath: "src/lib/shell/components/header/app-nav.component.ts", lineNumber:
|
|
147
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppNavComponent, { className: "AppNavComponent", filePath: "src/lib/shell/components/header/app-nav.component.ts", lineNumber: 23 }); })();
|
|
149
148
|
//# sourceMappingURL=app-nav.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-nav.component.js","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-nav.component.ts","../../../../../src/lib/shell/components/header/app-nav.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAoC,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"app-nav.component.js","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-nav.component.ts","../../../../../src/lib/shell/components/header/app-nav.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAoC,MAAM,eAAe,CAAC;;;;;ICSjG,oBAA2B;;;IAAxB,2BAAmB;;;IAItB,+BAAoB;IAAA,YAAgB;IAAA,iBAAO;;;IAAvB,cAAgB;IAAhB,mCAAgB;;;;IAXxC,8BAK2C;IAAzC,AADA,wMAAS,kCAAwB,KAAC,iMACtB,qCAA2B,KAAC;IACxC,qFAAiB;IAGjB,4BAAM;IAAA,YAAgB;IAAA,iBAAO;IAC7B,wFAAkB;IAGpB,iBAAM;;;;IAVJ,AADA,kDAA+B,0BACH;IAG5B,cAEC;IAFD,uCAEC;IACK,eAAgB;IAAhB,mCAAgB;IACtB,cAEC;IAFD,wCAEC;;ADDP;;GAEG;AAOH,MAAM,OAAO,eAAe;IAKhB;IACA;IALD,GAAG,GAA2B,IAAI,CAAC;IAClC,YAAY,GAAG,IAAI,YAAY,EAAqB,CAAC;IAE/D,YACU,gBAAuC,EACvC,aAA4B;QAD5B,qBAAgB,GAAhB,gBAAgB,CAAuB;QACvC,kBAAa,GAAb,aAAa,CAAe;IACnC,CAAC;IAEJ,QAAQ;IACR,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,wFAAwF;YACxF,+EAA+E;YAC/E,MAAM,eAAe,GAAG,IAAI,CAAC,GAG5B,CAAC;YAEF,IAAI,OAAO,eAAe,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;gBAC9D,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,OAAO,eAAe,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;gBAC3D,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC5C,wEAAwE;QACxE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAa,EAAE,KAAkB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI;YACJ,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK;YAClC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAa,EAAE,KAAkB;QAC7C,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI;YACJ,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QACxD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvC,4CAA4C;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACzD,uEAAuE;YACvE,MAAM,WAAW,GAAG,IAA+D,CAAC;YACpF,IAAI,WAAW,CAAC,aAAa,IAAI,OAAO,WAAW,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBACjF,OAAO,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YAED,oCAAoC;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;gBAC/D,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;yGA/FU,eAAe;6DAAf,eAAe;YCtB5B,8BAAqD;YACnD,oGAeC;YACH,iBAAM;;YAjBgB,2CAA8B;YAClD,cAeC;YAfD,2BAeC;;;iFDMU,eAAe;cAN3B,SAAS;6BACI,KAAK,YACP,YAAY;;kBAKrB,KAAK;;kBACL,MAAM;;kFAFI,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-switcher.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-switcher.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;;AAE9E;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"app-switcher.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-switcher.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;;AAE9E;;;GAGG;AACH,qBAMa,oBAAoB;IAYnB,OAAO,CAAC,UAAU;IAXrB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAQ;IACzC,kBAAkB,UAAS;IACpC,qEAAqE;IAC5D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,WAAW,uBAA8B;IAErB,eAAe,EAAG,sBAAsB,CAAC;IAEvE,YAAY,UAAS;IACrB,gBAAgB,UAAS;gBAEL,UAAU,EAAE,kBAAkB;IAElD;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,eAAe,EAAE,CAE5B;IAED;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAOrC;;OAEG;IAEH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOvC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAWxB;;OAEG;IACH,aAAa,IAAI,IAAI;yCA3EV,oBAAoB;2CAApB,oBAAoB;CAgFhC"}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, HostListener, ViewChild } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@memberjunction/ng-base-application";
|
|
4
|
-
import * as i2 from "@
|
|
5
|
-
import * as i3 from "@memberjunction/ng-explorer-settings";
|
|
4
|
+
import * as i2 from "@memberjunction/ng-explorer-settings";
|
|
6
5
|
const _c0 = ["appConfigDialog"];
|
|
7
|
-
function
|
|
8
|
-
i0.ɵɵelement(0, "i",
|
|
6
|
+
function AppSwitcherComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelement(0, "i", 3);
|
|
9
8
|
} }
|
|
10
|
-
function
|
|
11
|
-
i0.ɵɵelement(0, "i",
|
|
9
|
+
function AppSwitcherComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵelement(0, "i", 8);
|
|
12
11
|
} if (rf & 2) {
|
|
13
12
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
14
13
|
i0.ɵɵclassMap((ctx_r1.activeApp == null ? null : ctx_r1.activeApp.Icon) || "fa-solid fa-cube");
|
|
15
14
|
i0.ɵɵstyleProp("color", ctx_r1.activeApp == null ? null : ctx_r1.activeApp.GetColor())("--active-color", ctx_r1.activeApp == null ? null : ctx_r1.activeApp.GetColor());
|
|
16
15
|
} }
|
|
17
|
-
function
|
|
18
|
-
i0.ɵɵelement(0, "i",
|
|
16
|
+
function AppSwitcherComponent_Conditional_5_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelement(0, "i", 14);
|
|
19
18
|
} }
|
|
20
|
-
function
|
|
19
|
+
function AppSwitcherComponent_Conditional_5_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
21
20
|
i0.ɵɵelement(0, "i");
|
|
22
21
|
} if (rf & 2) {
|
|
23
22
|
const app_r5 = i0.ɵɵnextContext().$implicit;
|
|
24
23
|
i0.ɵɵclassMap(app_r5.Icon || "fa-solid fa-cube");
|
|
25
24
|
} }
|
|
26
|
-
function
|
|
25
|
+
function AppSwitcherComponent_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
27
26
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
28
|
-
i0.ɵɵelementStart(0, "div",
|
|
29
|
-
i0.ɵɵlistener("click", function
|
|
30
|
-
i0.ɵɵ
|
|
27
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
28
|
+
i0.ɵɵlistener("click", function AppSwitcherComponent_Conditional_5_For_2_Template_div_click_0_listener() { const app_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectApp(app_r5)); });
|
|
29
|
+
i0.ɵɵconditionalCreate(1, AppSwitcherComponent_Conditional_5_For_2_Conditional_1_Template, 1, 0, "i", 14);
|
|
30
|
+
i0.ɵɵconditionalCreate(2, AppSwitcherComponent_Conditional_5_For_2_Conditional_2_Template, 1, 2, "i", 15);
|
|
31
31
|
i0.ɵɵelementStart(3, "span");
|
|
32
32
|
i0.ɵɵtext(4);
|
|
33
33
|
i0.ɵɵelementEnd()();
|
|
@@ -37,27 +37,27 @@ function AppSwitcherComponent_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
37
37
|
i0.ɵɵstyleProp("--item-color", app_r5.GetColor());
|
|
38
38
|
i0.ɵɵclassProp("active", app_r5.ID === (ctx_r1.activeApp == null ? null : ctx_r1.activeApp.ID))("loading", app_r5.ID === ctx_r1.loadingAppId);
|
|
39
39
|
i0.ɵɵadvance();
|
|
40
|
-
i0.ɵɵ
|
|
40
|
+
i0.ɵɵconditional(app_r5.ID === ctx_r1.loadingAppId ? 1 : -1);
|
|
41
41
|
i0.ɵɵadvance();
|
|
42
|
-
i0.ɵɵ
|
|
42
|
+
i0.ɵɵconditional(app_r5.ID !== ctx_r1.loadingAppId ? 2 : -1);
|
|
43
43
|
i0.ɵɵadvance(2);
|
|
44
44
|
i0.ɵɵtextInterpolate(app_r5.Name);
|
|
45
45
|
} }
|
|
46
|
-
function
|
|
46
|
+
function AppSwitcherComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
47
47
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
48
|
-
i0.ɵɵelementStart(0, "div",
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵelement(
|
|
51
|
-
i0.ɵɵelementStart(
|
|
52
|
-
i0.ɵɵlistener("click", function
|
|
53
|
-
i0.ɵɵelement(
|
|
54
|
-
i0.ɵɵelementStart(
|
|
55
|
-
i0.ɵɵtext(
|
|
48
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
49
|
+
i0.ɵɵrepeaterCreate(1, AppSwitcherComponent_Conditional_5_For_2_Template, 5, 9, "div", 9, i0.ɵɵrepeaterTrackByIdentity);
|
|
50
|
+
i0.ɵɵelement(3, "div", 10);
|
|
51
|
+
i0.ɵɵelementStart(4, "div", 11);
|
|
52
|
+
i0.ɵɵlistener("click", function AppSwitcherComponent_Conditional_5_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openConfigDialog()); });
|
|
53
|
+
i0.ɵɵelement(5, "i", 12);
|
|
54
|
+
i0.ɵɵelementStart(6, "span");
|
|
55
|
+
i0.ɵɵtext(7, "Configure...");
|
|
56
56
|
i0.ɵɵelementEnd()()();
|
|
57
57
|
} if (rf & 2) {
|
|
58
58
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
59
59
|
i0.ɵɵadvance();
|
|
60
|
-
i0.ɵɵ
|
|
60
|
+
i0.ɵɵrepeater(ctx_r1.apps);
|
|
61
61
|
} }
|
|
62
62
|
/**
|
|
63
63
|
* App switcher dropdown in the header.
|
|
@@ -142,15 +142,16 @@ export class AppSwitcherComponent {
|
|
|
142
142
|
let _t;
|
|
143
143
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.appConfigDialog = _t.first);
|
|
144
144
|
} }, hostBindings: function AppSwitcherComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
145
|
-
i0.ɵɵlistener("click", function AppSwitcherComponent_click_HostBindingHandler($event) { return ctx.onClickOutside($event); },
|
|
146
|
-
} }, inputs: { activeApp: "activeApp", isViewingSystemTab: "isViewingSystemTab", loadingAppId: "loadingAppId" }, outputs: { appSelected: "appSelected" }, decls: 8, vars: 6, consts: [["appConfigDialog", ""], [1, "app-switcher-container"], [1, "app-switcher-button", 3, "click"], [
|
|
145
|
+
i0.ɵɵlistener("click", function AppSwitcherComponent_click_HostBindingHandler($event) { return ctx.onClickOutside($event); }, i0.ɵɵresolveDocument);
|
|
146
|
+
} }, inputs: { activeApp: "activeApp", isViewingSystemTab: "isViewingSystemTab", loadingAppId: "loadingAppId" }, outputs: { appSelected: "appSelected" }, standalone: false, decls: 8, vars: 6, consts: [["appConfigDialog", ""], [1, "app-switcher-container"], [1, "app-switcher-button", 3, "click"], [1, "app-icon", "loading-spinner", "fa-solid", "fa-spinner", "fa-spin"], [1, "app-icon", 3, "class", "color", "--active-color"], [1, "dropdown-arrow", "fa-solid", "fa-chevron-down"], [1, "app-switcher-dropdown"], [3, "showDialogChange", "configSaved", "showDialog"], [1, "app-icon"], [1, "app-switcher-item", 3, "active", "loading", "--item-color"], [1, "app-switcher-divider"], [1, "app-switcher-item", "configure-item", 3, "click"], [1, "fa-solid", "fa-gear"], [1, "app-switcher-item", 3, "click"], [1, "fa-solid", "fa-spinner", "fa-spin"], [3, "class"]], template: function AppSwitcherComponent_Template(rf, ctx) { if (rf & 1) {
|
|
147
147
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
148
148
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
149
149
|
i0.ɵɵlistener("click", function AppSwitcherComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); });
|
|
150
|
-
i0.ɵɵ
|
|
150
|
+
i0.ɵɵconditionalCreate(2, AppSwitcherComponent_Conditional_2_Template, 1, 0, "i", 3);
|
|
151
|
+
i0.ɵɵconditionalCreate(3, AppSwitcherComponent_Conditional_3_Template, 1, 6, "i", 4);
|
|
151
152
|
i0.ɵɵelement(4, "i", 5);
|
|
152
153
|
i0.ɵɵelementEnd();
|
|
153
|
-
i0.ɵɵ
|
|
154
|
+
i0.ɵɵconditionalCreate(5, AppSwitcherComponent_Conditional_5_Template, 8, 0, "div", 6);
|
|
154
155
|
i0.ɵɵelementEnd();
|
|
155
156
|
i0.ɵɵelementStart(6, "mj-user-app-config", 7, 0);
|
|
156
157
|
i0.ɵɵtwoWayListener("showDialogChange", function AppSwitcherComponent_Template_mj_user_app_config_showDialogChange_6_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.showConfigDialog, $event) || (ctx.showConfigDialog = $event); return i0.ɵɵresetView($event); });
|
|
@@ -159,18 +160,18 @@ export class AppSwitcherComponent {
|
|
|
159
160
|
} if (rf & 2) {
|
|
160
161
|
i0.ɵɵclassProp("loading", ctx.isLoading);
|
|
161
162
|
i0.ɵɵadvance(2);
|
|
162
|
-
i0.ɵɵ
|
|
163
|
+
i0.ɵɵconditional(ctx.isLoading ? 2 : -1);
|
|
163
164
|
i0.ɵɵadvance();
|
|
164
|
-
i0.ɵɵ
|
|
165
|
+
i0.ɵɵconditional(!ctx.isLoading ? 3 : -1);
|
|
165
166
|
i0.ɵɵadvance(2);
|
|
166
|
-
i0.ɵɵ
|
|
167
|
+
i0.ɵɵconditional(ctx.showDropdown ? 5 : -1);
|
|
167
168
|
i0.ɵɵadvance();
|
|
168
169
|
i0.ɵɵtwoWayProperty("showDialog", ctx.showConfigDialog);
|
|
169
|
-
} }, dependencies: [i2.
|
|
170
|
+
} }, dependencies: [i2.UserAppConfigComponent], styles: [".app-switcher-container[_ngcontent-%COMP%] {\n position: relative;\n margin-left: -2px; \n\n}\n\n.app-switcher-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 10px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n}\n.app-switcher-button[_ngcontent-%COMP%] .app-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n width: 24px;\n text-align: center;\n position: relative;\n}\n\n\n.app-switcher-button[_ngcontent-%COMP%] .app-icon[_ngcontent-%COMP%]::after {\n content: \"\";\n position: absolute;\n bottom: -6px;\n left: 2px;\n right: 2px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--active-color, #757575);\n}\n.app-switcher-button[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n.app-switcher-button[_ngcontent-%COMP%] .dropdown-arrow[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #9e9e9e;\n}\n\n.app-switcher-dropdown[_ngcontent-%COMP%] {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 220px;\n width: max-content;\n overflow: hidden;\n z-index: 10000;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.15s;\n font-weight: 500;\n color: #616161;\n position: relative;\n white-space: nowrap;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item[_ngcontent-%COMP%]::before {\n content: \"\";\n position: absolute;\n left: 4px;\n top: 8px;\n bottom: 8px;\n width: 3px;\n border-radius: 2px;\n background-color: var(--item-color, #757575);\n opacity: 0.8;\n transition: all 0.15s;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--item-color, #757575);\n width: 20px;\n text-align: center;\n opacity: 1;\n transition: all 0.15s;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--item-color, #1976d2) 10%, white);\n color: var(--item-color, #1976d2);\n font-weight: 600;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.active[_ngcontent-%COMP%]::before {\n width: 4px;\n left: 3px;\n opacity: 1;\n}\n\n\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.configure-item[_ngcontent-%COMP%] {\n color: #616161;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.configure-item[_ngcontent-%COMP%]::before {\n display: none;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.configure-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #757575;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.configure-item[_ngcontent-%COMP%]:hover {\n color: #424242;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.configure-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: #424242;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 12px;\n}\n\n\n\n.app-switcher-button[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] {\n color: #757575;\n}\n.app-switcher-button[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%]::after {\n \n\n display: none;\n}\n\n\n\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.loading[_ngcontent-%COMP%] {\n pointer-events: none;\n opacity: 0.7;\n}\n.app-switcher-dropdown[_ngcontent-%COMP%] .app-switcher-item.loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--item-color, #757575);\n}"] });
|
|
170
171
|
}
|
|
171
172
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppSwitcherComponent, [{
|
|
172
173
|
type: Component,
|
|
173
|
-
args: [{ selector: 'mj-app-switcher', template: "<div class=\"app-switcher-container\" [class.loading]=\"isLoading\">\n <div class=\"app-switcher-button\"\n
|
|
174
|
+
args: [{ standalone: false, selector: 'mj-app-switcher', template: "<div class=\"app-switcher-container\" [class.loading]=\"isLoading\">\n <div class=\"app-switcher-button\"\n (click)=\"toggleDropdown()\">\n <!-- Show spinner when loading, otherwise show app icon -->\n @if (isLoading) {\n <i class=\"app-icon loading-spinner fa-solid fa-spinner fa-spin\"></i>\n }\n @if (!isLoading) {\n <i class=\"app-icon\" [class]=\"activeApp?.Icon || 'fa-solid fa-cube'\"\n [style.color]=\"activeApp?.GetColor()\"\n [style.--active-color]=\"activeApp?.GetColor()\"></i>\n }\n <i class=\"dropdown-arrow fa-solid fa-chevron-down\"></i>\n </div>\n\n @if (showDropdown) {\n <div class=\"app-switcher-dropdown\">\n @for (app of apps; track app) {\n <div\n class=\"app-switcher-item\"\n [class.active]=\"app.ID === activeApp?.ID\"\n [class.loading]=\"app.ID === loadingAppId\"\n [style.--item-color]=\"app.GetColor()\"\n (click)=\"selectApp(app)\">\n @if (app.ID === loadingAppId) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n @if (app.ID !== loadingAppId) {\n <i [class]=\"app.Icon || 'fa-solid fa-cube'\"></i>\n }\n <span>{{ app.Name }}</span>\n </div>\n }\n <!-- Divider -->\n <div class=\"app-switcher-divider\"></div>\n <!-- Configure option -->\n <div class=\"app-switcher-item configure-item\" (click)=\"openConfigDialog()\">\n <i class=\"fa-solid fa-gear\"></i>\n <span>Configure...</span>\n </div>\n </div>\n }\n</div>\n\n<!-- App Configuration Dialog -->\n<mj-user-app-config\n #appConfigDialog\n [(showDialog)]=\"showConfigDialog\"\n (configSaved)=\"onConfigSaved()\">\n</mj-user-app-config>\n", styles: [".app-switcher-container {\n position: relative;\n margin-left: -2px; /* Fine-tune alignment when no nav-bar icons to the left */\n}\n\n.app-switcher-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 10px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s;\n user-select: none;\n position: relative;\n}\n.app-switcher-button .app-icon {\n font-size: 20px;\n width: 24px;\n text-align: center;\n position: relative;\n}\n/* Color underline under the icon only, not the caret */\n.app-switcher-button .app-icon::after {\n content: \"\";\n position: absolute;\n bottom: -6px;\n left: 2px;\n right: 2px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--active-color, #757575);\n}\n.app-switcher-button:hover {\n background: #f5f5f5;\n}\n.app-switcher-button .dropdown-arrow {\n font-size: 10px;\n color: #9e9e9e;\n}\n\n.app-switcher-dropdown {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 220px;\n width: max-content;\n overflow: hidden;\n z-index: 10000;\n}\n.app-switcher-dropdown .app-switcher-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.15s;\n font-weight: 500;\n color: #616161;\n position: relative;\n white-space: nowrap;\n}\n.app-switcher-dropdown .app-switcher-item::before {\n content: \"\";\n position: absolute;\n left: 4px;\n top: 8px;\n bottom: 8px;\n width: 3px;\n border-radius: 2px;\n background-color: var(--item-color, #757575);\n opacity: 0.8;\n transition: all 0.15s;\n}\n.app-switcher-dropdown .app-switcher-item i {\n font-size: 18px;\n color: var(--item-color, #757575);\n width: 20px;\n text-align: center;\n opacity: 1;\n transition: all 0.15s;\n}\n.app-switcher-dropdown .app-switcher-item:hover {\n background: #f5f5f5;\n}\n.app-switcher-dropdown .app-switcher-item:hover::before {\n opacity: 1;\n}\n.app-switcher-dropdown .app-switcher-item.active {\n background: color-mix(in srgb, var(--item-color, #1976d2) 10%, white);\n color: var(--item-color, #1976d2);\n font-weight: 600;\n}\n.app-switcher-dropdown .app-switcher-item.active::before {\n width: 4px;\n left: 3px;\n opacity: 1;\n}\n/* Configure option - no color line, neutral gray styling */\n.app-switcher-dropdown .app-switcher-item.configure-item {\n color: #616161;\n}\n.app-switcher-dropdown .app-switcher-item.configure-item::before {\n display: none;\n}\n.app-switcher-dropdown .app-switcher-item.configure-item i {\n color: #757575;\n}\n.app-switcher-dropdown .app-switcher-item.configure-item:hover {\n color: #424242;\n}\n.app-switcher-dropdown .app-switcher-item.configure-item:hover i {\n color: #424242;\n}\n.app-switcher-dropdown .app-switcher-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 12px;\n}\n\n/* Loading state for app switcher button */\n.app-switcher-button .loading-spinner {\n color: #757575;\n}\n.app-switcher-button .loading-spinner::after {\n /* Hide the underline when showing spinner */\n display: none;\n}\n\n/* Loading state for dropdown items */\n.app-switcher-dropdown .app-switcher-item.loading {\n pointer-events: none;\n opacity: 0.7;\n}\n.app-switcher-dropdown .app-switcher-item.loading i {\n color: var(--item-color, #757575);\n}\n"] }]
|
|
174
175
|
}], () => [{ type: i1.ApplicationManager }], { activeApp: [{
|
|
175
176
|
type: Input
|
|
176
177
|
}], isViewingSystemTab: [{
|
|
@@ -186,5 +187,5 @@ export class AppSwitcherComponent {
|
|
|
186
187
|
type: HostListener,
|
|
187
188
|
args: ['document:click', ['$event']]
|
|
188
189
|
}] }); })();
|
|
189
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppSwitcherComponent, { className: "AppSwitcherComponent", filePath: "src/lib/shell/components/header/app-switcher.component.ts", lineNumber:
|
|
190
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppSwitcherComponent, { className: "AppSwitcherComponent", filePath: "src/lib/shell/components/header/app-switcher.component.ts", lineNumber: 15 }); })();
|
|
190
191
|
//# sourceMappingURL=app-switcher.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-switcher.component.js","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-switcher.component.ts","../../../../../src/lib/shell/components/header/app-switcher.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"app-switcher.component.js","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-switcher.component.ts","../../../../../src/lib/shell/components/header/app-switcher.component.html"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-container.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/tabs/tab-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,SAAS,EACT,aAAa,EAEb,UAAU,EACV,cAAc,EACd,mBAAmB,EAInB,iBAAiB,EAGjB,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAKnB,MAAM,qCAAqC,CAAC;;AAO7C;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"tab-container.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/tabs/tab-container.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ import { LogError, Metadata } from '@memberjunction/core';
|
|
|
6
6
|
import { ComponentCacheManager } from './component-cache-manager';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@memberjunction/ng-base-application";
|
|
9
|
-
import * as i2 from "@angular/common";
|
|
10
9
|
const _c0 = ["glContainer"];
|
|
11
10
|
const _c1 = ["directContentContainer"];
|
|
12
11
|
function TabContainerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -15,29 +14,29 @@ function TabContainerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
15
14
|
function TabContainerComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
16
15
|
i0.ɵɵelement(0, "div", 4, 1);
|
|
17
16
|
} }
|
|
18
|
-
function
|
|
17
|
+
function TabContainerComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
19
18
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
20
19
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
|
|
21
|
-
i0.ɵɵlistener("click", function
|
|
20
|
+
i0.ɵɵlistener("click", function TabContainerComponent_Conditional_3_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContextPin()); });
|
|
22
21
|
i0.ɵɵelement(2, "i", 8);
|
|
23
22
|
i0.ɵɵelementStart(3, "span");
|
|
24
23
|
i0.ɵɵtext(4);
|
|
25
24
|
i0.ɵɵelementEnd()();
|
|
26
25
|
i0.ɵɵelement(5, "div", 9);
|
|
27
26
|
i0.ɵɵelementStart(6, "div", 7);
|
|
28
|
-
i0.ɵɵlistener("click", function
|
|
27
|
+
i0.ɵɵlistener("click", function TabContainerComponent_Conditional_3_Template_div_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContextClose()); });
|
|
29
28
|
i0.ɵɵelement(7, "i", 10);
|
|
30
29
|
i0.ɵɵelementStart(8, "span");
|
|
31
30
|
i0.ɵɵtext(9, "Close Tab");
|
|
32
31
|
i0.ɵɵelementEnd()();
|
|
33
32
|
i0.ɵɵelementStart(10, "div", 7);
|
|
34
|
-
i0.ɵɵlistener("click", function
|
|
33
|
+
i0.ɵɵlistener("click", function TabContainerComponent_Conditional_3_Template_div_click_10_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContextCloseOthers()); });
|
|
35
34
|
i0.ɵɵelement(11, "i", 11);
|
|
36
35
|
i0.ɵɵelementStart(12, "span");
|
|
37
36
|
i0.ɵɵtext(13, "Close Others");
|
|
38
37
|
i0.ɵɵelementEnd()();
|
|
39
38
|
i0.ɵɵelementStart(14, "div", 7);
|
|
40
|
-
i0.ɵɵlistener("click", function
|
|
39
|
+
i0.ɵɵlistener("click", function TabContainerComponent_Conditional_3_Template_div_click_14_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onContextCloseToRight()); });
|
|
41
40
|
i0.ɵɵelement(15, "i", 12);
|
|
42
41
|
i0.ɵɵelementStart(16, "span");
|
|
43
42
|
i0.ɵɵtext(17, "Close to Right");
|
|
@@ -955,28 +954,28 @@ export class TabContainerComponent {
|
|
|
955
954
|
}
|
|
956
955
|
static ɵfac = function TabContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TabContainerComponent)(i0.ɵɵdirectiveInject(i1.GoldenLayoutManager), i0.ɵɵdirectiveInject(i1.WorkspaceStateManager), i0.ɵɵdirectiveInject(i1.ApplicationManager), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.EnvironmentInjector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
957
956
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabContainerComponent, selectors: [["mj-tab-container"]], viewQuery: function TabContainerComponent_Query(rf, ctx) { if (rf & 1) {
|
|
958
|
-
i0.ɵɵviewQuery(_c0, 5);
|
|
959
|
-
i0.ɵɵviewQuery(_c1, 5);
|
|
957
|
+
i0.ɵɵviewQuery(_c0, 5)(_c1, 5);
|
|
960
958
|
} if (rf & 2) {
|
|
961
959
|
let _t;
|
|
962
960
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.glContainer = _t.first);
|
|
963
961
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.directContentContainer = _t.first);
|
|
964
962
|
} }, hostBindings: function TabContainerComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
965
|
-
i0.ɵɵlistener("resize", function TabContainerComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); },
|
|
966
|
-
} }, outputs: { firstResourceLoadComplete: "firstResourceLoadComplete", layoutInitError: "layoutInitError" }, decls: 4, vars: 2, consts: [["directContentContainer", ""], ["glContainer", ""], [1, "tab-container"], [1, "direct-content-container"], [1, "gl-container"], [
|
|
963
|
+
i0.ɵɵlistener("resize", function TabContainerComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, i0.ɵɵresolveWindow);
|
|
964
|
+
} }, outputs: { firstResourceLoadComplete: "firstResourceLoadComplete", layoutInitError: "layoutInitError" }, standalone: false, decls: 4, vars: 2, consts: [["directContentContainer", ""], ["glContainer", ""], [1, "tab-container"], [1, "direct-content-container"], [1, "gl-container"], [1, "context-menu", 3, "left", "top"], [1, "context-menu"], [1, "context-menu-item", 3, "click"], [1, "fa-solid", "fa-thumbtack"], [1, "context-menu-divider"], [1, "fa-solid", "fa-xmark"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-angles-right"]], template: function TabContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
967
965
|
i0.ɵɵelementStart(0, "div", 2);
|
|
968
|
-
i0.ɵɵ
|
|
966
|
+
i0.ɵɵconditionalCreate(1, TabContainerComponent_Conditional_1_Template, 2, 0, "div", 3)(2, TabContainerComponent_Conditional_2_Template, 2, 0, "div", 4);
|
|
967
|
+
i0.ɵɵconditionalCreate(3, TabContainerComponent_Conditional_3_Template, 18, 5, "div", 5);
|
|
969
968
|
i0.ɵɵelementEnd();
|
|
970
969
|
} if (rf & 2) {
|
|
971
970
|
i0.ɵɵadvance();
|
|
972
971
|
i0.ɵɵconditional(ctx.useSingleResourceMode ? 1 : 2);
|
|
973
972
|
i0.ɵɵadvance(2);
|
|
974
|
-
i0.ɵɵ
|
|
975
|
-
} },
|
|
973
|
+
i0.ɵɵconditional(ctx.contextMenuVisible ? 3 : -1);
|
|
974
|
+
} }, styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.tab-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n width: 100%;\n overflow: hidden;\n}\n\n.gl-container {\n flex: 1;\n width: 100%;\n height: 100%;\n position: relative;\n background: white;\n}\n\n/* Direct content container for single-resource mode */\n/* Renders components directly without Golden Layout overhead */\n.direct-content-container {\n flex: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n overflow: hidden;\n}\n\n.tab-content-container {\n background: white;\n color: #333;\n padding: 20px;\n}\n\n/* Context Menu */\n.context-menu {\n position: fixed;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 150px;\n z-index: 10001;\n overflow: hidden;\n}\n\n.context-menu .context-menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n cursor: pointer;\n font-size: 13px;\n color: #424242;\n transition: background 0.15s;\n}\n\n.context-menu .context-menu-item i {\n width: 16px;\n text-align: center;\n color: #757575;\n}\n\n.context-menu .context-menu-item:hover {\n background: #f5f5f5;\n}\n\n.context-menu .context-menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n}\n\n/* Override Golden Layout styles */\n/* Global overrides */\n\n/* Ensure GL root container fills available space */\nmj-tab-container .lm_goldenlayout {\n width: 100% !important;\n height: 100% !important;\n}\n\n/* Ensure the root layout item fills space */\nmj-tab-container .lm_root {\n width: 100% !important;\n height: 100% !important;\n}\n\n/* Ensure proper box-sizing for all GL layout elements */\nmj-tab-container .lm_item,\nmj-tab-container .lm_content,\nmj-tab-container .lm_stack,\nmj-tab-container .lm_row,\nmj-tab-container .lm_column {\n box-sizing: border-box !important;\n}\n\n/* Ensure layout items don't overflow */\nmj-tab-container .lm_item {\n overflow: hidden !important;\n}\n\n/* Fix for .lm_items - the content container inside stacks */\n/* This is separate from .lm_item - it holds the actual tab content */\nmj-tab-container .lm_items {\n width: 100% !important;\n height: calc(100% - 38px) !important; /* Account for header height (38px) */\n box-sizing: border-box !important;\n position: relative !important;\n}\n\n/* When tabs are maximized, no header visible */\nmj-tab-container .lm_stack.lm_maximised > .lm_items {\n height: 100% !important;\n}\n\n/* Target the anonymous ComponentItem div inside lm_items (has no class) */\n/* Created in golden-layout/src/ts/items/component-item.ts:51 without a class */\n/* NOTE: Do NOT set display here - GL uses display:none to hide inactive tabs */\nmj-tab-container .lm_items > div {\n width: 100% !important;\n height: 100% !important;\n box-sizing: border-box !important;\n flex-direction: column !important;\n}\n\n/* Only apply flex display to the active/visible tab content div */\nmj-tab-container .lm_items > div:not([style*=\"display: none\"]) {\n display: flex !important;\n}\n\n/* Clearfix for float-based row layout - GL uses float:left for horizontal panes */\nmj-tab-container .lm_row::after {\n content: \"\" !important;\n display: table !important;\n clear: both !important;\n}\n\n/* Force content children to respect parent bounds (GL sets pixel widths inline) */\nmj-tab-container .lm_content > * {\n max-width: 100% !important;\n width: 100% !important;\n}\n\nmj-tab-container .lm_content {\n background: white !important;\n display: flex !important;\n flex-direction: column !important;\n height: 100% !important;\n width: 100% !important;\n}\n\nmj-tab-container .lm_item_container {\n background: white !important;\n}\n\n/* Tab content wrapper - allow scrolling */\n.tab-content-wrapper {\n overflow: auto !important;\n}\n\n/* Make tabs larger and easier to click */\nmj-tab-container .lm_header {\n height: 38px !important;\n padding-top: 2px !important;\n padding-left: 4px !important;\n background: #f5f5f5 !important;\n border-bottom: 1px solid #ebebeb !important;\n overflow: visible !important;\n box-sizing: border-box !important;\n}\n\nmj-tab-container .lm_tabs {\n height: 36px !important;\n}\n\n/* Hide Golden Layout window controls */\nmj-tab-container .lm_controls {\n display: none !important;\n}\n\nmj-tab-container .lm_header .lm_tab {\n padding: 0 16px !important;\n font-size: 13px !important;\n height: 35px !important;\n line-height: 35px !important;\n box-sizing: border-box !important;\n cursor: pointer !important;\n user-select: none !important;\n background: transparent !important;\n border: none !important;\n border-bottom: 1px solid #ebebeb !important;\n transition: all 0.15s ease !important;\n position: relative !important;\n z-index: 1 !important;\n margin-right: 1px !important;\n}\n\n/* App color accent - left edge indicator */\nmj-tab-container .lm_header .lm_tab::before {\n content: '' !important;\n position: absolute !important;\n left: 0 !important;\n top: 4px !important;\n bottom: 4px !important;\n width: 3px !important;\n border-radius: 0 2px 2px 0 !important;\n background-color: var(--app-color, transparent) !important;\n opacity: 0.6 !important;\n transition: all 0.15s ease !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover {\n background: #e8e8e8 !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover .lm_close_tab {\n opacity: 0.7 !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover::before {\n opacity: 0.8 !important;\n}\n\nmj-tab-container .lm_header .lm_tab.lm_active {\n background: white !important;\n height: 36px !important;\n margin-bottom: -1px !important;\n margin-right: 0 !important;\n border: 1px solid #ebebeb !important;\n border-bottom-color: white !important;\n border-radius: 4px 4px 0 0 !important;\n z-index: 2 !important;\n}\n\n/* Enhanced app color accent for active tab */\nmj-tab-container .lm_header .lm_tab.lm_active::before {\n opacity: 1 !important;\n width: 3px !important;\n top: 2px !important;\n bottom: 2px !important;\n box-shadow: 0 0 6px var(--app-color, transparent) !important;\n}\n\nmj-tab-container .lm_title {\n cursor: pointer !important;\n user-select: none !important;\n}\n\nmj-tab-container .lm_close_tab {\n position: absolute !important;\n right: 4px !important;\n top: 50% !important;\n transform: translateY(-50%) !important;\n width: 16px !important;\n height: 16px !important;\n cursor: pointer !important;\n opacity: 0 !important;\n transition: all 0.15s ease !important;\n flex-shrink: 0 !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n font-size: 10px !important;\n color: #757575 !important;\n}\n\nmj-tab-container .lm_close_tab:hover {\n opacity: 1 !important;\n color: #c62828 !important;\n}\n\n/* Show close button on hover (except pinned) */\nmj-tab-container .lm_header .lm_tab:hover:not(.pinned) .lm_close_tab {\n opacity: 0.7 !important;\n}\n\n/* Pinned tabs never show close button */\nmj-tab-container .lm_header .lm_tab.pinned .lm_close_tab {\n display: none !important;\n}\n\n/* Hide close button on active tab by default */\nmj-tab-container .lm_active .lm_close_tab {\n opacity: 0 !important;\n}\n\n/* Show close button when hovering active tab */\nmj-tab-container .lm_active:hover .lm_close_tab {\n opacity: 0.7 !important;\n}\n\n/* Adjust padding for close button */\nmj-tab-container .lm_header .lm_tab {\n padding-right: 24px !important;\n}\n"], encapsulation: 2 });
|
|
976
975
|
}
|
|
977
976
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabContainerComponent, [{
|
|
978
977
|
type: Component,
|
|
979
|
-
args: [{ selector: 'mj-tab-container', encapsulation: ViewEncapsulation.None, template: "<div class=\"tab-container\">\n\n <!-- Single-Resource Mode: Direct component rendering without Golden Layout -->\n <!-- This avoids the 20px height issue when GL header is hidden -->\n @if (useSingleResourceMode) {\n <div #directContentContainer class=\"direct-content-container\"></div>\n } @else {\n <!-- Multi-Tab Mode: Golden Layout Container -->\n <div #glContainer class=\"gl-container\"></div>\n }\n\n <!-- Context Menu (only relevant in multi-tab mode) -->\n <div\n
|
|
978
|
+
args: [{ standalone: false, selector: 'mj-tab-container', encapsulation: ViewEncapsulation.None, template: "<div class=\"tab-container\">\n\n <!-- Single-Resource Mode: Direct component rendering without Golden Layout -->\n <!-- This avoids the 20px height issue when GL header is hidden -->\n @if (useSingleResourceMode) {\n <div #directContentContainer class=\"direct-content-container\"></div>\n } @else {\n <!-- Multi-Tab Mode: Golden Layout Container -->\n <div #glContainer class=\"gl-container\"></div>\n }\n\n <!-- Context Menu (only relevant in multi-tab mode) -->\n @if (contextMenuVisible) {\n <div\n class=\"context-menu\"\n [style.left.px]=\"contextMenuX\"\n [style.top.px]=\"contextMenuY\">\n <div class=\"context-menu-item\" (click)=\"onContextPin()\">\n <i class=\"fa-solid fa-thumbtack\"></i>\n <span>{{ isContextTabPinned ? 'Unpin Tab' : 'Pin Tab' }}</span>\n </div>\n <div class=\"context-menu-divider\"></div>\n <div class=\"context-menu-item\" (click)=\"onContextClose()\">\n <i class=\"fa-solid fa-xmark\"></i>\n <span>Close Tab</span>\n </div>\n <div class=\"context-menu-item\" (click)=\"onContextCloseOthers()\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Close Others</span>\n </div>\n <div class=\"context-menu-item\" (click)=\"onContextCloseToRight()\">\n <i class=\"fa-solid fa-angles-right\"></i>\n <span>Close to Right</span>\n </div>\n </div>\n }\n</div>\n", styles: [":host {\n display: flex;\n flex: 1;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.tab-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n width: 100%;\n overflow: hidden;\n}\n\n.gl-container {\n flex: 1;\n width: 100%;\n height: 100%;\n position: relative;\n background: white;\n}\n\n/* Direct content container for single-resource mode */\n/* Renders components directly without Golden Layout overhead */\n.direct-content-container {\n flex: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n overflow: hidden;\n}\n\n.tab-content-container {\n background: white;\n color: #333;\n padding: 20px;\n}\n\n/* Context Menu */\n.context-menu {\n position: fixed;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n min-width: 150px;\n z-index: 10001;\n overflow: hidden;\n}\n\n.context-menu .context-menu-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n cursor: pointer;\n font-size: 13px;\n color: #424242;\n transition: background 0.15s;\n}\n\n.context-menu .context-menu-item i {\n width: 16px;\n text-align: center;\n color: #757575;\n}\n\n.context-menu .context-menu-item:hover {\n background: #f5f5f5;\n}\n\n.context-menu .context-menu-divider {\n height: 1px;\n background: #e0e0e0;\n margin: 4px 0;\n}\n\n/* Override Golden Layout styles */\n/* Global overrides */\n\n/* Ensure GL root container fills available space */\nmj-tab-container .lm_goldenlayout {\n width: 100% !important;\n height: 100% !important;\n}\n\n/* Ensure the root layout item fills space */\nmj-tab-container .lm_root {\n width: 100% !important;\n height: 100% !important;\n}\n\n/* Ensure proper box-sizing for all GL layout elements */\nmj-tab-container .lm_item,\nmj-tab-container .lm_content,\nmj-tab-container .lm_stack,\nmj-tab-container .lm_row,\nmj-tab-container .lm_column {\n box-sizing: border-box !important;\n}\n\n/* Ensure layout items don't overflow */\nmj-tab-container .lm_item {\n overflow: hidden !important;\n}\n\n/* Fix for .lm_items - the content container inside stacks */\n/* This is separate from .lm_item - it holds the actual tab content */\nmj-tab-container .lm_items {\n width: 100% !important;\n height: calc(100% - 38px) !important; /* Account for header height (38px) */\n box-sizing: border-box !important;\n position: relative !important;\n}\n\n/* When tabs are maximized, no header visible */\nmj-tab-container .lm_stack.lm_maximised > .lm_items {\n height: 100% !important;\n}\n\n/* Target the anonymous ComponentItem div inside lm_items (has no class) */\n/* Created in golden-layout/src/ts/items/component-item.ts:51 without a class */\n/* NOTE: Do NOT set display here - GL uses display:none to hide inactive tabs */\nmj-tab-container .lm_items > div {\n width: 100% !important;\n height: 100% !important;\n box-sizing: border-box !important;\n flex-direction: column !important;\n}\n\n/* Only apply flex display to the active/visible tab content div */\nmj-tab-container .lm_items > div:not([style*=\"display: none\"]) {\n display: flex !important;\n}\n\n/* Clearfix for float-based row layout - GL uses float:left for horizontal panes */\nmj-tab-container .lm_row::after {\n content: \"\" !important;\n display: table !important;\n clear: both !important;\n}\n\n/* Force content children to respect parent bounds (GL sets pixel widths inline) */\nmj-tab-container .lm_content > * {\n max-width: 100% !important;\n width: 100% !important;\n}\n\nmj-tab-container .lm_content {\n background: white !important;\n display: flex !important;\n flex-direction: column !important;\n height: 100% !important;\n width: 100% !important;\n}\n\nmj-tab-container .lm_item_container {\n background: white !important;\n}\n\n/* Tab content wrapper - allow scrolling */\n.tab-content-wrapper {\n overflow: auto !important;\n}\n\n/* Make tabs larger and easier to click */\nmj-tab-container .lm_header {\n height: 38px !important;\n padding-top: 2px !important;\n padding-left: 4px !important;\n background: #f5f5f5 !important;\n border-bottom: 1px solid #ebebeb !important;\n overflow: visible !important;\n box-sizing: border-box !important;\n}\n\nmj-tab-container .lm_tabs {\n height: 36px !important;\n}\n\n/* Hide Golden Layout window controls */\nmj-tab-container .lm_controls {\n display: none !important;\n}\n\nmj-tab-container .lm_header .lm_tab {\n padding: 0 16px !important;\n font-size: 13px !important;\n height: 35px !important;\n line-height: 35px !important;\n box-sizing: border-box !important;\n cursor: pointer !important;\n user-select: none !important;\n background: transparent !important;\n border: none !important;\n border-bottom: 1px solid #ebebeb !important;\n transition: all 0.15s ease !important;\n position: relative !important;\n z-index: 1 !important;\n margin-right: 1px !important;\n}\n\n/* App color accent - left edge indicator */\nmj-tab-container .lm_header .lm_tab::before {\n content: '' !important;\n position: absolute !important;\n left: 0 !important;\n top: 4px !important;\n bottom: 4px !important;\n width: 3px !important;\n border-radius: 0 2px 2px 0 !important;\n background-color: var(--app-color, transparent) !important;\n opacity: 0.6 !important;\n transition: all 0.15s ease !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover {\n background: #e8e8e8 !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover .lm_close_tab {\n opacity: 0.7 !important;\n}\n\nmj-tab-container .lm_header .lm_tab:hover::before {\n opacity: 0.8 !important;\n}\n\nmj-tab-container .lm_header .lm_tab.lm_active {\n background: white !important;\n height: 36px !important;\n margin-bottom: -1px !important;\n margin-right: 0 !important;\n border: 1px solid #ebebeb !important;\n border-bottom-color: white !important;\n border-radius: 4px 4px 0 0 !important;\n z-index: 2 !important;\n}\n\n/* Enhanced app color accent for active tab */\nmj-tab-container .lm_header .lm_tab.lm_active::before {\n opacity: 1 !important;\n width: 3px !important;\n top: 2px !important;\n bottom: 2px !important;\n box-shadow: 0 0 6px var(--app-color, transparent) !important;\n}\n\nmj-tab-container .lm_title {\n cursor: pointer !important;\n user-select: none !important;\n}\n\nmj-tab-container .lm_close_tab {\n position: absolute !important;\n right: 4px !important;\n top: 50% !important;\n transform: translateY(-50%) !important;\n width: 16px !important;\n height: 16px !important;\n cursor: pointer !important;\n opacity: 0 !important;\n transition: all 0.15s ease !important;\n flex-shrink: 0 !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n font-size: 10px !important;\n color: #757575 !important;\n}\n\nmj-tab-container .lm_close_tab:hover {\n opacity: 1 !important;\n color: #c62828 !important;\n}\n\n/* Show close button on hover (except pinned) */\nmj-tab-container .lm_header .lm_tab:hover:not(.pinned) .lm_close_tab {\n opacity: 0.7 !important;\n}\n\n/* Pinned tabs never show close button */\nmj-tab-container .lm_header .lm_tab.pinned .lm_close_tab {\n display: none !important;\n}\n\n/* Hide close button on active tab by default */\nmj-tab-container .lm_active .lm_close_tab {\n opacity: 0 !important;\n}\n\n/* Show close button when hovering active tab */\nmj-tab-container .lm_active:hover .lm_close_tab {\n opacity: 0.7 !important;\n}\n\n/* Adjust padding for close button */\nmj-tab-container .lm_header .lm_tab {\n padding-right: 24px !important;\n}\n"] }]
|
|
980
979
|
}], () => [{ type: i1.GoldenLayoutManager }, { type: i1.WorkspaceStateManager }, { type: i1.ApplicationManager }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i0.ChangeDetectorRef }], { glContainer: [{
|
|
981
980
|
type: ViewChild,
|
|
982
981
|
args: ['glContainer', { static: false }]
|
|
@@ -991,5 +990,5 @@ export class TabContainerComponent {
|
|
|
991
990
|
type: HostListener,
|
|
992
991
|
args: ['window:resize']
|
|
993
992
|
}] }); })();
|
|
994
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabContainerComponent, { className: "TabContainerComponent", filePath: "src/lib/shell/components/tabs/tab-container.component.ts", lineNumber:
|
|
993
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabContainerComponent, { className: "TabContainerComponent", filePath: "src/lib/shell/components/tabs/tab-container.component.ts", lineNumber: 51 }); })();
|
|
995
994
|
//# sourceMappingURL=tab-container.component.js.map
|