@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.
Files changed (97) hide show
  1. package/dist/lib/ask-skip/ask-skip.component.d.ts +83 -0
  2. package/dist/lib/ask-skip/ask-skip.component.js +591 -0
  3. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +12 -0
  4. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +49 -0
  5. package/dist/lib/auth-button/auth-button.component.d.ts +12 -0
  6. package/dist/lib/auth-button/auth-button.component.js +43 -0
  7. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +14 -0
  8. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +55 -0
  9. package/dist/lib/data-browser-component/data-browser.component.d.ts +14 -0
  10. package/dist/lib/data-browser-component/data-browser.component.js +91 -0
  11. package/dist/lib/favorites/favorites.component.d.ts +13 -0
  12. package/dist/lib/favorites/favorites.component.js +100 -0
  13. package/dist/lib/generic/base-form-component.d.ts +76 -0
  14. package/dist/lib/generic/base-form-component.js +436 -0
  15. package/dist/lib/generic/base-form-section-component.d.ts +6 -0
  16. package/dist/lib/generic/base-form-section-component.js +10 -0
  17. package/dist/lib/generic/base-record-component.d.ts +6 -0
  18. package/dist/lib/generic/base-record-component.js +13 -0
  19. package/dist/lib/generic/base-resource-component.d.ts +34 -0
  20. package/dist/lib/generic/base-resource-component.js +75 -0
  21. package/dist/lib/generic/dynamic-chart.d.ts +26 -0
  22. package/dist/lib/generic/dynamic-chart.js +180 -0
  23. package/dist/lib/generic/dynamic-grid.d.ts +24 -0
  24. package/dist/lib/generic/dynamic-grid.js +135 -0
  25. package/dist/lib/generic/dynamic-report.d.ts +38 -0
  26. package/dist/lib/generic/dynamic-report.js +399 -0
  27. package/dist/lib/generic/form-toolbar.d.ts +7 -0
  28. package/dist/lib/generic/form-toolbar.js +98 -0
  29. package/dist/lib/generic/resource-container-component.d.ts +25 -0
  30. package/dist/lib/generic/resource-container-component.js +103 -0
  31. package/dist/lib/generic/section-loader-component.d.ts +17 -0
  32. package/dist/lib/generic/section-loader-component.js +65 -0
  33. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +16 -0
  34. package/dist/lib/generic-browse-list/generic-browse-list.component.js +91 -0
  35. package/dist/lib/guards/auth-guard.service.d.ts +11 -0
  36. package/dist/lib/guards/auth-guard.service.js +24 -0
  37. package/dist/lib/guards/entities.guard.d.ts +3 -0
  38. package/dist/lib/guards/entities.guard.js +38 -0
  39. package/dist/lib/header/MSFT_UserImageService.d.ts +11 -0
  40. package/dist/lib/header/MSFT_UserImageService.js +23 -0
  41. package/dist/lib/header/header.component.d.ts +51 -0
  42. package/dist/lib/header/header.component.js +208 -0
  43. package/dist/lib/home-component/home.component.d.ts +9 -0
  44. package/dist/lib/home-component/home.component.js +54 -0
  45. package/dist/lib/join-grid/join-grid.component.d.ts +30 -0
  46. package/dist/lib/join-grid/join-grid.component.js +225 -0
  47. package/dist/lib/navigation/navigation.component.d.ts +102 -0
  48. package/dist/lib/navigation/navigation.component.js +970 -0
  49. package/dist/lib/report-browser-component/report-browser.component.d.ts +14 -0
  50. package/dist/lib/report-browser-component/report-browser.component.js +55 -0
  51. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +8 -0
  52. package/dist/lib/resource-wrappers/dashboard-resource.component.js +49 -0
  53. package/dist/lib/resource-wrappers/record-resource.component.d.ts +8 -0
  54. package/dist/lib/resource-wrappers/record-resource.component.js +55 -0
  55. package/dist/lib/resource-wrappers/report-resource.component.d.ts +10 -0
  56. package/dist/lib/resource-wrappers/report-resource.component.js +53 -0
  57. package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts +1 -0
  58. package/dist/lib/resource-wrappers/resource-wrappers-loader.js +12 -0
  59. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +10 -0
  60. package/dist/lib/resource-wrappers/search-results-resource.component.js +50 -0
  61. package/dist/lib/resource-wrappers/view-resource.component.d.ts +8 -0
  62. package/dist/lib/resource-wrappers/view-resource.component.js +51 -0
  63. package/dist/lib/settings/settings.component.d.ts +5 -0
  64. package/dist/lib/settings/settings.component.js +14 -0
  65. package/dist/lib/shared/shared.service.d.ts +87 -0
  66. package/dist/lib/shared/shared.service.js +302 -0
  67. package/dist/lib/shared/urlPipe.d.ts +7 -0
  68. package/dist/lib/shared/urlPipe.js +16 -0
  69. package/dist/lib/single-application/single-application.component.d.ts +21 -0
  70. package/dist/lib/single-application/single-application.component.js +132 -0
  71. package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +28 -0
  72. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +212 -0
  73. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +26 -0
  74. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +169 -0
  75. package/dist/lib/single-dashboard/single-dashboard.component.d.ts +55 -0
  76. package/dist/lib/single-dashboard/single-dashboard.component.js +266 -0
  77. package/dist/lib/single-entity/single-entity.component.d.ts +33 -0
  78. package/dist/lib/single-entity/single-entity.component.js +252 -0
  79. package/dist/lib/single-record/single-record.component.d.ts +20 -0
  80. package/dist/lib/single-record/single-record.component.js +95 -0
  81. package/dist/lib/single-report/single-report.component.d.ts +22 -0
  82. package/dist/lib/single-report/single-report.component.js +87 -0
  83. package/dist/lib/single-search-result/single-search-result.component.d.ts +15 -0
  84. package/dist/lib/single-search-result/single-search-result.component.js +60 -0
  85. package/dist/lib/single-view/single-view.component.d.ts +34 -0
  86. package/dist/lib/single-view/single-view.component.js +154 -0
  87. package/dist/lib/user-notifications/user-notifications.component.d.ts +32 -0
  88. package/dist/lib/user-notifications/user-notifications.component.js +282 -0
  89. package/dist/lib/user-profile/user-profile.component.d.ts +10 -0
  90. package/dist/lib/user-profile/user-profile.component.js +41 -0
  91. package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts +70 -0
  92. package/dist/lib/user-view-properties/view-properties-dialog.component.js +568 -0
  93. package/dist/module.d.ts +64 -0
  94. package/dist/module.js +332 -0
  95. package/dist/public-api.d.ts +47 -0
  96. package/dist/public-api.js +50 -0
  97. package/package.json +39 -0
@@ -0,0 +1,49 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const _c0 = ["theReport"];
4
+ export class SkipDynamicReportComponent {
5
+ constructor() {
6
+ this.ConversationID = null;
7
+ this.ConversationName = null;
8
+ this.ConversationDetailID = null;
9
+ }
10
+ }
11
+ SkipDynamicReportComponent.ɵfac = function SkipDynamicReportComponent_Factory(t) { return new (t || SkipDynamicReportComponent)(); };
12
+ SkipDynamicReportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipDynamicReportComponent, selectors: [["app-skip-dynamic-report"]], viewQuery: function SkipDynamicReportComponent_Query(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵviewQuery(_c0, 5);
14
+ } if (rf & 2) {
15
+ let _t;
16
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.theReport = _t.first);
17
+ } }, inputs: { SkipData: "SkipData", ConversationID: "ConversationID", ConversationName: "ConversationName", ConversationDetailID: "ConversationDetailID" }, decls: 3, vars: 5, consts: [[1, "skip-dynamic-report-container"], [3, "SkipData", "ConversationID", "ConversationName", "ConversationDetailID", "ShowCreateReportButton"], ["theReport", ""]], template: function SkipDynamicReportComponent_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "div", 0);
19
+ i0.ɵɵelement(1, "app-dynamic-report", 1, 2);
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ i0.ɵɵadvance(1);
23
+ i0.ɵɵproperty("SkipData", ctx.SkipData)("ConversationID", ctx.ConversationID)("ConversationName", ctx.ConversationName)("ConversationDetailID", ctx.ConversationDetailID)("ShowCreateReportButton", true);
24
+ } }, styles: [".report-tab-title[_ngcontent-%COMP%] { margin-left: 10px;}", ".skip-dynamic-report-container[_ngcontent-%COMP%] {\n display: block;\n height: 450px;\n width: 90%;\n margin-right: 20px;\n }"] });
25
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicReportComponent, [{
26
+ type: Component,
27
+ args: [{ selector: 'app-skip-dynamic-report', template: `
28
+ <div class='skip-dynamic-report-container'>
29
+ <app-dynamic-report #theReport
30
+ [SkipData]="SkipData"
31
+ [ConversationID]="ConversationID"
32
+ [ConversationName]="ConversationName"
33
+ [ConversationDetailID]="ConversationDetailID"
34
+ [ShowCreateReportButton]="true"
35
+ ></app-dynamic-report>
36
+ </div>
37
+ `, styles: [".report-tab-title { margin-left: 10px;}", ".skip-dynamic-report-container {\n display: block;\n height: 450px;\n width: 90%;\n margin-right: 20px;\n }"] }]
38
+ }], null, { theReport: [{
39
+ type: ViewChild,
40
+ args: ['theReport', { static: false }]
41
+ }], SkipData: [{
42
+ type: Input
43
+ }], ConversationID: [{
44
+ type: Input
45
+ }], ConversationName: [{
46
+ type: Input
47
+ }], ConversationDetailID: [{
48
+ type: Input
49
+ }] }); })();
@@ -0,0 +1,12 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { MJAuthBase } from '@memberjunction/ng-auth-services';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AuthButtonComponent implements OnInit {
5
+ document: Document;
6
+ authBase: MJAuthBase;
7
+ constructor(document: Document, authBase: MJAuthBase);
8
+ ngOnInit(): void;
9
+ logout(): Promise<void>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthButtonComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<AuthButtonComponent, "app-auth-button", never, {}, {}, never, never, false, never>;
12
+ }
@@ -0,0 +1,43 @@
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, Inject } from '@angular/core';
11
+ import { DOCUMENT } from '@angular/common';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@memberjunction/ng-auth-services";
14
+ export class AuthButtonComponent {
15
+ // Inject the authentication service into your component through the constructor
16
+ constructor(document, authBase) {
17
+ this.document = document;
18
+ this.authBase = authBase;
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ logout() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ this.authBase.logout();
25
+ localStorage.removeItem('auth');
26
+ localStorage.removeItem('claims');
27
+ });
28
+ }
29
+ }
30
+ AuthButtonComponent.ɵfac = function AuthButtonComponent_Factory(t) { return new (t || AuthButtonComponent)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.MJAuthBase)); };
31
+ AuthButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AuthButtonComponent, selectors: [["app-auth-button"]], decls: 2, vars: 0, consts: [[3, "click"]], template: function AuthButtonComponent_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "button", 0);
33
+ i0.ɵɵlistener("click", function AuthButtonComponent_Template_button_click_0_listener() { return ctx.authBase.login(); });
34
+ i0.ɵɵtext(1, " Log in\n");
35
+ i0.ɵɵelementEnd();
36
+ } } });
37
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthButtonComponent, [{
38
+ type: Component,
39
+ args: [{ selector: 'app-auth-button', template: "<!-- <ng-container *ngIf=\"authBase.authenticated; else loggedOut\">\r\n <button (click)=\"logout()\">\r\n Log out\r\n </button>\r\n</ng-container> -->\r\n<!-- <ng-template> -->\r\n<button (click)=\"authBase.login()\">\r\n Log in\r\n</button>\r\n<!-- </ng-template> -->\r\n" }]
40
+ }], function () { return [{ type: Document, decorators: [{
41
+ type: Inject,
42
+ args: [DOCUMENT]
43
+ }] }, { type: i1.MJAuthBase }]; }, null); })();
@@ -0,0 +1,14 @@
1
+ import { Router } from '@angular/router';
2
+ import { DashboardEntity } from '@memberjunction/core-entities';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DashboardBrowserComponent {
5
+ private router;
6
+ dashboards: DashboardEntity[];
7
+ showLoader: boolean;
8
+ constructor(router: Router);
9
+ ngOnInit(): void;
10
+ LoadData(): Promise<void>;
11
+ itemClick(item: DashboardEntity): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<DashboardBrowserComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DashboardBrowserComponent, "app-dashboard-browser", never, {}, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,55 @@
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 } from '@angular/core';
11
+ import { Metadata, RunView } from '@memberjunction/core';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ import * as i2 from "../generic-browse-list/generic-browse-list.component";
15
+ export class DashboardBrowserComponent {
16
+ constructor(router) {
17
+ this.router = router;
18
+ this.dashboards = [];
19
+ this.showLoader = false;
20
+ }
21
+ ngOnInit() {
22
+ this.LoadData();
23
+ }
24
+ LoadData() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ this.showLoader = true;
27
+ const md = new Metadata();
28
+ const rv = new RunView();
29
+ const result = yield rv.RunView({
30
+ EntityName: 'Dashboards',
31
+ ExtraFilter: `UserID=${md.CurrentUser.ID}`
32
+ });
33
+ if (result && result.Success)
34
+ this.dashboards = result.Results;
35
+ this.showLoader = false;
36
+ });
37
+ }
38
+ itemClick(item) {
39
+ if (item) {
40
+ this.router.navigate(['resource', 'dashboard', item.ID]);
41
+ }
42
+ }
43
+ }
44
+ DashboardBrowserComponent.ɵfac = function DashboardBrowserComponent_Factory(t) { return new (t || DashboardBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
45
+ DashboardBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardBrowserComponent, selectors: [["app-dashboard-browser"]], decls: 1, vars: 2, consts: [["title", "Dashboards", "itemType", "dashboard", 3, "items", "showLoader", "itemClickEvent"]], template: function DashboardBrowserComponent_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "app-generic-browse-list", 0);
47
+ i0.ɵɵlistener("itemClickEvent", function DashboardBrowserComponent_Template_app_generic_browse_list_itemClickEvent_0_listener($event) { return ctx.itemClick($event); });
48
+ i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ i0.ɵɵproperty("items", ctx.dashboards)("showLoader", ctx.showLoader);
51
+ } }, dependencies: [i2.GenericBrowseListComponent], styles: [".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 }"] });
52
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardBrowserComponent, [{
53
+ type: Component,
54
+ args: [{ selector: 'app-dashboard-browser', template: "<app-generic-browse-list title=\"Dashboards\" itemType=\"dashboard\" [items]=\"dashboards\" (itemClickEvent)=\"itemClick($event)\" [showLoader]=\"showLoader\">\n\n</app-generic-browse-list>", styles: ["\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 "] }]
55
+ }], function () { return [{ type: i1.Router }]; }, null); })();
@@ -0,0 +1,14 @@
1
+ import { Router } from '@angular/router';
2
+ import { ApplicationInfo } from '@memberjunction/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DataBrowserComponent {
5
+ private router;
6
+ showLoader: boolean;
7
+ applications: ApplicationInfo[];
8
+ constructor(router: Router);
9
+ ngOnInit(): void;
10
+ LoadData(): Promise<void>;
11
+ appItemClick(info: ApplicationInfo): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataBrowserComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataBrowserComponent, "app-data-browser", never, {}, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,91 @@
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 } from '@angular/core';
11
+ import { Metadata } from '@memberjunction/core';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@progress/kendo-angular-indicators";
16
+ import * as i4 from "@progress/kendo-angular-icons";
17
+ import * as i5 from "@progress/kendo-angular-layout";
18
+ function DataBrowserComponent_kendo_loader_6_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelement(0, "kendo-loader", 6);
20
+ } }
21
+ function DataBrowserComponent_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
22
+ const _r5 = i0.ɵɵgetCurrentView();
23
+ i0.ɵɵelementStart(0, "div")(1, "kendo-card", 9)(2, "kendo-card-header", 10);
24
+ i0.ɵɵelement(3, "kendo-icon", 11);
25
+ i0.ɵɵelementEnd();
26
+ i0.ɵɵelementStart(4, "kendo-card-body", 12);
27
+ i0.ɵɵlistener("click", function DataBrowserComponent_div_7_div_1_Template_kendo_card_body_click_4_listener() { const restoredCtx = i0.ɵɵrestoreView(_r5); const app_r3 = restoredCtx.$implicit; const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r4.appItemClick(app_r3)); });
28
+ i0.ɵɵelementStart(5, "div", 13)(6, "h5", 14);
29
+ i0.ɵɵtext(7);
30
+ i0.ɵɵelementEnd();
31
+ i0.ɵɵelementStart(8, "p", 15);
32
+ i0.ɵɵtext(9);
33
+ i0.ɵɵelementEnd()()()()();
34
+ } if (rf & 2) {
35
+ const app_r3 = ctx.$implicit;
36
+ i0.ɵɵadvance(7);
37
+ i0.ɵɵtextInterpolate(app_r3.Name);
38
+ i0.ɵɵadvance(2);
39
+ i0.ɵɵtextInterpolate(app_r3.Description);
40
+ } }
41
+ function DataBrowserComponent_div_7_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 7);
43
+ i0.ɵɵtemplate(1, DataBrowserComponent_div_7_div_1_Template, 10, 2, "div", 8);
44
+ i0.ɵɵelementEnd();
45
+ } if (rf & 2) {
46
+ const ctx_r1 = i0.ɵɵnextContext();
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("ngForOf", ctx_r1.applications);
49
+ } }
50
+ export class DataBrowserComponent {
51
+ constructor(router) {
52
+ this.router = router;
53
+ this.showLoader = true;
54
+ this.applications = [];
55
+ }
56
+ ngOnInit() {
57
+ this.LoadData();
58
+ }
59
+ LoadData() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ this.showLoader = true;
62
+ const md = new Metadata();
63
+ this.applications = md.Applications;
64
+ this.showLoader = false;
65
+ });
66
+ }
67
+ appItemClick(info) {
68
+ if (info) {
69
+ this.router.navigate(['app', info.Name]);
70
+ }
71
+ }
72
+ }
73
+ DataBrowserComponent.ɵfac = function DataBrowserComponent_Factory(t) { return new (t || DataBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
74
+ DataBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataBrowserComponent, selectors: [["app-data-browser"]], decls: 8, vars: 2, consts: [[1, "card-container"], [1, "card-header-entity"], [1, "title-wrap"], [1, "main-area"], ["type", "converging-spinner", 4, "ngIf"], ["class", "card-list k-d-flex k-flex-row k-h-full k-flex-wrap", 4, "ngIf"], ["type", "converging-spinner"], [1, "card-list", "k-d-flex", "k-flex-row", "k-h-full", "k-flex-wrap"], [4, "ngFor", "ngForOf"], [1, "card-wrapper"], [1, "k-hstack", "view-card"], ["name", "table", 1, "view-icon"], [3, "click"], [1, "view-card-content", "k-cursor-pointer"], ["kendoCardTitle", ""], ["kendoCardSubtitle", ""]], template: function DataBrowserComponent_Template(rf, ctx) { if (rf & 1) {
75
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h1");
76
+ i0.ɵɵtext(4, "Applications");
77
+ i0.ɵɵelementEnd()()();
78
+ i0.ɵɵelementStart(5, "div", 3);
79
+ i0.ɵɵtemplate(6, DataBrowserComponent_kendo_loader_6_Template, 1, 0, "kendo-loader", 4);
80
+ i0.ɵɵtemplate(7, DataBrowserComponent_div_7_Template, 2, 1, "div", 5);
81
+ i0.ɵɵelementEnd()();
82
+ } if (rf & 2) {
83
+ i0.ɵɵadvance(6);
84
+ i0.ɵɵproperty("ngIf", ctx.showLoader);
85
+ i0.ɵɵadvance(1);
86
+ i0.ɵɵproperty("ngIf", !ctx.showLoader);
87
+ } }, dependencies: [i2.NgForOf, i2.NgIf, i3.LoaderComponent, i4.IconComponent, i5.CardComponent, i5.CardHeaderComponent, i5.CardBodyComponent, i5.CardTitleDirective, i5.CardSubtitleDirective], styles: [".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 }"] });
88
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataBrowserComponent, [{
89
+ type: Component,
90
+ args: [{ selector: 'app-data-browser', template: "<div class=\"card-container\">\n <div class=\"card-header-entity\">\n <div class=\"title-wrap\">\n <h1>Applications</h1>\n </div>\n </div>\n <div class=\"main-area\"> \n <kendo-loader *ngIf=\"showLoader\" type=\"converging-spinner\" ></kendo-loader>\n <div class=\"card-list k-d-flex k-flex-row k-h-full k-flex-wrap\" *ngIf=\"!showLoader\">\n <div *ngFor=\"let app of applications\">\n <kendo-card class=\"card-wrapper\">\n <kendo-card-header class=\"k-hstack view-card\">\n <kendo-icon name=\"table\" class=\"view-icon\"></kendo-icon>\n <!-- <div class=\"btn-wrapper\">\n <button kendoButton fillMode=\"flat\" (click)=\"editView(entity)\">\n <span class=\"k-icon k-i-edit\"></span>\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"handleDeleteView(entity)\"><span\n class=\"k-icon k-i-delete\"></span></button>\n </div> -->\n </kendo-card-header>\n \n <kendo-card-body (click)=\"appItemClick(app)\">\n <div class=\"view-card-content k-cursor-pointer\">\n <h5 kendoCardTitle>{{ app.Name }}</h5>\n <p kendoCardSubtitle>{{ app.Description }}</p>\n </div>\n </kendo-card-body>\n </kendo-card>\n </div>\n </div>\n </div>\n</div>", styles: ["\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 "] }]
91
+ }], function () { return [{ type: i1.Router }]; }, null); })();
@@ -0,0 +1,13 @@
1
+ import { Router } from '@angular/router';
2
+ import { UserFavoriteEntity } from '@memberjunction/core-entities';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FavoritesComponent {
5
+ private router;
6
+ favorites: UserFavoriteEntity[];
7
+ ExtraFilter: string;
8
+ constructor(router: Router);
9
+ ngOnInit(): void;
10
+ favoriteItemClick(fav: UserFavoriteEntity): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<FavoritesComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<FavoritesComponent, "app-favorites", never, {}, {}, never, never, false, never>;
13
+ }
@@ -0,0 +1,100 @@
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 } from '@angular/core';
11
+ import { Metadata, RunView } from '@memberjunction/core';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ import * as i2 from "@progress/kendo-angular-listview";
15
+ function FavoritesComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
17
+ i0.ɵɵelement(2, "span", 6);
18
+ i0.ɵɵtext(3, " Favorites ");
19
+ i0.ɵɵelementEnd();
20
+ i0.ɵɵelementStart(4, "div", 7);
21
+ i0.ɵɵtext(5);
22
+ i0.ɵɵelementEnd()();
23
+ } if (rf & 2) {
24
+ const ctx_r0 = i0.ɵɵnextContext();
25
+ i0.ɵɵadvance(5);
26
+ i0.ɵɵtextInterpolate(ctx_r0.favorites.length);
27
+ } }
28
+ function FavoritesComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
29
+ const _r4 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "div", 8);
31
+ i0.ɵɵlistener("click", function FavoritesComponent_ng_template_3_Template_div_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r4); const dataItem_r2 = restoredCtx.dataItem; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.favoriteItemClick(dataItem_r2)); });
32
+ i0.ɵɵelementStart(1, "b");
33
+ i0.ɵɵtext(2);
34
+ i0.ɵɵelementEnd();
35
+ i0.ɵɵtext(3);
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const dataItem_r2 = ctx.dataItem;
39
+ i0.ɵɵadvance(2);
40
+ i0.ɵɵtextInterpolate(dataItem_r2.Entity);
41
+ i0.ɵɵadvance(1);
42
+ i0.ɵɵtextInterpolate1(": ", dataItem_r2.RecordName ? dataItem_r2.RecordName : dataItem_r2.RecordID, " ");
43
+ } }
44
+ export class FavoritesComponent {
45
+ constructor(router) {
46
+ this.router = router;
47
+ this.favorites = [];
48
+ this.ExtraFilter = '';
49
+ }
50
+ ngOnInit() {
51
+ const md = new Metadata();
52
+ const rv = new RunView();
53
+ let sFilter = `UserID=${md.CurrentUser.ID}`;
54
+ if (this.ExtraFilter)
55
+ sFilter += `AND (${this.ExtraFilter})`;
56
+ rv.RunView({
57
+ EntityName: 'User Favorites',
58
+ ExtraFilter: sFilter
59
+ }).then((favorites) => __awaiter(this, void 0, void 0, function* () {
60
+ this.favorites = favorites.Results; // set the result in the list and let the below happen after async and it will update via data binding when done
61
+ const input = favorites.Results.map((fav) => {
62
+ return { EntityName: fav.Entity, RecordID: fav.RecordID };
63
+ });
64
+ const results = yield md.GetEntityRecordNames(input);
65
+ if (results)
66
+ results.forEach((result) => {
67
+ const fav = favorites.Results.find((f) => f.Entity == result.EntityName && f.RecordID == result.RecordID);
68
+ if (fav) {
69
+ fav.RecordName = result.Success ? result.RecordName : fav.Entity + ' ' + fav.RecordID;
70
+ }
71
+ });
72
+ }));
73
+ }
74
+ favoriteItemClick(fav) {
75
+ if (fav) {
76
+ if (fav.Entity === 'User Views') {
77
+ // opening a view, different route
78
+ this.router.navigate(['resource', 'view', fav.RecordID]);
79
+ }
80
+ else {
81
+ this.router.navigate(['resource', 'record', fav.RecordID], { queryParams: { Entity: fav.Entity } });
82
+ }
83
+ }
84
+ }
85
+ }
86
+ FavoritesComponent.ɵfac = function FavoritesComponent_Factory(t) { return new (t || FavoritesComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
87
+ FavoritesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FavoritesComponent, selectors: [["app-favorites"]], decls: 4, vars: 1, consts: [[1, "list-view", 3, "data"], [1, "entity-wrap"], ["kendoListViewHeaderTemplate", ""], ["kendoListViewItemTemplate", ""], [1, "header"], [1, "head-tag"], [1, "k-icon", "k-i-clock"], [1, "count"], [1, "list-item", 3, "click"]], template: function FavoritesComponent_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵelementStart(0, "kendo-listview", 0);
89
+ i0.ɵɵelementContainerStart(1, 1);
90
+ i0.ɵɵtemplate(2, FavoritesComponent_ng_template_2_Template, 6, 1, "ng-template", 2);
91
+ i0.ɵɵtemplate(3, FavoritesComponent_ng_template_3_Template, 4, 2, "ng-template", 3);
92
+ i0.ɵɵelementContainerEnd();
93
+ i0.ɵɵelementEnd();
94
+ } if (rf & 2) {
95
+ i0.ɵɵproperty("data", ctx.favorites);
96
+ } }, dependencies: [i2.ItemTemplateDirective, i2.HeaderTemplateDirective, i2.ListViewComponent], styles: [".favorites-list[_ngcontent-%COMP%] {\r\n width: 400px;\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 }"] });
97
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FavoritesComponent, [{
98
+ type: Component,
99
+ args: [{ selector: 'app-favorites', template: "<kendo-listview\n [data]=\"favorites\"\n class=\"list-view\"\n>\n <ng-container class=\"entity-wrap\">\n <ng-template kendoListViewHeaderTemplate>\n <div class=\"header\"> \n <div class=\"head-tag\">\n <span class=\"k-icon k-i-clock\"></span>\n Favorites\n </div>\n <div class=\"count\">{{favorites.length}}</div>\n </div>\n </ng-template>\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div class=\"list-item\" (click)=\"favoriteItemClick(dataItem)\">\n <b>{{dataItem.Entity}}</b>: {{dataItem.RecordName ? dataItem.RecordName : dataItem.RecordID}}\n </div>\n </ng-template>\n </ng-container>\n</kendo-listview>\n", styles: [".favorites-list {\r\n width: 400px;\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 "] }]
100
+ }], function () { return [{ type: i1.Router }]; }, null); })();
@@ -0,0 +1,76 @@
1
+ import { AfterViewInit, OnInit, OnDestroy, QueryList, ElementRef } from '@angular/core';
2
+ import { EntityInfo, ValidationResult, BaseEntity, EntityPermissionType, EntityRelationshipInfo, RunViewParams } from '@memberjunction/core';
3
+ import { UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
4
+ import { BaseRecordComponent } from './base-record-component';
5
+ import { SharedService } from '../shared/shared.service';
6
+ import { ActivatedRoute, Router } from '@angular/router';
7
+ import { TabStripComponent } from '@progress/kendo-angular-layout';
8
+ import * as i0 from "@angular/core";
9
+ export declare abstract class BaseFormComponent extends BaseRecordComponent implements AfterViewInit, OnInit, OnDestroy {
10
+ protected elementRef: ElementRef;
11
+ protected sharedService: SharedService;
12
+ protected router: Router;
13
+ protected route: ActivatedRoute;
14
+ activeTabIndex: number;
15
+ selectedTab: number;
16
+ EditMode: boolean;
17
+ BottomMargin: number;
18
+ TabHeight: string;
19
+ GridBottomMargin: number;
20
+ FavoriteInitDone: boolean;
21
+ isHistoryDialogOpen: boolean;
22
+ private splitterLayoutChangeSubject;
23
+ private _pendingRecords;
24
+ private _updatingBrowserUrl;
25
+ constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute);
26
+ tabComponent: TabStripComponent;
27
+ ngOnInit(): Promise<void>;
28
+ ngAfterViewInit(): void;
29
+ private resizeSub;
30
+ ngOnDestroy(): void;
31
+ userViewGridComponents: QueryList<UserViewGridComponent>;
32
+ protected get PendingRecords(): BaseEntity[];
33
+ onTabSelect(e: any): void;
34
+ StartEditMode(): void;
35
+ handleHistoryDialog(): void;
36
+ RemoveFavorite(): Promise<void>;
37
+ MakeFavorite(): Promise<void>;
38
+ SetFavoriteStatus(isFavorite: boolean): Promise<void>;
39
+ private _isFavorite;
40
+ get IsFavorite(): boolean;
41
+ CheckUserPermission(type: EntityPermissionType): boolean;
42
+ get UserCanEdit(): boolean;
43
+ get UserCanRead(): boolean;
44
+ get UserCanCreate(): boolean;
45
+ get UserCanDelete(): boolean;
46
+ GridEditMode(): "None" | "Save" | "Queue";
47
+ private _tabIndexes;
48
+ GetTabIndex(tabName: string): number;
49
+ RegisterTabs(tabs: string[]): void;
50
+ RegisterTab(tabName: string): number;
51
+ IsCurrentTab(tabName: string): boolean;
52
+ RegisterAndCheckIfCurrentTab(tabName: string): boolean;
53
+ protected BuildRelationshipViewParams(item: EntityRelationshipInfo): RunViewParams;
54
+ BuildRelationshipViewParamsByEntityName(relatedEntityName: string): RunViewParams;
55
+ GetRelatedEntityTabDisplayName(relatedEntityName: string): string;
56
+ protected ValidatePendingRecords(): ValidationResult[];
57
+ Validate(): ValidationResult;
58
+ SaveRecord(StopEditModeAfterSave: boolean): Promise<boolean>;
59
+ Wait(duration: number): Promise<void>;
60
+ CancelEdit(): void;
61
+ protected PendingRecordsDirty(): boolean;
62
+ protected PopulatePendingRecords(): Promise<void>;
63
+ protected InternalSaveRecord(): Promise<boolean>;
64
+ protected GetTabTopPosition(): number;
65
+ private _tabMargin;
66
+ setTabHeight(): void;
67
+ protected get ContainerObjectHeight(): number;
68
+ protected ResizeTab(): void;
69
+ protected setupSplitterLayoutDebounce(): void;
70
+ splitterLayoutChange(): void;
71
+ protected ResizeGrids(): void;
72
+ ShowDependencies(): Promise<void>;
73
+ get EntityInfo(): EntityInfo | undefined;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormComponent, never>;
75
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormComponent, never, never, {}, {}, never, never, false, never>;
76
+ }