@memberjunction/ng-explorer-core 0.9.199 → 0.9.202

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 (48) hide show
  1. package/dist/generic/Events.types.d.ts +142 -0
  2. package/dist/generic/Events.types.d.ts.map +1 -0
  3. package/dist/generic/Events.types.js +95 -0
  4. package/dist/generic/Item.types.d.ts +25 -0
  5. package/dist/generic/Item.types.d.ts.map +1 -0
  6. package/dist/generic/Item.types.js +36 -0
  7. package/dist/generic/PathData.types.d.ts +9 -0
  8. package/dist/generic/PathData.types.d.ts.map +1 -0
  9. package/dist/generic/PathData.types.js +9 -0
  10. package/dist/lib/base-browser-component/base-browser-component.d.ts +29 -0
  11. package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -0
  12. package/dist/lib/base-browser-component/base-browser-component.js +133 -0
  13. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +8 -9
  14. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -1
  15. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +51 -85
  16. package/dist/lib/data-browser-component/data-browser.component.js +12 -19
  17. package/dist/lib/files/files.component.d.ts +8 -0
  18. package/dist/lib/files/files.component.d.ts.map +1 -0
  19. package/dist/lib/files/files.component.js +22 -0
  20. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +3 -0
  21. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts.map +1 -1
  22. package/dist/lib/generic-browse-list/generic-browse-list.component.js +102 -50
  23. package/dist/lib/generic-browser-list/components/resource/resource.d.ts +1 -0
  24. package/dist/lib/generic-browser-list/components/resource/resource.d.ts.map +1 -0
  25. package/dist/lib/generic-browser-list/components/resource/resource.js +1 -0
  26. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +50 -0
  27. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -0
  28. package/dist/lib/generic-browser-list/generic-browser-list.component.js +366 -0
  29. package/dist/lib/header/header.component.js +25 -28
  30. package/dist/lib/home-component/home.component.js +2 -2
  31. package/dist/lib/navigation/navigation.component.d.ts +1 -0
  32. package/dist/lib/navigation/navigation.component.d.ts.map +1 -1
  33. package/dist/lib/navigation/navigation.component.js +21 -2
  34. package/dist/lib/query-browser-component/query-browser.component.d.ts +10 -7
  35. package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -1
  36. package/dist/lib/query-browser-component/query-browser.component.js +55 -41
  37. package/dist/lib/report-browser-component/report-browser.component.d.ts +10 -4
  38. package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -1
  39. package/dist/lib/report-browser-component/report-browser.component.js +57 -25
  40. package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
  41. package/dist/lib/single-dashboard/single-dashboard.component.js +3 -0
  42. package/dist/module.d.ts +57 -55
  43. package/dist/module.d.ts.map +1 -1
  44. package/dist/module.js +48 -42
  45. package/dist/public-api.d.ts +1 -1
  46. package/dist/public-api.d.ts.map +1 -1
  47. package/dist/public-api.js +1 -1
  48. package/package.json +15 -14
@@ -0,0 +1,142 @@
1
+ import { Item } from "./Item.types";
2
+ /**
3
+ * The possible event types of an event
4
+ */
5
+ export declare const EventTypes: {
6
+ readonly BeforeAddFolder: "BeforeAddFolder";
7
+ readonly BeforeAddItem: "BeforeAddItem";
8
+ readonly BeforeDeleteFolder: "BeforeDeleteFolder";
9
+ readonly BeforeDeleteItem: "BeforeDeleteItem";
10
+ readonly BeforeUpdateFolder: "BeforeUpdateFolder";
11
+ readonly BeforeUpdateItem: "BeforeUpdateItem";
12
+ readonly AfterAddFolder: "AfterAddFolder";
13
+ readonly AfterAddItem: "AfterAddItem";
14
+ readonly AfterDeleteFolder: "AfterDeleteFolder";
15
+ readonly AfterDeleteItem: "AfterDeleteItem";
16
+ readonly AfterUpdateFolder: "AfterUpdateFolder";
17
+ readonly AfterUpdateItem: "AfterUpdateItem";
18
+ };
19
+ export type EventTypes = typeof EventTypes[keyof typeof EventTypes];
20
+ export declare class BaseEvent {
21
+ /**
22
+ * The type of {@link EventTypes} that is being triggered.
23
+ */
24
+ EventType: EventTypes;
25
+ /**
26
+ * If set to true, the child component that it should not proceed
27
+ * with the action that triggered this event.
28
+ */
29
+ Cancel: boolean;
30
+ constructor(eventType: EventTypes);
31
+ }
32
+ export declare class BeforeAddFolderEvent extends BaseEvent {
33
+ /**
34
+ * The name of the {@link Folder} to be added.
35
+ */
36
+ FolderName: string;
37
+ constructor(folderName: string);
38
+ }
39
+ export declare class BeforeAddItemEvent extends BaseEvent {
40
+ /**
41
+ * The name of the {@link Item} to be added.
42
+ */
43
+ ItemName: string;
44
+ constructor(itemName: string);
45
+ }
46
+ export declare class BeforeDeleteFolderEvent extends BaseEvent {
47
+ /**
48
+ * The {@link Item} and underlying {@link Folder} to be deleted.
49
+ */
50
+ Item: Item;
51
+ constructor(item: Item);
52
+ }
53
+ export declare class BeforeDeleteItemEvent extends BaseEvent {
54
+ /**
55
+ * The {@link Item} and its underlying data to be deleted.
56
+ * Note that the type variable for the Data property is set to any.
57
+ * The method subscribing to this event is responsible
58
+ * for casting the item to the correct type.
59
+ *
60
+ * There is no need to check if the Item's type is a Folder or a Resource,
61
+ * as it will always be of type Resource. For folder deletion events
62
+ * subscribe to the {@link BeforeDeleteFolderEvent} event.
63
+ */
64
+ Item: Item;
65
+ constructor(item: Item);
66
+ }
67
+ export declare class BeforeUpdateFolderEvent extends BaseEvent {
68
+ /**
69
+ * The {@link Folder} to update.
70
+ */
71
+ Item: Item;
72
+ constructor(item: Item);
73
+ }
74
+ export declare class BeforeUpdateItemEvent extends BaseEvent {
75
+ /**
76
+ * The {@link Item} and its underlying data to update.
77
+ * Note that the type variable for the Data property is set to any.
78
+ * The method subscribing to this event is responsible
79
+ * for casting the item to the correct type.
80
+ *
81
+ * There is no need to check if the Item's type is a Folder or a Resource,
82
+ * as it will always be of type Resource. For folder deletion events
83
+ * subscribe to the {@link BeforeUpdateFolderEvent} event.
84
+ */
85
+ Item: Item;
86
+ constructor(item: Item);
87
+ }
88
+ export declare class AfterAddFolderEvent extends BaseEvent {
89
+ /**
90
+ * The {@link Folder} that was added.
91
+ */
92
+ Item: Item;
93
+ constructor(item: Item);
94
+ }
95
+ export declare class AfterAddItemEvent extends BaseEvent {
96
+ /**
97
+ * The {@link Item} that was added.
98
+ *
99
+ * There is no need to check if the Item's type is a Folder or a Resource,
100
+ * as it will always be of type Resource. For folder deletion events
101
+ * subscribe to the {@link AfterUpdateFolderEvent} event.
102
+ */
103
+ Item: Item;
104
+ constructor(item: Item);
105
+ }
106
+ export declare class AfterDeleteFolderEvent extends BaseEvent {
107
+ /**
108
+ * The {@link Folder} that was deleted.
109
+ */
110
+ Item: Item;
111
+ constructor(item: Item);
112
+ }
113
+ export declare class AfterDeleteItemEvent extends BaseEvent {
114
+ /**
115
+ * The {@link Item} that was deleted.
116
+ *
117
+ * There is no need to check if the Item's type is a Folder or a Resource,
118
+ * as it will always be of type Resource. For folder deletion events
119
+ * subscribe to the {@link AfterDeleteFolderEvent} event.
120
+ */
121
+ Item: Item;
122
+ constructor(item: Item);
123
+ }
124
+ export declare class AfterUpdateFolderEvent extends BaseEvent {
125
+ /**
126
+ * The {@link Folder} that was updated.
127
+ */
128
+ Item: Item;
129
+ constructor(item: Item);
130
+ }
131
+ export declare class AfterUpdateItemEvent extends BaseEvent {
132
+ /**
133
+ * The {@link Item} that was updated.
134
+ *
135
+ * There is no need to check if the Item's type is a Folder or a Resource,
136
+ * as it will always be of type Resource. For folder deletion events
137
+ * subscribe to the {@link AfterUpdateFolderEvent} event.
138
+ */
139
+ Item: Item;
140
+ constructor(item: Item);
141
+ }
142
+ //# sourceMappingURL=Events.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Events.types.d.ts","sourceRoot":"","sources":["../../src/generic/Events.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAcb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE,qBAAa,SAAS;IAClB;;OAEG;IACI,SAAS,EAAE,UAAU,CAAC;IAC7B;;;OAGG;IACI,MAAM,EAAE,OAAO,CAAC;gBAEX,SAAS,EAAE,UAAU;CAIpC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C;;OAEG;IACI,UAAU,EAAE,MAAM,CAAC;gBAEd,UAAU,EAAE,MAAM;CAIjC;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC7C;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;gBAEZ,QAAQ,EAAE,MAAM;CAI/B;AAED,qBAAa,uBAAwB,SAAQ,SAAS;IAClD;;OAEG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAChD;;;;;;;;;OASG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,uBAAwB,SAAQ,SAAS;IAClD;;OAEG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IAChD;;;;;;;;;OASG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,mBAAoB,SAAQ,SAAS;IAC9C;;OAEG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,iBAAkB,SAAQ,SAAS;IAC5C;;;;;;OAMG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IACjD;;OAEG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C;;;;;;OAMG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IACjD;;OAEG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C;;;;;;OAMG;IACI,IAAI,EAAE,IAAI,CAAC;gBAEN,IAAI,EAAE,IAAI;CAIzB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * The possible event types of an event
3
+ */
4
+ export const EventTypes = {
5
+ BeforeAddFolder: "BeforeAddFolder",
6
+ BeforeAddItem: "BeforeAddItem",
7
+ BeforeDeleteFolder: "BeforeDeleteFolder",
8
+ BeforeDeleteItem: "BeforeDeleteItem",
9
+ BeforeUpdateFolder: "BeforeUpdateFolder",
10
+ BeforeUpdateItem: "BeforeUpdateItem",
11
+ AfterAddFolder: "AfterAddFolder",
12
+ AfterAddItem: "AfterAddItem",
13
+ AfterDeleteFolder: "AfterDeleteFolder",
14
+ AfterDeleteItem: "AfterDeleteItem",
15
+ AfterUpdateFolder: "AfterUpdateFolder",
16
+ AfterUpdateItem: "AfterUpdateItem"
17
+ };
18
+ export class BaseEvent {
19
+ constructor(eventType) {
20
+ this.EventType = eventType;
21
+ this.Cancel = false;
22
+ }
23
+ }
24
+ export class BeforeAddFolderEvent extends BaseEvent {
25
+ constructor(folderName) {
26
+ super(EventTypes.BeforeAddFolder);
27
+ this.FolderName = folderName;
28
+ }
29
+ }
30
+ export class BeforeAddItemEvent extends BaseEvent {
31
+ constructor(itemName) {
32
+ super(EventTypes.BeforeAddItem);
33
+ this.ItemName = itemName;
34
+ }
35
+ }
36
+ export class BeforeDeleteFolderEvent extends BaseEvent {
37
+ constructor(item) {
38
+ super(EventTypes.BeforeDeleteFolder);
39
+ this.Item = item;
40
+ }
41
+ }
42
+ export class BeforeDeleteItemEvent extends BaseEvent {
43
+ constructor(item) {
44
+ super(EventTypes.BeforeDeleteItem);
45
+ this.Item = item;
46
+ }
47
+ }
48
+ export class BeforeUpdateFolderEvent extends BaseEvent {
49
+ constructor(item) {
50
+ super(EventTypes.BeforeUpdateFolder);
51
+ this.Item = item;
52
+ }
53
+ }
54
+ export class BeforeUpdateItemEvent extends BaseEvent {
55
+ constructor(item) {
56
+ super(EventTypes.BeforeUpdateItem);
57
+ this.Item = item;
58
+ }
59
+ }
60
+ export class AfterAddFolderEvent extends BaseEvent {
61
+ constructor(item) {
62
+ super(EventTypes.AfterAddFolder);
63
+ this.Item = item;
64
+ }
65
+ }
66
+ export class AfterAddItemEvent extends BaseEvent {
67
+ constructor(item) {
68
+ super(EventTypes.AfterAddItem);
69
+ this.Item = item;
70
+ }
71
+ }
72
+ export class AfterDeleteFolderEvent extends BaseEvent {
73
+ constructor(item) {
74
+ super(EventTypes.AfterDeleteFolder);
75
+ this.Item = item;
76
+ }
77
+ }
78
+ export class AfterDeleteItemEvent extends BaseEvent {
79
+ constructor(item) {
80
+ super(EventTypes.AfterDeleteItem);
81
+ this.Item = item;
82
+ }
83
+ }
84
+ export class AfterUpdateFolderEvent extends BaseEvent {
85
+ constructor(item) {
86
+ super(EventTypes.AfterUpdateFolder);
87
+ this.Item = item;
88
+ }
89
+ }
90
+ export class AfterUpdateItemEvent extends BaseEvent {
91
+ constructor(item) {
92
+ super(EventTypes.AfterUpdateItem);
93
+ this.Item = item;
94
+ }
95
+ }
@@ -0,0 +1,25 @@
1
+ import { BaseEntity } from "@memberjunction/core";
2
+ export declare enum ItemType {
3
+ Folder = "Folder",
4
+ Entity = "Entity"
5
+ }
6
+ export declare class Item {
7
+ Name: string;
8
+ Description: string;
9
+ Type: ItemType;
10
+ Data: BaseEntity | Folder;
11
+ constructor(data: BaseEntity | Folder, type: ItemType);
12
+ }
13
+ /**
14
+ * A folder is a wrapper class for the various Category
15
+ * entities that we have, e.g. Dashboard Categories,
16
+ * Report Categories, Query Categories, etc.
17
+ */
18
+ export declare class Folder {
19
+ ID: number;
20
+ ParentFolderID?: number | null;
21
+ Name: string;
22
+ Description: string | null;
23
+ constructor(id: number, folderName: string);
24
+ }
25
+ //# sourceMappingURL=Item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.types.d.ts","sourceRoot":"","sources":["../../src/generic/Item.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,oBAAY,QAAQ;IAChB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,qBAAa,IAAI;IACN,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAG,UAAU,GAAG,MAAM,CAAC;gBAEtB,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ;CAkBxD;AAED;;;;GAIG;AACH,qBAAa,MAAM;IACR,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAK7C"}
@@ -0,0 +1,36 @@
1
+ export var ItemType;
2
+ (function (ItemType) {
3
+ ItemType["Folder"] = "Folder";
4
+ ItemType["Entity"] = "Entity";
5
+ })(ItemType || (ItemType = {}));
6
+ ;
7
+ export class Item {
8
+ constructor(data, type) {
9
+ this.Type = type;
10
+ this.Data = data;
11
+ this.Name = "";
12
+ this.Description = "";
13
+ if (data) {
14
+ //Try to set the name and description from the data
15
+ let anyData = data;
16
+ if (anyData.Name) {
17
+ this.Name = anyData.Name;
18
+ }
19
+ if (anyData.Description) {
20
+ this.Description = anyData.Description;
21
+ }
22
+ }
23
+ }
24
+ }
25
+ /**
26
+ * A folder is a wrapper class for the various Category
27
+ * entities that we have, e.g. Dashboard Categories,
28
+ * Report Categories, Query Categories, etc.
29
+ */
30
+ export class Folder {
31
+ constructor(id, folderName) {
32
+ this.ID = id;
33
+ this.Name = folderName;
34
+ this.Description = "";
35
+ }
36
+ }
@@ -0,0 +1,9 @@
1
+ export declare class PathData {
2
+ Name: string;
3
+ ID: number;
4
+ URL: string;
5
+ ParentPathData: PathData | null;
6
+ ChildPathData: PathData | null;
7
+ constructor(id: number, name: string, url: string);
8
+ }
9
+ //# sourceMappingURL=PathData.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PathData.types.d.ts","sourceRoot":"","sources":["../../src/generic/PathData.types.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;gBAE1B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAOpD"}
@@ -0,0 +1,9 @@
1
+ export class PathData {
2
+ constructor(id, name, url) {
3
+ this.ID = id;
4
+ this.Name = name;
5
+ this.URL = url;
6
+ this.ParentPathData = null;
7
+ this.ChildPathData = null;
8
+ }
9
+ }
@@ -0,0 +1,29 @@
1
+ import { Folder, Item } from "../../generic/Item.types";
2
+ import { PathData } from "../../generic/PathData.types";
3
+ import { Router, Params } from '@angular/router';
4
+ import { BaseEvent } from "../../generic/Events.types";
5
+ export declare class BaseBrowserComponent {
6
+ showLoader: boolean;
7
+ items: Item[];
8
+ folders: Folder[];
9
+ entityData: any[];
10
+ PathData: PathData;
11
+ selectedFolderID: number | null;
12
+ protected parentFolderID: number | null;
13
+ private EntityItemFilter;
14
+ private CategoryItemFilter;
15
+ protected pageName: string;
16
+ protected routeName: string;
17
+ protected routeNameSingular: string;
18
+ protected itemEntityName: string;
19
+ protected categoryEntityName: string;
20
+ constructor();
21
+ protected InitPathData(queryParams: Params | undefined): void;
22
+ protected LoadData(entityItemFilter?: string, categoryItemFilter?: string): Promise<void>;
23
+ protected GetCategories(extraFilter?: string): Promise<void>;
24
+ protected GetEntityData(extraFilter?: string): Promise<void>;
25
+ protected CreateItemsList(): void;
26
+ protected Navigate(item: Item, router: Router, dataID: string): void;
27
+ protected onEvent(event: BaseEvent): void;
28
+ }
29
+ //# sourceMappingURL=base-browser-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-browser-component.d.ts","sourceRoot":"","sources":["../../../src/lib/base-browser-component/base-browser-component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAY,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAyD,MAAM,4BAA4B,CAAC;AAE9G,qBAAa,oBAAoB;IACtB,UAAU,EAAE,OAAO,CAAS;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9C,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAM;IAChC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAM;IACjC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAM;IACzC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAM;IACtC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAM;;IAS1C,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;cAU7C,QAAQ,CAAC,gBAAgB,CAAC,EAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAc9E,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAkBlD,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlE,SAAS,CAAC,eAAe,IAAI,IAAI;IAsBjC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpE,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAU5C"}
@@ -0,0 +1,133 @@
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 { RunView } from "@memberjunction/core";
11
+ import { Folder, Item, ItemType } from "../../generic/Item.types";
12
+ import { PathData } from "../../generic/PathData.types";
13
+ import { EventTypes } from "../../generic/Events.types";
14
+ export class BaseBrowserComponent {
15
+ constructor() {
16
+ this.showLoader = false;
17
+ this.selectedFolderID = null;
18
+ this.parentFolderID = null;
19
+ this.pageName = "";
20
+ this.routeName = "";
21
+ this.routeNameSingular = "";
22
+ this.itemEntityName = "";
23
+ this.categoryEntityName = "";
24
+ this.items = [];
25
+ this.folders = [];
26
+ this.entityData = [];
27
+ this.PathData = new PathData(0, "", "");
28
+ }
29
+ InitPathData(queryParams) {
30
+ this.PathData = new PathData(-1, this.pageName, this.routeName);
31
+ if (queryParams && queryParams.folderID) {
32
+ let folderID = Number(queryParams.folderID);
33
+ this.PathData = new PathData(folderID, this.pageName, `/${this.routeName}?folderID=${folderID}`);
34
+ this.selectedFolderID = folderID;
35
+ }
36
+ }
37
+ LoadData(entityItemFilter, categoryItemFilter) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ //cache these values so that we can reused them
40
+ //in the Navigate function
41
+ this.EntityItemFilter = entityItemFilter;
42
+ this.CategoryItemFilter = categoryItemFilter;
43
+ this.showLoader = true;
44
+ yield this.GetEntityData(entityItemFilter);
45
+ yield this.GetCategories(categoryItemFilter);
46
+ this.CreateItemsList();
47
+ this.showLoader = false;
48
+ });
49
+ }
50
+ GetCategories(extraFilter) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const rv = new RunView();
53
+ let filterString = this.selectedFolderID ? `ParentID = ${this.selectedFolderID}` : "ParentID IS NULL";
54
+ filterString += " AND Name != 'Root'";
55
+ const folderResult = yield rv.RunView({
56
+ EntityName: this.categoryEntityName,
57
+ ExtraFilter: extraFilter || filterString
58
+ });
59
+ if (folderResult && folderResult.Success) {
60
+ this.folders = folderResult.Results;
61
+ }
62
+ else {
63
+ this.folders = [];
64
+ }
65
+ });
66
+ }
67
+ GetEntityData(extraFilter) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const rv = new RunView();
70
+ const result = yield rv.RunView({
71
+ EntityName: this.itemEntityName,
72
+ ExtraFilter: extraFilter
73
+ });
74
+ if (result && result.Success) {
75
+ this.entityData = result.Results;
76
+ }
77
+ });
78
+ }
79
+ CreateItemsList() {
80
+ this.items = [];
81
+ for (const data of this.entityData) {
82
+ let item = new Item(data, ItemType.Entity);
83
+ this.items.push(item);
84
+ }
85
+ for (const folder of this.folders) {
86
+ const dashboardFolder = new Folder(folder.ID, folder.Name);
87
+ dashboardFolder.ParentFolderID = folder.ParentFolderID;
88
+ dashboardFolder.Description = folder.Description;
89
+ let item = new Item(dashboardFolder, ItemType.Folder);
90
+ this.items.push(item);
91
+ }
92
+ this.items.sort(function (a, b) {
93
+ if (a.Name < b.Name) {
94
+ return -1;
95
+ }
96
+ if (a.Name > b.Name) {
97
+ return 1;
98
+ }
99
+ return 0;
100
+ });
101
+ }
102
+ Navigate(item, router, dataID) {
103
+ if (!item) {
104
+ return;
105
+ }
106
+ if (item.Type === ItemType.Entity) {
107
+ router.navigate(['resource', this.routeNameSingular, dataID]);
108
+ }
109
+ else if (item.Type === ItemType.Folder) {
110
+ const folder = item.Data;
111
+ const oldPathData = this.PathData;
112
+ const newPathData = new PathData(folder.ID, folder.Name, `/${this.routeName}?folderID=${folder.ID}`);
113
+ oldPathData.ChildPathData = newPathData;
114
+ newPathData.ParentPathData = oldPathData;
115
+ this.PathData = newPathData;
116
+ //navigation seems like it does nothing but update the URL
117
+ //so just reload all of the data
118
+ router.navigate([this.routeName], { queryParams: { folderID: folder.ID } });
119
+ this.selectedFolderID = folder.ID;
120
+ this.LoadData(this.EntityItemFilter, this.CategoryItemFilter);
121
+ }
122
+ }
123
+ onEvent(event) {
124
+ if (event.EventType === EventTypes.AfterAddFolder || event.EventType === EventTypes.AfterAddItem) {
125
+ let addEvent = event;
126
+ this.items.push(addEvent.Item);
127
+ }
128
+ else if (event.EventType === EventTypes.AfterDeleteItem || event.EventType === EventTypes.AfterDeleteFolder) {
129
+ let deleteEvent = event;
130
+ this.items = this.items.filter((item) => item !== deleteEvent.Item);
131
+ }
132
+ }
133
+ }
@@ -1,18 +1,17 @@
1
1
  import { Router } from '@angular/router';
2
- import { DashboardEntity } from '@memberjunction/core-entities';
3
2
  import { SharedService } from '@memberjunction/ng-shared';
3
+ import { Item } from '../../generic/Item.types';
4
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
5
+ import { BaseEvent } from '../../generic/Events.types';
4
6
  import * as i0 from "@angular/core";
5
- export declare class DashboardBrowserComponent {
7
+ export declare class DashboardBrowserComponent extends BaseBrowserComponent {
6
8
  private router;
7
9
  private sharedService;
8
- dashboards: DashboardEntity[];
9
- showLoader: boolean;
10
10
  constructor(router: Router, sharedService: SharedService);
11
- ngOnInit(): void;
12
- LoadData(): Promise<void>;
13
- itemClick(item: DashboardEntity): void;
14
- addNew(): Promise<void>;
15
- deleteItem(item: DashboardEntity): Promise<void>;
11
+ ngOnInit(): Promise<void>;
12
+ itemClick(item: Item): void;
13
+ onBackButtonClick(): void;
14
+ onEvent(event: BaseEvent): void;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DashboardBrowserComponent, never>;
17
16
  static ɵcmp: i0.ɵɵComponentDeclaration<DashboardBrowserComponent, "app-dashboard-browser", never, {}, {}, never, never, false, never>;
18
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;;AAE1D,qBAKa,yBAAyB;IAIxB,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,aAAa;IAHlD,UAAU,EAAE,eAAe,EAAE,CAAM;IACnC,UAAU,EAAE,OAAO,CAAS;gBAEf,MAAM,EAAE,MAAM,EAAU,aAAa,EAAE,aAAa;IAExE,QAAQ,IAAI,IAAI;IAGV,QAAQ;IAkBP,SAAS,CAAC,IAAI,EAAE,eAAe;IAMzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCvB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;yCAjElD,yBAAyB;2CAAzB,yBAAyB;CAyFrC"}
1
+ {"version":3,"file":"dashboard-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAExF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;;AAEvD,qBAMa,yBAA0B,SAAQ,oBAAoB;IAErD,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,aAAa;gBAArC,MAAM,EAAE,MAAM,EAAU,aAAa,EAAE,aAAa;IAalE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,SAAS,CAAC,IAAI,EAAE,IAAI;IAWpB,iBAAiB,IAAI,IAAI;IAwBzB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;yCAtD3B,yBAAyB;2CAAzB,yBAAyB;CAyDrC"}