@memberjunction/ng-explorer-core 0.9.78 → 0.9.96

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 (105) hide show
  1. package/dist/lib/ask-skip/ask-skip.component.d.ts +87 -86
  2. package/dist/lib/ask-skip/ask-skip.component.js +615 -580
  3. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +12 -12
  4. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +40 -39
  5. package/dist/lib/auth-button/auth-button.component.d.ts +12 -12
  6. package/dist/lib/auth-button/auth-button.component.js +44 -43
  7. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +18 -18
  8. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +117 -117
  9. package/dist/lib/data-browser-component/data-browser.component.d.ts +16 -14
  10. package/dist/lib/data-browser-component/data-browser.component.js +96 -91
  11. package/dist/lib/favorites/favorites.component.d.ts +14 -14
  12. package/dist/lib/favorites/favorites.component.js +114 -114
  13. package/dist/lib/generic/base-form-component.d.ts +76 -76
  14. package/dist/lib/generic/base-form-component.js +436 -436
  15. package/dist/lib/generic/base-form-section-component.d.ts +6 -6
  16. package/dist/lib/generic/base-form-section-component.js +9 -9
  17. package/dist/lib/generic/base-record-component.d.ts +6 -6
  18. package/dist/lib/generic/base-record-component.js +15 -15
  19. package/dist/lib/generic/base-resource-component.d.ts +34 -34
  20. package/dist/lib/generic/base-resource-component.js +75 -75
  21. package/dist/lib/generic/dynamic-chart.d.ts +33 -33
  22. package/dist/lib/generic/dynamic-chart.js +236 -235
  23. package/dist/lib/generic/dynamic-grid.d.ts +25 -25
  24. package/dist/lib/generic/dynamic-grid.js +120 -119
  25. package/dist/lib/generic/dynamic-report.d.ts +38 -38
  26. package/dist/lib/generic/dynamic-report.js +353 -347
  27. package/dist/lib/generic/form-toolbar.d.ts +7 -7
  28. package/dist/lib/generic/form-toolbar.js +85 -89
  29. package/dist/lib/generic/resource-container-component.d.ts +25 -25
  30. package/dist/lib/generic/resource-container-component.js +104 -103
  31. package/dist/lib/generic/section-loader-component.d.ts +17 -17
  32. package/dist/lib/generic/section-loader-component.js +66 -65
  33. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +26 -24
  34. package/dist/lib/generic-browse-list/generic-browse-list.component.js +145 -143
  35. package/dist/lib/guards/auth-guard.service.d.ts +11 -11
  36. package/dist/lib/guards/auth-guard.service.js +24 -24
  37. package/dist/lib/guards/entities.guard.d.ts +3 -3
  38. package/dist/lib/guards/entities.guard.js +38 -38
  39. package/dist/lib/header/MSFT_UserImageService.d.ts +11 -11
  40. package/dist/lib/header/MSFT_UserImageService.js +23 -23
  41. package/dist/lib/header/header.component.d.ts +51 -51
  42. package/dist/lib/header/header.component.js +220 -208
  43. package/dist/lib/home-component/home.component.d.ts +11 -9
  44. package/dist/lib/home-component/home.component.js +77 -54
  45. package/dist/lib/join-grid/join-grid.component.d.ts +30 -30
  46. package/dist/lib/join-grid/join-grid.component.js +222 -225
  47. package/dist/lib/navigation/navigation.component.d.ts +104 -103
  48. package/dist/lib/navigation/navigation.component.js +1026 -1004
  49. package/dist/lib/query-browser-component/query-browser.component.d.ts +14 -0
  50. package/dist/lib/query-browser-component/query-browser.component.js +55 -0
  51. package/dist/lib/report-browser-component/report-browser.component.d.ts +14 -14
  52. package/dist/lib/report-browser-component/report-browser.component.js +55 -55
  53. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +8 -8
  54. package/dist/lib/resource-wrappers/dashboard-resource.component.js +51 -50
  55. package/dist/lib/resource-wrappers/query-resource.component.d.ts +10 -0
  56. package/dist/lib/resource-wrappers/query-resource.component.js +55 -0
  57. package/dist/lib/resource-wrappers/record-resource.component.d.ts +10 -10
  58. package/dist/lib/resource-wrappers/record-resource.component.js +71 -70
  59. package/dist/lib/resource-wrappers/report-resource.component.d.ts +10 -10
  60. package/dist/lib/resource-wrappers/report-resource.component.js +55 -54
  61. package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts +1 -1
  62. package/dist/lib/resource-wrappers/resource-wrappers-loader.js +14 -12
  63. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +10 -10
  64. package/dist/lib/resource-wrappers/search-results-resource.component.js +52 -51
  65. package/dist/lib/resource-wrappers/view-resource.component.d.ts +8 -8
  66. package/dist/lib/resource-wrappers/view-resource.component.js +61 -60
  67. package/dist/lib/settings/settings.component.d.ts +5 -5
  68. package/dist/lib/settings/settings.component.js +15 -14
  69. package/dist/lib/single-application/single-application.component.d.ts +20 -20
  70. package/dist/lib/single-application/single-application.component.js +113 -113
  71. package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +28 -28
  72. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +210 -212
  73. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts +13 -13
  74. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +60 -59
  75. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +26 -26
  76. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +170 -169
  77. package/dist/lib/single-dashboard/single-dashboard.component.d.ts +75 -75
  78. package/dist/lib/single-dashboard/single-dashboard.component.js +464 -456
  79. package/dist/lib/single-entity/single-entity.component.d.ts +33 -33
  80. package/dist/lib/single-entity/single-entity.component.js +258 -252
  81. package/dist/lib/single-query/single-query.component.d.ts +16 -0
  82. package/dist/lib/single-query/single-query.component.js +70 -0
  83. package/dist/lib/single-record/single-record.component.d.ts +21 -21
  84. package/dist/lib/single-record/single-record.component.js +95 -95
  85. package/dist/lib/single-report/single-report.component.d.ts +22 -22
  86. package/dist/lib/single-report/single-report.component.js +88 -87
  87. package/dist/lib/single-search-result/single-search-result.component.d.ts +15 -15
  88. package/dist/lib/single-search-result/single-search-result.component.js +61 -60
  89. package/dist/lib/single-view/single-view.component.d.ts +38 -38
  90. package/dist/lib/single-view/single-view.component.js +201 -201
  91. package/dist/lib/user-notifications/user-notifications.component.d.ts +32 -32
  92. package/dist/lib/user-notifications/user-notifications.component.js +282 -282
  93. package/dist/lib/user-profile/user-profile.component.d.ts +10 -10
  94. package/dist/lib/user-profile/user-profile.component.js +42 -41
  95. package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts +71 -71
  96. package/dist/lib/user-view-properties/view-properties-dialog.component.js +591 -581
  97. package/dist/module.d.ts +69 -65
  98. package/dist/module.js +356 -338
  99. package/dist/public-api.d.ts +46 -47
  100. package/dist/public-api.js +49 -50
  101. package/dist/shared/shared.service.d.ts +94 -92
  102. package/dist/shared/shared.service.js +324 -318
  103. package/dist/shared/urlPipe.d.ts +7 -7
  104. package/dist/shared/urlPipe.js +16 -16
  105. package/package.json +23 -15
@@ -1,60 +1,61 @@
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, EventEmitter, Input, Output, ViewChild } from '@angular/core';
11
- import { UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@memberjunction/ng-user-view-grid";
14
- export class SingleSearchResultComponent {
15
- constructor() {
16
- this.entity = '';
17
- this.searchInput = '';
18
- this.loadComplete = new EventEmitter();
19
- this.loadStarted = new EventEmitter();
20
- }
21
- get params() {
22
- const p = {
23
- EntityName: this.entity,
24
- ExtraFilter: "ID > 0",
25
- UserSearchString: this.searchInput,
26
- };
27
- return p;
28
- }
29
- ngAfterViewInit() {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- this.loadStarted.emit();
32
- yield this.userViewGrid.Refresh(this.params);
33
- this.loadComplete.emit();
34
- });
35
- }
36
- }
37
- SingleSearchResultComponent.ɵfac = function SingleSearchResultComponent_Factory(t) { return new (t || SingleSearchResultComponent)(); };
38
- SingleSearchResultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleSearchResultComponent, selectors: [["app-single-search-result"]], viewQuery: function SingleSearchResultComponent_Query(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵviewQuery(UserViewGridComponent, 5);
40
- } if (rf & 2) {
41
- let _t;
42
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.userViewGrid = _t.first);
43
- } }, inputs: { entity: "entity", searchInput: "searchInput" }, outputs: { loadComplete: "loadComplete", loadStarted: "loadStarted" }, decls: 1, vars: 0, template: function SingleSearchResultComponent_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelement(0, "mj-user-view-grid");
45
- } }, dependencies: [i1.UserViewGridComponent] });
46
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleSearchResultComponent, [{
47
- type: Component,
48
- args: [{ selector: 'app-single-search-result', template: "<mj-user-view-grid\n>\n</mj-user-view-grid>" }]
49
- }], null, { entity: [{
50
- type: Input
51
- }], searchInput: [{
52
- type: Input
53
- }], loadComplete: [{
54
- type: Output
55
- }], loadStarted: [{
56
- type: Output
57
- }], userViewGrid: [{
58
- type: ViewChild,
59
- args: [UserViewGridComponent]
60
- }] }); })();
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, EventEmitter, Input, Output, ViewChild } from '@angular/core';
11
+ import { UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@memberjunction/ng-user-view-grid";
14
+ export class SingleSearchResultComponent {
15
+ constructor() {
16
+ this.entity = '';
17
+ this.searchInput = '';
18
+ this.loadComplete = new EventEmitter();
19
+ this.loadStarted = new EventEmitter();
20
+ }
21
+ get params() {
22
+ const p = {
23
+ EntityName: this.entity,
24
+ ExtraFilter: "ID > 0", // temporary hack as ExtraFilter is required for dynamic views
25
+ UserSearchString: this.searchInput,
26
+ };
27
+ return p;
28
+ }
29
+ ngAfterViewInit() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ this.loadStarted.emit();
32
+ yield this.userViewGrid.Refresh(this.params);
33
+ this.loadComplete.emit();
34
+ });
35
+ }
36
+ }
37
+ SingleSearchResultComponent.ɵfac = function SingleSearchResultComponent_Factory(t) { return new (t || SingleSearchResultComponent)(); };
38
+ SingleSearchResultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleSearchResultComponent, selectors: [["app-single-search-result"]], viewQuery: function SingleSearchResultComponent_Query(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵviewQuery(UserViewGridComponent, 5);
40
+ } if (rf & 2) {
41
+ let _t;
42
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.userViewGrid = _t.first);
43
+ } }, inputs: { entity: "entity", searchInput: "searchInput" }, outputs: { loadComplete: "loadComplete", loadStarted: "loadStarted" }, decls: 1, vars: 0, template: function SingleSearchResultComponent_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelement(0, "mj-user-view-grid");
45
+ } }, dependencies: [i1.UserViewGridComponent] });
46
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleSearchResultComponent, [{
47
+ type: Component,
48
+ args: [{ selector: 'app-single-search-result', template: "<mj-user-view-grid\n>\n</mj-user-view-grid>" }]
49
+ }], null, { entity: [{
50
+ type: Input
51
+ }], searchInput: [{
52
+ type: Input
53
+ }], loadComplete: [{
54
+ type: Output
55
+ }], loadStarted: [{
56
+ type: Output
57
+ }], userViewGrid: [{
58
+ type: ViewChild,
59
+ args: [UserViewGridComponent]
60
+ }] }); })();
61
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SingleSearchResultComponent, { className: "SingleSearchResultComponent", filePath: "src\\lib\\single-search-result\\single-search-result.component.ts", lineNumber: 10 }); })();
@@ -1,38 +1,38 @@
1
- import { EventEmitter, AfterViewInit, OnInit } from '@angular/core';
2
- import { GridRowClickedEvent, UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
3
- import { EntityInfo } from '@memberjunction/core';
4
- import { ActivatedRoute, Router } from '@angular/router';
5
- import { UserViewEntity } from '@memberjunction/core-entities';
6
- import { SharedService } from '../../shared/shared.service';
7
- import * as i0 from "@angular/core";
8
- export declare class SingleViewComponent implements AfterViewInit, OnInit {
9
- private router;
10
- private route;
11
- private sharedService;
12
- viewGrid: UserViewGridComponent;
13
- viewId: number | null;
14
- viewName: string | null;
15
- selectedView: UserViewEntity | null;
16
- extraFilter: string | null;
17
- entityName: string | null;
18
- loadComplete: EventEmitter<any>;
19
- selectedEntity: EntityInfo | null;
20
- showSearch: boolean;
21
- searchText: string;
22
- private searchDebounce$;
23
- private _deferLoadCount;
24
- constructor(router: Router, route: ActivatedRoute, sharedService: SharedService);
25
- ngAfterViewInit(): void;
26
- ngOnInit(): void;
27
- private initialLoad;
28
- handleRowClick(args: GridRowClickedEvent): Promise<void>;
29
- LoadView(viewInfo: UserViewEntity): Promise<void>;
30
- LoadDynamicView(): Promise<void>;
31
- Refresh(): Promise<void>;
32
- onSearch(inputValue: string): void;
33
- private setupSearchDebounce;
34
- private search;
35
- viewPropertiesDialogClosed(args: any): void;
36
- static ɵfac: i0.ɵɵFactoryDeclaration<SingleViewComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<SingleViewComponent, "app-single-view", never, { "viewId": "viewId"; "viewName": "viewName"; "selectedView": "selectedView"; "extraFilter": "extraFilter"; "entityName": "entityName"; }, { "loadComplete": "loadComplete"; }, never, never, false, never>;
38
- }
1
+ import { EventEmitter, AfterViewInit, OnInit } from '@angular/core';
2
+ import { GridRowClickedEvent, UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
3
+ import { EntityInfo } from '@memberjunction/core';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { UserViewEntity } from '@memberjunction/core-entities';
6
+ import { SharedService } from '../../shared/shared.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class SingleViewComponent implements AfterViewInit, OnInit {
9
+ private router;
10
+ private route;
11
+ private sharedService;
12
+ viewGrid: UserViewGridComponent;
13
+ viewId: number | null;
14
+ viewName: string | null;
15
+ selectedView: UserViewEntity | null;
16
+ extraFilter: string | null;
17
+ entityName: string | null;
18
+ loadComplete: EventEmitter<any>;
19
+ selectedEntity: EntityInfo | null;
20
+ showSearch: boolean;
21
+ searchText: string;
22
+ private searchDebounce$;
23
+ private _deferLoadCount;
24
+ constructor(router: Router, route: ActivatedRoute, sharedService: SharedService);
25
+ ngAfterViewInit(): void;
26
+ ngOnInit(): void;
27
+ private initialLoad;
28
+ handleRowClick(args: GridRowClickedEvent): Promise<void>;
29
+ LoadView(viewInfo: UserViewEntity): Promise<void>;
30
+ LoadDynamicView(): Promise<void>;
31
+ Refresh(): Promise<void>;
32
+ onSearch(inputValue: string): void;
33
+ private setupSearchDebounce;
34
+ private search;
35
+ viewPropertiesDialogClosed(args: any): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<SingleViewComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<SingleViewComponent, "app-single-view", never, { "viewId": { "alias": "viewId"; "required": false; }; "viewName": { "alias": "viewName"; "required": false; }; "selectedView": { "alias": "selectedView"; "required": false; }; "extraFilter": { "alias": "extraFilter"; "required": false; }; "entityName": { "alias": "entityName"; "required": false; }; }, { "loadComplete": "loadComplete"; }, never, never, false, never>;
38
+ }
@@ -1,201 +1,201 @@
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, ViewChild, Input, Output, EventEmitter } from '@angular/core';
11
- import { UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
12
- import { Metadata, LogError } from '@memberjunction/core';
13
- import { distinctUntilChanged, Subject } from "rxjs";
14
- import { debounceTime } from "rxjs/operators";
15
- import { ViewInfo } from '@memberjunction/core-entities';
16
- import { SharedService } from '../../shared/shared.service';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/router";
19
- import * as i2 from "../../shared/shared.service";
20
- import * as i3 from "@angular/common";
21
- import * as i4 from "@angular/forms";
22
- import * as i5 from "@progress/kendo-angular-inputs";
23
- import * as i6 from "@memberjunction/ng-container-directives";
24
- import * as i7 from "@memberjunction/ng-user-view-grid";
25
- import * as i8 from "../user-view-properties/view-properties-dialog.component";
26
- function SingleViewComponent_kendo_textbox_2_Template(rf, ctx) { if (rf & 1) {
27
- const _r3 = i0.ɵɵgetCurrentView();
28
- i0.ɵɵelementStart(0, "kendo-textbox", 5);
29
- i0.ɵɵlistener("valueChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSearch($event)); })("ngModelChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.searchText = $event); });
30
- i0.ɵɵelementEnd();
31
- } if (rf & 2) {
32
- const ctx_r0 = i0.ɵɵnextContext();
33
- i0.ɵɵproperty("clearButton", true)("ngModel", ctx_r0.searchText);
34
- } }
35
- function SingleViewComponent_app_view_properties_dialog_3_Template(rf, ctx) { if (rf & 1) {
36
- const _r6 = i0.ɵɵgetCurrentView();
37
- i0.ɵɵelementStart(0, "app-view-properties-dialog", 6);
38
- i0.ɵɵlistener("dialogClosed", function SingleViewComponent_app_view_properties_dialog_3_Template_app_view_properties_dialog_dialogClosed_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.viewPropertiesDialogClosed($event)); });
39
- i0.ɵɵelementEnd();
40
- } if (rf & 2) {
41
- const ctx_r1 = i0.ɵɵnextContext();
42
- i0.ɵɵproperty("ViewID", ctx_r1.selectedView.ID);
43
- } }
44
- export class SingleViewComponent {
45
- constructor(router, route, sharedService) {
46
- this.router = router;
47
- this.route = route;
48
- this.sharedService = sharedService;
49
- this.viewId = null;
50
- this.viewName = null;
51
- this.selectedView = null;
52
- this.extraFilter = null;
53
- this.entityName = null;
54
- this.loadComplete = new EventEmitter();
55
- this.selectedEntity = null;
56
- this.showSearch = false;
57
- this.searchText = '';
58
- this.searchDebounce$ = new Subject();
59
- this._deferLoadCount = 0;
60
- }
61
- ngAfterViewInit() {
62
- this.initialLoad();
63
- }
64
- ngOnInit() {
65
- this.setupSearchDebounce();
66
- }
67
- initialLoad() {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const md = new Metadata();
70
- if (this.viewId || this.viewName) {
71
- let view = null;
72
- if (this.viewId)
73
- view = (yield ViewInfo.GetViewEntity(this.viewId));
74
- else if (this.viewName)
75
- view = (yield ViewInfo.GetViewEntityByName(this.viewName));
76
- if (view) {
77
- yield this.LoadView(view);
78
- const e = md.Entities.find(e => e.ID === (view === null || view === void 0 ? void 0 : view.EntityID));
79
- if (e) {
80
- this.selectedEntity = e;
81
- this.showSearch = e.AllowUserSearchAPI;
82
- }
83
- }
84
- }
85
- else if (this.entityName && this.entityName.length > 0) {
86
- // we are running a dynamic view here, not a view by ID
87
- const e = md.Entities.find(e => { var _a; return e.Name.trim().toLowerCase() === ((_a = this.entityName) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()); });
88
- if (e) {
89
- this.selectedEntity = e;
90
- this.showSearch = e.AllowUserSearchAPI;
91
- yield this.LoadDynamicView();
92
- }
93
- else {
94
- // problem, we don't have a valid entity name
95
- LogError(`Invalid entity name: ${this.entityName}`);
96
- this.sharedService.CreateSimpleNotification(`The entity name ${this.entityName} is not valid. Please check the URL and try again.`, "error", 5000);
97
- }
98
- }
99
- });
100
- }
101
- handleRowClick(args) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- // tell the router to navigate instead of raising an event directly. router will in turn handle raising the event as required
104
- this.router.navigate(['resource', 'record', SharedService.GeneratePrimaryKeyValueString(args.primaryKeyValues)], { queryParams: { Entity: args.entityName } });
105
- });
106
- }
107
- LoadView(viewInfo) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- // load up the view
110
- if (viewInfo && viewInfo.ID && viewInfo.ID > 0)
111
- this.selectedView = viewInfo;
112
- yield this.viewGrid.Refresh({
113
- ViewEntity: viewInfo,
114
- ViewID: viewInfo.ID,
115
- UserSearchString: this.searchText
116
- });
117
- this.loadComplete.emit();
118
- });
119
- }
120
- LoadDynamicView() {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- this.selectedView = null;
123
- yield this.viewGrid.Refresh({
124
- EntityName: this.entityName,
125
- ExtraFilter: this.extraFilter,
126
- UserSearchString: this.searchText
127
- });
128
- this.loadComplete.emit();
129
- });
130
- }
131
- Refresh() {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- if (this.selectedView)
134
- yield this.LoadView(this.selectedView);
135
- else
136
- yield this.LoadDynamicView();
137
- });
138
- }
139
- onSearch(inputValue) {
140
- this.searchDebounce$.next(inputValue);
141
- }
142
- setupSearchDebounce() {
143
- this.searchDebounce$.pipe(debounceTime(500), // updated to 500ms to reduce API calls and since most people don't type super fast
144
- distinctUntilChanged()).subscribe((inputValue) => {
145
- this.search(inputValue);
146
- });
147
- }
148
- search(inputValue) {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- this.searchText = inputValue;
151
- yield this.Refresh();
152
- });
153
- }
154
- viewPropertiesDialogClosed(args) {
155
- if (args && args.Saved && args.ViewEntity) {
156
- this.selectedView = args.ViewEntity;
157
- this.Refresh();
158
- }
159
- }
160
- }
161
- SingleViewComponent.ɵfac = function SingleViewComponent_Factory(t) { return new (t || SingleViewComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
162
- SingleViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleViewComponent, selectors: [["app-single-view"]], viewQuery: function SingleViewComponent_Query(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵviewQuery(UserViewGridComponent, 7);
164
- } if (rf & 2) {
165
- let _t;
166
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewGrid = _t.first);
167
- } }, inputs: { viewId: "viewId", viewName: "viewName", selectedView: "selectedView", extraFilter: "extraFilter", entityName: "entityName" }, outputs: { loadComplete: "loadComplete" }, decls: 5, vars: 3, consts: [["mjFillContainer", ""], [1, "searchBox"], ["id", "txtSearch", "placeholder", "Search here...", "kendoTextBox", "", 3, "clearButton", "ngModel", "valueChange", "ngModelChange", 4, "ngIf"], [3, "ViewID", "dialogClosed", 4, "ngIf"], ["mjFillContainer", "", 3, "AutoNavigate", "rowClicked"], ["id", "txtSearch", "placeholder", "Search here...", "kendoTextBox", "", 3, "clearButton", "ngModel", "valueChange", "ngModelChange"], [3, "ViewID", "dialogClosed"]], template: function SingleViewComponent_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
169
- i0.ɵɵtemplate(2, SingleViewComponent_kendo_textbox_2_Template, 1, 2, "kendo-textbox", 2);
170
- i0.ɵɵtemplate(3, SingleViewComponent_app_view_properties_dialog_3_Template, 1, 1, "app-view-properties-dialog", 3);
171
- i0.ɵɵelementEnd();
172
- i0.ɵɵelementStart(4, "mj-user-view-grid", 4);
173
- i0.ɵɵlistener("rowClicked", function SingleViewComponent_Template_mj_user_view_grid_rowClicked_4_listener($event) { return ctx.handleRowClick($event); });
174
- i0.ɵɵelementEnd()();
175
- } if (rf & 2) {
176
- i0.ɵɵadvance(2);
177
- i0.ɵɵproperty("ngIf", ctx.showSearch);
178
- i0.ɵɵadvance(1);
179
- i0.ɵɵproperty("ngIf", ctx.selectedView);
180
- i0.ɵɵadvance(1);
181
- i0.ɵɵproperty("AutoNavigate", false);
182
- } }, dependencies: [i3.NgIf, i4.NgControlStatus, i4.NgModel, i5.TextBoxComponent, i6.FillContainer, i7.UserViewGridComponent, i8.ViewPropertiesDialogComponent] });
183
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleViewComponent, [{
184
- type: Component,
185
- args: [{ selector: 'app-single-view', template: "<div mjFillContainer>\r\n <div class=\"card-container\" class=\"searchBox\">\r\n <kendo-textbox\r\n id=\"txtSearch\"\r\n *ngIf=\"showSearch\"\r\n placeholder=\"Search here...\"\r\n kendoTextBox\r\n (valueChange)=\"onSearch($event)\"\r\n [clearButton]=\"true\"\r\n [(ngModel)]=\"searchText\"\r\n ></kendo-textbox>\r\n\r\n <app-view-properties-dialog *ngIf=\"selectedView\" [ViewID]=\"selectedView.ID\" (dialogClosed)=\"this.viewPropertiesDialogClosed($event)\" ></app-view-properties-dialog>\r\n </div>\r\n\r\n <mj-user-view-grid (rowClicked)=\"handleRowClick($event)\" [AutoNavigate]=\"false\" mjFillContainer></mj-user-view-grid>\r\n</div>\r\n" }]
186
- }], function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }]; }, { viewGrid: [{
187
- type: ViewChild,
188
- args: [UserViewGridComponent, { static: true }]
189
- }], viewId: [{
190
- type: Input
191
- }], viewName: [{
192
- type: Input
193
- }], selectedView: [{
194
- type: Input
195
- }], extraFilter: [{
196
- type: Input
197
- }], entityName: [{
198
- type: Input
199
- }], loadComplete: [{
200
- type: Output
201
- }] }); })();
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, ViewChild, Input, Output, EventEmitter } from '@angular/core';
11
+ import { UserViewGridComponent } from '@memberjunction/ng-user-view-grid';
12
+ import { Metadata, LogError } from '@memberjunction/core';
13
+ import { distinctUntilChanged, Subject } from "rxjs";
14
+ import { debounceTime } from "rxjs/operators";
15
+ import { ViewInfo } from '@memberjunction/core-entities';
16
+ import { SharedService } from '../../shared/shared.service';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/router";
19
+ import * as i2 from "../../shared/shared.service";
20
+ import * as i3 from "@angular/common";
21
+ import * as i4 from "@angular/forms";
22
+ import * as i5 from "@progress/kendo-angular-inputs";
23
+ import * as i6 from "@memberjunction/ng-container-directives";
24
+ import * as i7 from "@memberjunction/ng-user-view-grid";
25
+ import * as i8 from "../user-view-properties/view-properties-dialog.component";
26
+ function SingleViewComponent_kendo_textbox_2_Template(rf, ctx) { if (rf & 1) {
27
+ const _r3 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "kendo-textbox", 5);
29
+ i0.ɵɵlistener("valueChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSearch($event)); })("ngModelChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.searchText = $event); });
30
+ i0.ɵɵelementEnd();
31
+ } if (rf & 2) {
32
+ const ctx_r0 = i0.ɵɵnextContext();
33
+ i0.ɵɵproperty("clearButton", true)("ngModel", ctx_r0.searchText);
34
+ } }
35
+ function SingleViewComponent_app_view_properties_dialog_3_Template(rf, ctx) { if (rf & 1) {
36
+ const _r6 = i0.ɵɵgetCurrentView();
37
+ i0.ɵɵelementStart(0, "app-view-properties-dialog", 6);
38
+ i0.ɵɵlistener("dialogClosed", function SingleViewComponent_app_view_properties_dialog_3_Template_app_view_properties_dialog_dialogClosed_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.viewPropertiesDialogClosed($event)); });
39
+ i0.ɵɵelementEnd();
40
+ } if (rf & 2) {
41
+ const ctx_r1 = i0.ɵɵnextContext();
42
+ i0.ɵɵproperty("ViewID", ctx_r1.selectedView.ID);
43
+ } }
44
+ export class SingleViewComponent {
45
+ constructor(router, route, sharedService) {
46
+ this.router = router;
47
+ this.route = route;
48
+ this.sharedService = sharedService;
49
+ this.viewId = null;
50
+ this.viewName = null;
51
+ this.selectedView = null;
52
+ this.extraFilter = null;
53
+ this.entityName = null;
54
+ this.loadComplete = new EventEmitter();
55
+ this.selectedEntity = null;
56
+ this.showSearch = false;
57
+ this.searchText = '';
58
+ this.searchDebounce$ = new Subject();
59
+ this._deferLoadCount = 0;
60
+ }
61
+ ngAfterViewInit() {
62
+ this.initialLoad();
63
+ }
64
+ ngOnInit() {
65
+ this.setupSearchDebounce();
66
+ }
67
+ initialLoad() {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const md = new Metadata();
70
+ if (this.viewId || this.viewName) {
71
+ let view = null;
72
+ if (this.viewId)
73
+ view = (yield ViewInfo.GetViewEntity(this.viewId));
74
+ else if (this.viewName)
75
+ view = (yield ViewInfo.GetViewEntityByName(this.viewName));
76
+ if (view) {
77
+ yield this.LoadView(view);
78
+ const e = md.Entities.find(e => e.ID === (view === null || view === void 0 ? void 0 : view.EntityID));
79
+ if (e) {
80
+ this.selectedEntity = e;
81
+ this.showSearch = e.AllowUserSearchAPI;
82
+ }
83
+ }
84
+ }
85
+ else if (this.entityName && this.entityName.length > 0) {
86
+ // we are running a dynamic view here, not a view by ID
87
+ const e = md.Entities.find(e => { var _a; return e.Name.trim().toLowerCase() === ((_a = this.entityName) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()); });
88
+ if (e) {
89
+ this.selectedEntity = e;
90
+ this.showSearch = e.AllowUserSearchAPI;
91
+ yield this.LoadDynamicView();
92
+ }
93
+ else {
94
+ // problem, we don't have a valid entity name
95
+ LogError(`Invalid entity name: ${this.entityName}`);
96
+ this.sharedService.CreateSimpleNotification(`The entity name ${this.entityName} is not valid. Please check the URL and try again.`, "error", 5000);
97
+ }
98
+ }
99
+ });
100
+ }
101
+ handleRowClick(args) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ // tell the router to navigate instead of raising an event directly. router will in turn handle raising the event as required
104
+ this.router.navigate(['resource', 'record', SharedService.GeneratePrimaryKeyValueString(args.primaryKeyValues)], { queryParams: { Entity: args.entityName } });
105
+ });
106
+ }
107
+ LoadView(viewInfo) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ // load up the view
110
+ if (viewInfo && viewInfo.ID && viewInfo.ID > 0)
111
+ this.selectedView = viewInfo;
112
+ yield this.viewGrid.Refresh({
113
+ ViewEntity: viewInfo,
114
+ ViewID: viewInfo.ID,
115
+ UserSearchString: this.searchText
116
+ });
117
+ this.loadComplete.emit();
118
+ });
119
+ }
120
+ LoadDynamicView() {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ this.selectedView = null;
123
+ yield this.viewGrid.Refresh({
124
+ EntityName: this.entityName,
125
+ ExtraFilter: this.extraFilter,
126
+ UserSearchString: this.searchText
127
+ });
128
+ this.loadComplete.emit();
129
+ });
130
+ }
131
+ Refresh() {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ if (this.selectedView)
134
+ yield this.LoadView(this.selectedView);
135
+ else
136
+ yield this.LoadDynamicView();
137
+ });
138
+ }
139
+ onSearch(inputValue) {
140
+ this.searchDebounce$.next(inputValue);
141
+ }
142
+ setupSearchDebounce() {
143
+ this.searchDebounce$.pipe(debounceTime(500), // updated to 500ms to reduce API calls and since most people don't type super fast
144
+ distinctUntilChanged()).subscribe((inputValue) => {
145
+ this.search(inputValue);
146
+ });
147
+ }
148
+ search(inputValue) {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ this.searchText = inputValue;
151
+ yield this.Refresh();
152
+ });
153
+ }
154
+ viewPropertiesDialogClosed(args) {
155
+ if (args && args.Saved && args.ViewEntity) {
156
+ this.selectedView = args.ViewEntity;
157
+ this.Refresh();
158
+ }
159
+ }
160
+ }
161
+ SingleViewComponent.ɵfac = function SingleViewComponent_Factory(t) { return new (t || SingleViewComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
162
+ SingleViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleViewComponent, selectors: [["app-single-view"]], viewQuery: function SingleViewComponent_Query(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵviewQuery(UserViewGridComponent, 7);
164
+ } if (rf & 2) {
165
+ let _t;
166
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewGrid = _t.first);
167
+ } }, inputs: { viewId: "viewId", viewName: "viewName", selectedView: "selectedView", extraFilter: "extraFilter", entityName: "entityName" }, outputs: { loadComplete: "loadComplete" }, decls: 5, vars: 3, consts: [["mjFillContainer", ""], [1, "searchBox"], ["id", "txtSearch", "placeholder", "Search here...", "kendoTextBox", "", 3, "clearButton", "ngModel", "valueChange", "ngModelChange", 4, "ngIf"], [3, "ViewID", "dialogClosed", 4, "ngIf"], ["mjFillContainer", "", 3, "AutoNavigate", "rowClicked"], ["id", "txtSearch", "placeholder", "Search here...", "kendoTextBox", "", 3, "clearButton", "ngModel", "valueChange", "ngModelChange"], [3, "ViewID", "dialogClosed"]], template: function SingleViewComponent_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
169
+ i0.ɵɵtemplate(2, SingleViewComponent_kendo_textbox_2_Template, 1, 2, "kendo-textbox", 2)(3, SingleViewComponent_app_view_properties_dialog_3_Template, 1, 1, "app-view-properties-dialog", 3);
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵelementStart(4, "mj-user-view-grid", 4);
172
+ i0.ɵɵlistener("rowClicked", function SingleViewComponent_Template_mj_user_view_grid_rowClicked_4_listener($event) { return ctx.handleRowClick($event); });
173
+ i0.ɵɵelementEnd()();
174
+ } if (rf & 2) {
175
+ i0.ɵɵadvance(2);
176
+ i0.ɵɵproperty("ngIf", ctx.showSearch);
177
+ i0.ɵɵadvance();
178
+ i0.ɵɵproperty("ngIf", ctx.selectedView);
179
+ i0.ɵɵadvance();
180
+ i0.ɵɵproperty("AutoNavigate", false);
181
+ } }, dependencies: [i3.NgIf, i4.NgControlStatus, i4.NgModel, i5.TextBoxComponent, i6.FillContainer, i7.UserViewGridComponent, i8.ViewPropertiesDialogComponent] });
182
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleViewComponent, [{
183
+ type: Component,
184
+ args: [{ selector: 'app-single-view', template: "<div mjFillContainer>\r\n <div class=\"card-container\" class=\"searchBox\">\r\n <kendo-textbox\r\n id=\"txtSearch\"\r\n *ngIf=\"showSearch\"\r\n placeholder=\"Search here...\"\r\n kendoTextBox\r\n (valueChange)=\"onSearch($event)\"\r\n [clearButton]=\"true\"\r\n [(ngModel)]=\"searchText\"\r\n ></kendo-textbox>\r\n\r\n <app-view-properties-dialog *ngIf=\"selectedView\" [ViewID]=\"selectedView.ID\" (dialogClosed)=\"this.viewPropertiesDialogClosed($event)\" ></app-view-properties-dialog>\r\n </div>\r\n\r\n <mj-user-view-grid (rowClicked)=\"handleRowClick($event)\" [AutoNavigate]=\"false\" mjFillContainer></mj-user-view-grid>\r\n</div>\r\n" }]
185
+ }], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], { viewGrid: [{
186
+ type: ViewChild,
187
+ args: [UserViewGridComponent, { static: true }]
188
+ }], viewId: [{
189
+ type: Input
190
+ }], viewName: [{
191
+ type: Input
192
+ }], selectedView: [{
193
+ type: Input
194
+ }], extraFilter: [{
195
+ type: Input
196
+ }], entityName: [{
197
+ type: Input
198
+ }], loadComplete: [{
199
+ type: Output
200
+ }] }); })();
201
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SingleViewComponent, { className: "SingleViewComponent", filePath: "src\\lib\\single-view\\single-view.component.ts", lineNumber: 15 }); })();