@memberjunction/ng-explorer-core 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/ask-skip/ask-skip.component.d.ts +83 -0
- package/dist/lib/ask-skip/ask-skip.component.js +591 -0
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +12 -0
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +49 -0
- package/dist/lib/auth-button/auth-button.component.d.ts +12 -0
- package/dist/lib/auth-button/auth-button.component.js +43 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +14 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +55 -0
- package/dist/lib/data-browser-component/data-browser.component.d.ts +14 -0
- package/dist/lib/data-browser-component/data-browser.component.js +91 -0
- package/dist/lib/favorites/favorites.component.d.ts +13 -0
- package/dist/lib/favorites/favorites.component.js +100 -0
- package/dist/lib/generic/base-form-component.d.ts +76 -0
- package/dist/lib/generic/base-form-component.js +436 -0
- package/dist/lib/generic/base-form-section-component.d.ts +6 -0
- package/dist/lib/generic/base-form-section-component.js +10 -0
- package/dist/lib/generic/base-record-component.d.ts +6 -0
- package/dist/lib/generic/base-record-component.js +13 -0
- package/dist/lib/generic/base-resource-component.d.ts +34 -0
- package/dist/lib/generic/base-resource-component.js +75 -0
- package/dist/lib/generic/dynamic-chart.d.ts +26 -0
- package/dist/lib/generic/dynamic-chart.js +180 -0
- package/dist/lib/generic/dynamic-grid.d.ts +24 -0
- package/dist/lib/generic/dynamic-grid.js +135 -0
- package/dist/lib/generic/dynamic-report.d.ts +38 -0
- package/dist/lib/generic/dynamic-report.js +399 -0
- package/dist/lib/generic/form-toolbar.d.ts +7 -0
- package/dist/lib/generic/form-toolbar.js +98 -0
- package/dist/lib/generic/resource-container-component.d.ts +25 -0
- package/dist/lib/generic/resource-container-component.js +103 -0
- package/dist/lib/generic/section-loader-component.d.ts +17 -0
- package/dist/lib/generic/section-loader-component.js +65 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +16 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +91 -0
- package/dist/lib/guards/auth-guard.service.d.ts +11 -0
- package/dist/lib/guards/auth-guard.service.js +24 -0
- package/dist/lib/guards/entities.guard.d.ts +3 -0
- package/dist/lib/guards/entities.guard.js +38 -0
- package/dist/lib/header/MSFT_UserImageService.d.ts +11 -0
- package/dist/lib/header/MSFT_UserImageService.js +23 -0
- package/dist/lib/header/header.component.d.ts +51 -0
- package/dist/lib/header/header.component.js +208 -0
- package/dist/lib/home-component/home.component.d.ts +9 -0
- package/dist/lib/home-component/home.component.js +54 -0
- package/dist/lib/join-grid/join-grid.component.d.ts +30 -0
- package/dist/lib/join-grid/join-grid.component.js +225 -0
- package/dist/lib/navigation/navigation.component.d.ts +102 -0
- package/dist/lib/navigation/navigation.component.js +970 -0
- package/dist/lib/report-browser-component/report-browser.component.d.ts +14 -0
- package/dist/lib/report-browser-component/report-browser.component.js +55 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +49 -0
- package/dist/lib/resource-wrappers/record-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/record-resource.component.js +55 -0
- package/dist/lib/resource-wrappers/report-resource.component.d.ts +10 -0
- package/dist/lib/resource-wrappers/report-resource.component.js +53 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts +1 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js +12 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +10 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.js +50 -0
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/view-resource.component.js +51 -0
- package/dist/lib/settings/settings.component.d.ts +5 -0
- package/dist/lib/settings/settings.component.js +14 -0
- package/dist/lib/shared/shared.service.d.ts +87 -0
- package/dist/lib/shared/shared.service.js +302 -0
- package/dist/lib/shared/urlPipe.d.ts +7 -0
- package/dist/lib/shared/urlPipe.js +16 -0
- package/dist/lib/single-application/single-application.component.d.ts +21 -0
- package/dist/lib/single-application/single-application.component.js +132 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +28 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +212 -0
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +26 -0
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +169 -0
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts +55 -0
- package/dist/lib/single-dashboard/single-dashboard.component.js +266 -0
- package/dist/lib/single-entity/single-entity.component.d.ts +33 -0
- package/dist/lib/single-entity/single-entity.component.js +252 -0
- package/dist/lib/single-record/single-record.component.d.ts +20 -0
- package/dist/lib/single-record/single-record.component.js +95 -0
- package/dist/lib/single-report/single-report.component.d.ts +22 -0
- package/dist/lib/single-report/single-report.component.js +87 -0
- package/dist/lib/single-search-result/single-search-result.component.d.ts +15 -0
- package/dist/lib/single-search-result/single-search-result.component.js +60 -0
- package/dist/lib/single-view/single-view.component.d.ts +34 -0
- package/dist/lib/single-view/single-view.component.js +154 -0
- package/dist/lib/user-notifications/user-notifications.component.d.ts +32 -0
- package/dist/lib/user-notifications/user-notifications.component.js +282 -0
- package/dist/lib/user-profile/user-profile.component.d.ts +10 -0
- package/dist/lib/user-profile/user-profile.component.js +41 -0
- package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts +70 -0
- package/dist/lib/user-view-properties/view-properties-dialog.component.js +568 -0
- package/dist/module.d.ts +64 -0
- package/dist/module.js +332 -0
- package/dist/public-api.d.ts +47 -0
- package/dist/public-api.js +50 -0
- package/package.json +39 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "../favorites/favorites.component";
|
|
5
|
+
export class HomeComponent {
|
|
6
|
+
constructor(router) {
|
|
7
|
+
this.router = router;
|
|
8
|
+
}
|
|
9
|
+
navigate(route) {
|
|
10
|
+
this.router.navigate([route]);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
HomeComponent.ɵfac = function HomeComponent_Factory(t) { return new (t || HomeComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
|
|
14
|
+
HomeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HomeComponent, selectors: [["app-home"]], decls: 28, vars: 0, consts: [[1, "card-container"], [1, "card-header-entity"], [1, "title-wrap"], [1, "main-area"], [1, "nav-container"], [1, "nav-item", 3, "click"], [1, "k-icon", "k-i-user"], [1, "k-icon", "k-i-table"], [1, "k-icon", "k-i-aggregate-fields"], [1, "k-icon", "k-i-graph"], [1, "k-icon", "k-i-gear"], [1, "home-favorites"]], template: function HomeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h1");
|
|
16
|
+
i0.ɵɵtext(4, "Home");
|
|
17
|
+
i0.ɵɵelementEnd()()();
|
|
18
|
+
i0.ɵɵelementStart(5, "div", 3)(6, "div", 4)(7, "div", 5);
|
|
19
|
+
i0.ɵɵlistener("click", function HomeComponent_Template_div_click_7_listener() { return ctx.navigate("askskip"); });
|
|
20
|
+
i0.ɵɵelement(8, "span", 6);
|
|
21
|
+
i0.ɵɵelementStart(9, "span");
|
|
22
|
+
i0.ɵɵtext(10, "Ask Skip");
|
|
23
|
+
i0.ɵɵelementEnd()();
|
|
24
|
+
i0.ɵɵelementStart(11, "div", 5);
|
|
25
|
+
i0.ɵɵlistener("click", function HomeComponent_Template_div_click_11_listener() { return ctx.navigate("data"); });
|
|
26
|
+
i0.ɵɵelement(12, "span", 7);
|
|
27
|
+
i0.ɵɵelementStart(13, "span");
|
|
28
|
+
i0.ɵɵtext(14, "Data");
|
|
29
|
+
i0.ɵɵelementEnd()();
|
|
30
|
+
i0.ɵɵelementStart(15, "div", 5);
|
|
31
|
+
i0.ɵɵlistener("click", function HomeComponent_Template_div_click_15_listener() { return ctx.navigate("dashboards"); });
|
|
32
|
+
i0.ɵɵelement(16, "span", 8);
|
|
33
|
+
i0.ɵɵelementStart(17, "span");
|
|
34
|
+
i0.ɵɵtext(18, "Dashboards");
|
|
35
|
+
i0.ɵɵelementEnd()();
|
|
36
|
+
i0.ɵɵelementStart(19, "div", 5);
|
|
37
|
+
i0.ɵɵlistener("click", function HomeComponent_Template_div_click_19_listener() { return ctx.navigate("reports"); });
|
|
38
|
+
i0.ɵɵelement(20, "span", 9);
|
|
39
|
+
i0.ɵɵelementStart(21, "span");
|
|
40
|
+
i0.ɵɵtext(22, "Reports");
|
|
41
|
+
i0.ɵɵelementEnd()();
|
|
42
|
+
i0.ɵɵelementStart(23, "div", 5);
|
|
43
|
+
i0.ɵɵlistener("click", function HomeComponent_Template_div_click_23_listener() { return ctx.navigate("settings"); });
|
|
44
|
+
i0.ɵɵelement(24, "span", 10);
|
|
45
|
+
i0.ɵɵelementStart(25, "span");
|
|
46
|
+
i0.ɵɵtext(26, "Settings");
|
|
47
|
+
i0.ɵɵelementEnd()()();
|
|
48
|
+
i0.ɵɵelement(27, "app-favorites", 11);
|
|
49
|
+
i0.ɵɵelementEnd()();
|
|
50
|
+
} }, dependencies: [i2.FavoritesComponent], styles: [".nav-container[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-wrap: wrap;\r\n}\r\n.nav-item[_ngcontent-%COMP%] {\r\n border: solid 1px lightgray;\r\n border-radius: 5px;\r\n width: 150px;;\r\n height: 50px;\r\n padding: 25px;\r\n text-align: center;\r\n vertical-align: middle;\r\n margin-bottom: 20px;\r\n margin-right: 20px;\r\n font-size: 20px;\r\n cursor: pointer;\r\n}\r\n.nav-item[_ngcontent-%COMP%]:hover {\r\n background-color: rgb(243, 243, 222);\r\n}\r\n\r\n.nav-item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\r\n margin-right: 10px;\r\n}\r\n\r\n.home-favorites[_ngcontent-%COMP%] {\r\n width: 500px;\r\n}", ".main-area[_ngcontent-%COMP%] {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view[_ngcontent-%COMP%] {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n .list-view .k-listview-header, .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%], .footer[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container[_ngcontent-%COMP%] {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\r\n color: #ff6358;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container[_ngcontent-%COMP%] {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 20px;\r\n }"] });
|
|
51
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HomeComponent, [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'app-home', template: "<div class=\"card-container\">\n <div class=\"card-header-entity\">\n <div class=\"title-wrap\">\n <h1>Home</h1>\n </div>\n </div>\n <div class=\"main-area\"> \n <div class=\"nav-container\">\n <div class=\"nav-item\" (click)=\"navigate('askskip')\">\n <span class=\"k-icon k-i-user\"></span>\n <span>Ask Skip</span>\n </div>\n <div class=\"nav-item\" (click)=\"navigate('data')\">\n <span class=\"k-icon k-i-table\"></span>\n <span>Data</span>\n </div>\n <div class=\"nav-item\" (click)=\"navigate('dashboards')\">\n <span class=\"k-icon k-i-aggregate-fields\"></span>\n <span>Dashboards</span>\n </div>\n <div class=\"nav-item\" (click)=\"navigate('reports')\">\n <span class=\"k-icon k-i-graph\"></span>\n <span>Reports</span>\n </div>\n <div class=\"nav-item\" (click)=\"navigate('settings')\">\n <span class=\"k-icon k-i-gear\"></span>\n <span>Settings</span>\n </div>\n </div>\n\n <app-favorites class=\"home-favorites\"></app-favorites>\n </div>\n</div>", styles: [".nav-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n}\r\n.nav-item {\r\n border: solid 1px lightgray;\r\n border-radius: 5px;\r\n width: 150px;;\r\n height: 50px;\r\n padding: 25px;\r\n text-align: center;\r\n vertical-align: middle;\r\n margin-bottom: 20px;\r\n margin-right: 20px;\r\n font-size: 20px;\r\n cursor: pointer;\r\n}\r\n.nav-item:hover {\r\n background-color: rgb(243, 243, 222);\r\n}\r\n\r\n.nav-item > span {\r\n margin-right: 10px;\r\n}\r\n\r\n.home-favorites {\r\n width: 500px;\r\n}", "\r\n.main-area {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-header, \r\n::ng-deep .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header,\r\n.footer {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header .head-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header .count {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card .view-icon {\r\n color: #ff6358;\r\n }\r\n .card-wrapper {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper .k-card-body {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper .view-card {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card .btn-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body .view-card-content h5 {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body .view-card-content p {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area .card-list {\r\n display: flex;\r\n gap: 20px;\r\n }\r\n "] }]
|
|
54
|
+
}], function () { return [{ type: i1.Router }]; }, null); })();
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AfterViewInit, OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class JoinGridComponent implements OnInit, AfterViewInit {
|
|
4
|
+
RowsEntity: string;
|
|
5
|
+
ColumnsEntity: string;
|
|
6
|
+
JoinEntity: string;
|
|
7
|
+
JoinRowForeignKey: string;
|
|
8
|
+
JoinColumunForeignKey: string;
|
|
9
|
+
RowsFilter: string;
|
|
10
|
+
ColumnsFilter: string;
|
|
11
|
+
EditMode: boolean;
|
|
12
|
+
showloader: boolean;
|
|
13
|
+
viewData: any[];
|
|
14
|
+
visibleColumns: any[];
|
|
15
|
+
ShowError: boolean;
|
|
16
|
+
ErrorMessage: string;
|
|
17
|
+
gridHeight: number;
|
|
18
|
+
private resizeSub;
|
|
19
|
+
constructor();
|
|
20
|
+
ngOnInit(): void;
|
|
21
|
+
ngAfterViewInit(): void;
|
|
22
|
+
LoadData(): Promise<void>;
|
|
23
|
+
getJoinData(rows: any[], columns: any[]): Promise<void>;
|
|
24
|
+
prepareGridData(rows: any[], columns: any[], joinEntities: any[]): void;
|
|
25
|
+
private _gridMargin;
|
|
26
|
+
setGridHeight(): void;
|
|
27
|
+
ResizeGrid(): void;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JoinGridComponent, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JoinGridComponent, "app-join-grid", never, { "RowsEntity": "RowsEntity"; "ColumnsEntity": "ColumnsEntity"; "JoinEntity": "JoinEntity"; "JoinRowForeignKey": "JoinRowForeignKey"; "JoinColumunForeignKey": "JoinColumunForeignKey"; "RowsFilter": "RowsFilter"; "ColumnsFilter": "ColumnsFilter"; "EditMode": "EditMode"; }, {}, never, never, false, never>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Component, Input } from '@angular/core';
|
|
11
|
+
import { RunView } from '@memberjunction/core';
|
|
12
|
+
import { debounceTime, fromEvent } from 'rxjs';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@progress/kendo-angular-grid";
|
|
16
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
17
|
+
function JoinGridComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
19
|
+
i0.ɵɵtext(1);
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
23
|
+
i0.ɵɵadvance(1);
|
|
24
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.ErrorMessage, "\n");
|
|
25
|
+
} }
|
|
26
|
+
function JoinGridComponent_div_1_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "button", 9);
|
|
28
|
+
i0.ɵɵtext(1, "Save");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} }
|
|
31
|
+
function JoinGridComponent_div_1_3_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_3_ng_template_0_Template, 2, 0, "ng-template", 8);
|
|
33
|
+
} }
|
|
34
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵtext(0);
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
const dataItem_r12 = ctx.$implicit;
|
|
38
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
39
|
+
i0.ɵɵtextInterpolate1(" ", dataItem_r12[item_r6.field], " ");
|
|
40
|
+
} }
|
|
41
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_kendo_grid_column_4_1_ng_template_0_Template, 1, 1, "ng-template", 11);
|
|
43
|
+
} }
|
|
44
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
i0.ɵɵelement(0, "input", 12);
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const dataItem_r14 = ctx.$implicit;
|
|
48
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
49
|
+
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
50
|
+
i0.ɵɵproperty("checked", dataItem_r14[item_r6.field])("disabled", !ctx_r9.EditMode);
|
|
51
|
+
} }
|
|
52
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵtext(0);
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const ctx_r16 = i0.ɵɵnextContext(4);
|
|
56
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r16.viewData.length, " records ");
|
|
57
|
+
} }
|
|
58
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_3_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_kendo_grid_column_4_3_ng_template_0_Template, 1, 1, "ng-template", 13);
|
|
60
|
+
} }
|
|
61
|
+
const _c0 = function () { return { "font-weight": "bold", "background-color": "#a9c2af" }; };
|
|
62
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "kendo-grid-column", 10);
|
|
64
|
+
i0.ɵɵtemplate(1, JoinGridComponent_div_1_kendo_grid_column_4_1_Template, 1, 0, null, 6);
|
|
65
|
+
i0.ɵɵtemplate(2, JoinGridComponent_div_1_kendo_grid_column_4_ng_template_2_Template, 1, 2, "ng-template", 11);
|
|
66
|
+
i0.ɵɵtemplate(3, JoinGridComponent_div_1_kendo_grid_column_4_3_Template, 1, 0, null, 6);
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
} if (rf & 2) {
|
|
69
|
+
const item_r6 = ctx.$implicit;
|
|
70
|
+
const i_r7 = ctx.index;
|
|
71
|
+
i0.ɵɵpropertyInterpolate("field", item_r6.field);
|
|
72
|
+
i0.ɵɵpropertyInterpolate("title", item_r6.title);
|
|
73
|
+
i0.ɵɵproperty("width", item_r6.width)("headerStyle", i0.ɵɵpureFunction0(6, _c0));
|
|
74
|
+
i0.ɵɵadvance(1);
|
|
75
|
+
i0.ɵɵproperty("ngIf", i_r7 === 0);
|
|
76
|
+
i0.ɵɵadvance(2);
|
|
77
|
+
i0.ɵɵproperty("ngIf", i_r7 === 0);
|
|
78
|
+
} }
|
|
79
|
+
function JoinGridComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "kendo-grid", 4, 5);
|
|
81
|
+
i0.ɵɵtemplate(3, JoinGridComponent_div_1_3_Template, 1, 0, null, 6);
|
|
82
|
+
i0.ɵɵtemplate(4, JoinGridComponent_div_1_kendo_grid_column_4_Template, 4, 7, "kendo-grid-column", 7);
|
|
83
|
+
i0.ɵɵelementEnd()();
|
|
84
|
+
} if (rf & 2) {
|
|
85
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
86
|
+
i0.ɵɵadvance(1);
|
|
87
|
+
i0.ɵɵproperty("resizable", true)("data", ctx_r1.viewData)("rowHeight", 36)("loading", ctx_r1.showloader)("height", ctx_r1.gridHeight)("sortable", true)("resizable", true)("reorderable", true)("selectable", true);
|
|
88
|
+
i0.ɵɵadvance(2);
|
|
89
|
+
i0.ɵɵproperty("ngIf", ctx_r1.EditMode);
|
|
90
|
+
i0.ɵɵadvance(1);
|
|
91
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.visibleColumns);
|
|
92
|
+
} }
|
|
93
|
+
export class JoinGridComponent {
|
|
94
|
+
constructor() {
|
|
95
|
+
this.RowsEntity = '';
|
|
96
|
+
this.ColumnsEntity = '';
|
|
97
|
+
this.JoinEntity = '';
|
|
98
|
+
this.JoinRowForeignKey = '';
|
|
99
|
+
this.JoinColumunForeignKey = '';
|
|
100
|
+
this.RowsFilter = '';
|
|
101
|
+
this.ColumnsFilter = '';
|
|
102
|
+
this.EditMode = false;
|
|
103
|
+
this.showloader = false;
|
|
104
|
+
this.viewData = [];
|
|
105
|
+
this.visibleColumns = [];
|
|
106
|
+
this.ShowError = false;
|
|
107
|
+
this.ErrorMessage = '';
|
|
108
|
+
this.gridHeight = 750;
|
|
109
|
+
this.resizeSub = null;
|
|
110
|
+
this._gridMargin = 150;
|
|
111
|
+
}
|
|
112
|
+
ngOnInit() {
|
|
113
|
+
if (!this.RowsEntity || !this.ColumnsEntity || !this.JoinEntity || !this.JoinRowForeignKey || !this.JoinColumunForeignKey) {
|
|
114
|
+
this.ShowError = true;
|
|
115
|
+
this.ErrorMessage = 'Missing required parameters';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.LoadData();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
ngAfterViewInit() {
|
|
122
|
+
this.setGridHeight();
|
|
123
|
+
}
|
|
124
|
+
LoadData() {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
const rv = new RunView();
|
|
127
|
+
this.showloader = true;
|
|
128
|
+
const promises = [];
|
|
129
|
+
promises.push(rv.RunView({ EntityName: this.RowsEntity, ExtraFilter: this.RowsFilter }));
|
|
130
|
+
promises.push(rv.RunView({ EntityName: this.ColumnsEntity, ExtraFilter: this.ColumnsFilter }));
|
|
131
|
+
const responses = yield Promise.all(promises);
|
|
132
|
+
if (responses[0].Success && responses[1].Success) {
|
|
133
|
+
this.getJoinData(responses[0].Results, responses[1].Results);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
this.ShowError = true;
|
|
137
|
+
this.ErrorMessage = responses[0].ErrorMessage || responses[1].ErrorMessage;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
getJoinData(rows, columns) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
const rv = new RunView();
|
|
144
|
+
// getting the relations between rows and columns
|
|
145
|
+
const res = yield rv.RunView({ EntityName: this.JoinEntity, ExtraFilter: `${this.JoinRowForeignKey} IN (${rows.map(obj => obj.ID).join(',')}) AND ${this.JoinColumunForeignKey} IN (${columns.map(obj => obj.ID).join(',')})` });
|
|
146
|
+
if (res.Success) {
|
|
147
|
+
this.prepareGridData(rows, columns, res.Results);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.showloader = false;
|
|
151
|
+
this.ShowError = true;
|
|
152
|
+
this.ErrorMessage = res.ErrorMessage;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
prepareGridData(rows, columns, joinEntities) {
|
|
157
|
+
const gridData = [];
|
|
158
|
+
this.visibleColumns = [{ field: 'first', title: '', width: 80 }];
|
|
159
|
+
columns.forEach(column => {
|
|
160
|
+
this.visibleColumns.push({ field: column.Name, title: column.Name, width: 80 });
|
|
161
|
+
});
|
|
162
|
+
rows.forEach(row => {
|
|
163
|
+
let rowData = {
|
|
164
|
+
first: row.Name
|
|
165
|
+
};
|
|
166
|
+
columns.forEach(column => {
|
|
167
|
+
const join = joinEntities.find(j => j[this.JoinColumunForeignKey] === column.ID && j[this.JoinRowForeignKey] === row.ID);
|
|
168
|
+
if (join) {
|
|
169
|
+
rowData = Object.assign(Object.assign({}, rowData), { [column.Name]: true, [this.JoinColumunForeignKey]: join[this.JoinColumunForeignKey], [this.JoinRowForeignKey]: join[this.JoinRowForeignKey], [this.JoinEntity]: join[this.JoinEntity] });
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
rowData[column.Name] = false;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
gridData.push(rowData);
|
|
176
|
+
});
|
|
177
|
+
this.showloader = false;
|
|
178
|
+
this.viewData = gridData;
|
|
179
|
+
}
|
|
180
|
+
setGridHeight() {
|
|
181
|
+
// Subscribe to the window resize event
|
|
182
|
+
this.resizeSub = fromEvent(window, 'resize').pipe(debounceTime(100) // Debounce the resize event to avoid frequent updates
|
|
183
|
+
).subscribe(() => {
|
|
184
|
+
// Update the grid height when the window is resized
|
|
185
|
+
this.ResizeGrid();
|
|
186
|
+
});
|
|
187
|
+
// Set the initial grid height with a slight delay to allow stuff to get set
|
|
188
|
+
setTimeout(() => {
|
|
189
|
+
this.ResizeGrid();
|
|
190
|
+
}, 100);
|
|
191
|
+
}
|
|
192
|
+
ResizeGrid() {
|
|
193
|
+
// this._gridMargin = this.getGridTopPosition();
|
|
194
|
+
this.gridHeight = window.innerHeight - this._gridMargin;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
JoinGridComponent.ɵfac = function JoinGridComponent_Factory(t) { return new (t || JoinGridComponent)(); };
|
|
198
|
+
JoinGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JoinGridComponent, selectors: [["app-join-grid"]], inputs: { RowsEntity: "RowsEntity", ColumnsEntity: "ColumnsEntity", JoinEntity: "JoinEntity", JoinRowForeignKey: "JoinRowForeignKey", JoinColumunForeignKey: "JoinColumunForeignKey", RowsFilter: "RowsFilter", ColumnsFilter: "ColumnsFilter", EditMode: "EditMode" }, decls: 2, vars: 2, consts: [["class", "card-container", 4, "ngIf"], ["class", "user-view-grid-wrap", 4, "ngIf"], [1, "card-container"], [1, "user-view-grid-wrap"], ["scrollable", "virtual", 3, "resizable", "data", "rowHeight", "loading", "height", "sortable", "reorderable", "selectable"], ["kendoGrid", ""], [4, "ngIf"], [3, "field", "title", "width", "headerStyle", 4, "ngFor", "ngForOf"], ["kendoGridToolbarTemplate", ""], ["kendoButton", ""], [3, "field", "title", "width", "headerStyle"], ["kendoGridCellTemplate", ""], ["type", "checkbox", 3, "checked", "disabled"], ["kendoGridFooterTemplate", ""]], template: function JoinGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
199
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_0_Template, 2, 1, "div", 0);
|
|
200
|
+
i0.ɵɵtemplate(1, JoinGridComponent_div_1_Template, 5, 11, "div", 1);
|
|
201
|
+
} if (rf & 2) {
|
|
202
|
+
i0.ɵɵproperty("ngIf", ctx.ShowError);
|
|
203
|
+
i0.ɵɵadvance(1);
|
|
204
|
+
i0.ɵɵproperty("ngIf", !ctx.ShowError);
|
|
205
|
+
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.GridComponent, i2.ToolbarTemplateDirective, i2.ColumnComponent, i2.FooterTemplateDirective, i2.CellTemplateDirective, i3.Button] });
|
|
206
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JoinGridComponent, [{
|
|
207
|
+
type: Component,
|
|
208
|
+
args: [{ selector: 'app-join-grid', template: "<div class=\"card-container\" *ngIf=\"ShowError\">\r\n {{ErrorMessage}}\r\n</div>\r\n<div class=\"user-view-grid-wrap\" *ngIf=\"!ShowError\">\r\n <kendo-grid \r\n #kendoGrid \r\n [resizable]=\"true\" \r\n [data]=\"viewData\" \r\n scrollable=\"virtual\" \r\n [rowHeight]=\"36\"\r\n [loading]=\"showloader\"\r\n [height]=\"gridHeight\"\r\n [sortable]=\"true\"\r\n [resizable]=\"true\"\r\n [reorderable]=\"true\"\r\n [selectable]=\"true\">\r\n\r\n <ng-template kendoGridToolbarTemplate *ngIf=\"EditMode\">\r\n <button kendoButton>Save</button>\r\n </ng-template>\r\n\r\n <kendo-grid-column *ngFor=\"let item of visibleColumns; let i = index\" field=\"{{item.field}}\"\r\n title=\"{{item.title}}\" [width]=\"item.width\"\r\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': '#a9c2af' }\">\r\n <ng-template *ngIf=\"i === 0\" kendoGridCellTemplate let-dataItem>\r\n {{dataItem[item.field]}}\r\n </ng-template>\r\n <ng-template kendoGridCellTemplate let-dataItem>\r\n <input type=\"checkbox\" [checked]=\"dataItem[item.field]\" [disabled]=\"!EditMode\" />\r\n </ng-template>\r\n <ng-template *ngIf=\"i === 0\" kendoGridFooterTemplate>\r\n {{this.viewData.length}} records\r\n </ng-template>\r\n </kendo-grid-column>\r\n\r\n </kendo-grid>\r\n</div>" }]
|
|
209
|
+
}], function () { return []; }, { RowsEntity: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], ColumnsEntity: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], JoinEntity: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], JoinRowForeignKey: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], JoinColumunForeignKey: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], RowsFilter: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], ColumnsFilter: [{
|
|
222
|
+
type: Input
|
|
223
|
+
}], EditMode: [{
|
|
224
|
+
type: Input
|
|
225
|
+
}] }); })();
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ElementRef, OnInit, OnDestroy, AfterViewInit, Renderer2 } from '@angular/core';
|
|
2
|
+
import { Location } from '@angular/common';
|
|
3
|
+
import { Router, ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { DrawerItem, DrawerSelectEvent, DrawerComponent, DrawerMode, TabCloseEvent, TabStripComponent, SelectEvent } from "@progress/kendo-angular-layout";
|
|
5
|
+
import { Metadata, ApplicationInfo, EntityInfo } from '@memberjunction/core';
|
|
6
|
+
import { MJEvent } from '@memberjunction/global';
|
|
7
|
+
import { SharedService } from '../shared/shared.service';
|
|
8
|
+
import { UserViewEntity, ViewInfo } from '@memberjunction/core-entities';
|
|
9
|
+
import { ResourceData } from '../generic/base-resource-component';
|
|
10
|
+
import { Title } from '@angular/platform-browser';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export interface Tab {
|
|
13
|
+
id?: number;
|
|
14
|
+
label?: string;
|
|
15
|
+
icon?: string;
|
|
16
|
+
data?: any;
|
|
17
|
+
labelLoading: boolean;
|
|
18
|
+
contentLoading: boolean;
|
|
19
|
+
workspaceItem?: any;
|
|
20
|
+
}
|
|
21
|
+
export declare class NavigationComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
22
|
+
private router;
|
|
23
|
+
private route;
|
|
24
|
+
sharedService: SharedService;
|
|
25
|
+
private location;
|
|
26
|
+
private renderer;
|
|
27
|
+
private titleService;
|
|
28
|
+
applicationName: string;
|
|
29
|
+
drawerItems: DrawerItem[];
|
|
30
|
+
mode: DrawerMode;
|
|
31
|
+
mini: boolean;
|
|
32
|
+
viewsList: ViewInfo[];
|
|
33
|
+
selectedDrawerItem: DrawerItem | null;
|
|
34
|
+
selectedApp: ApplicationInfo | null;
|
|
35
|
+
selectedEntity: EntityInfo | null;
|
|
36
|
+
selectedView: UserViewEntity | null;
|
|
37
|
+
loading: boolean;
|
|
38
|
+
loader: boolean;
|
|
39
|
+
tabs: any[];
|
|
40
|
+
closedTabs: any[];
|
|
41
|
+
private tabQueryParams;
|
|
42
|
+
activeTabIndex: number;
|
|
43
|
+
selectedTabIndex: number;
|
|
44
|
+
private workSpace;
|
|
45
|
+
private workSpaceItems;
|
|
46
|
+
private routeSub;
|
|
47
|
+
isMobileScreen: boolean;
|
|
48
|
+
private resizeTimeout;
|
|
49
|
+
drawer: DrawerComponent;
|
|
50
|
+
drawerWrapper: ElementRef;
|
|
51
|
+
tabstrip: TabStripComponent;
|
|
52
|
+
container: ElementRef;
|
|
53
|
+
onWindowResize(): void;
|
|
54
|
+
onClick(): void;
|
|
55
|
+
contextMenuStyle: any;
|
|
56
|
+
contextMenuVisible: boolean;
|
|
57
|
+
constructor(router: Router, route: ActivatedRoute, sharedService: SharedService, location: Location, renderer: Renderer2, titleService: Title);
|
|
58
|
+
onTabContextMenu(event: MouseEvent, tab: any): void;
|
|
59
|
+
handleContextMenuOption(option: number): Promise<void>;
|
|
60
|
+
private checkViewportSize;
|
|
61
|
+
ngAfterViewInit(): void;
|
|
62
|
+
private _loggedIn;
|
|
63
|
+
private _earlyEvents;
|
|
64
|
+
protected handleEvent(event: MJEvent, args: any): Promise<void>;
|
|
65
|
+
private gotFirstNav;
|
|
66
|
+
ngOnInit(): void;
|
|
67
|
+
private _mostRecentURL;
|
|
68
|
+
protected NavigateFromUrl(): Promise<void>;
|
|
69
|
+
selectDrawerItem(index: number): void;
|
|
70
|
+
protected setActiveTabToHome(): void;
|
|
71
|
+
private checkForBaseURL;
|
|
72
|
+
private getWorkspace;
|
|
73
|
+
LoadWorkSpace(): Promise<void>;
|
|
74
|
+
protected setAppTitle(title?: string): void;
|
|
75
|
+
protected AddOrSelectTab(data: ResourceData): Promise<void>;
|
|
76
|
+
private updateBrowserURL;
|
|
77
|
+
scrollIntoView(): void;
|
|
78
|
+
GetWorkspaceItemDisplayName(data: ResourceData): Promise<string>;
|
|
79
|
+
SaveWorkspace(): Promise<boolean>;
|
|
80
|
+
SaveSingleWorkspaceItem(tab: Tab): Promise<boolean>;
|
|
81
|
+
setTabContentLoadingStatus(tab: Tab, bLoading: boolean): void;
|
|
82
|
+
onClose(ev: TabCloseEvent): Promise<void>;
|
|
83
|
+
removeWorkspaceItem(tab: Tab): Promise<void>;
|
|
84
|
+
onTabSelect(e: SelectEvent): void;
|
|
85
|
+
getActiveTabId(): any;
|
|
86
|
+
isTabActive(tabId: number): boolean;
|
|
87
|
+
ngOnDestroy(): void;
|
|
88
|
+
onDrawerSelect(ev: DrawerSelectEvent): void;
|
|
89
|
+
getEntityItemFromViewItem(viewItem: DrawerItem): DrawerItem | null;
|
|
90
|
+
getAppItemFromViewItem(viewItem: DrawerItem): DrawerItem | null;
|
|
91
|
+
loadApp(): Promise<void>;
|
|
92
|
+
private LoadDrawer;
|
|
93
|
+
protected loadSkip(md: Metadata): Promise<void>;
|
|
94
|
+
protected loadHome(md: Metadata): Promise<void>;
|
|
95
|
+
protected loadSettings(md: Metadata): Promise<void>;
|
|
96
|
+
protected loadApplications(md: Metadata): Promise<void>;
|
|
97
|
+
protected loadResourceType(key: string, resourceType: string, path: string, currentUserID: number): Promise<void>;
|
|
98
|
+
setDrawerConfig(): void;
|
|
99
|
+
toggle(): void;
|
|
100
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationComponent, never>;
|
|
101
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationComponent, "app-navigation", never, { "applicationName": "applicationName"; }, {}, never, never, false, never>;
|
|
102
|
+
}
|