@memberjunction/ng-explorer-core 2.7.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/app-routing.module.d.ts +1 -0
  2. package/dist/app-routing.module.d.ts.map +1 -1
  3. package/dist/app-routing.module.js +43 -3
  4. package/dist/app-routing.module.js.map +1 -0
  5. package/dist/generic/Events.types.d.ts +19 -0
  6. package/dist/generic/Events.types.d.ts.map +1 -1
  7. package/dist/generic/Events.types.js +15 -0
  8. package/dist/generic/Events.types.js.map +1 -0
  9. package/dist/generic/Item.types.d.ts +12 -0
  10. package/dist/generic/Item.types.d.ts.map +1 -1
  11. package/dist/generic/Item.types.js +13 -0
  12. package/dist/generic/Item.types.js.map +1 -0
  13. package/dist/generic/PathData.types.js +1 -0
  14. package/dist/generic/PathData.types.js.map +1 -0
  15. package/dist/generic/app-nav-view.types.js +1 -0
  16. package/dist/generic/app-nav-view.types.js.map +1 -0
  17. package/dist/lib/app-view/application-view.component.d.ts +12 -2
  18. package/dist/lib/app-view/application-view.component.d.ts.map +1 -1
  19. package/dist/lib/app-view/application-view.component.js +129 -42
  20. package/dist/lib/app-view/application-view.component.js.map +1 -0
  21. package/dist/lib/auth-button/auth-button.component.js +1 -0
  22. package/dist/lib/auth-button/auth-button.component.js.map +1 -0
  23. package/dist/lib/base-browser-component/base-browser-component.d.ts +3 -1
  24. package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -1
  25. package/dist/lib/base-browser-component/base-browser-component.js +51 -13
  26. package/dist/lib/base-browser-component/base-browser-component.js.map +1 -0
  27. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +1 -0
  28. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -0
  29. package/dist/lib/data-browser-component/data-browser.component.js +1 -0
  30. package/dist/lib/data-browser-component/data-browser.component.js.map +1 -0
  31. package/dist/lib/expansion-panel-component/expansion-panel-component.js +1 -0
  32. package/dist/lib/expansion-panel-component/expansion-panel-component.js.map +1 -0
  33. package/dist/lib/favorites/favorites.component.js +1 -0
  34. package/dist/lib/favorites/favorites.component.js.map +1 -0
  35. package/dist/lib/files/files.component.js +1 -0
  36. package/dist/lib/files/files.component.js.map +1 -0
  37. package/dist/lib/generic/form-toolbar.js +1 -0
  38. package/dist/lib/generic/form-toolbar.js.map +1 -0
  39. package/dist/lib/generic/resource-container-component.js +1 -0
  40. package/dist/lib/generic/resource-container-component.js.map +1 -0
  41. package/dist/lib/generic-browse-list/generic-browse-list.component.js +1 -0
  42. package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -0
  43. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +12 -5
  44. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -1
  45. package/dist/lib/generic-browser-list/generic-browser-list.component.js +196 -121
  46. package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -0
  47. package/dist/lib/guards/auth-guard.service.js +1 -0
  48. package/dist/lib/guards/auth-guard.service.js.map +1 -0
  49. package/dist/lib/guards/entities.guard.js +1 -0
  50. package/dist/lib/guards/entities.guard.js.map +1 -0
  51. package/dist/lib/header/MSFT_UserImageService.js +1 -0
  52. package/dist/lib/header/MSFT_UserImageService.js.map +1 -0
  53. package/dist/lib/header/header.component.js +1 -0
  54. package/dist/lib/header/header.component.js.map +1 -0
  55. package/dist/lib/home-component/home.component.js +1 -0
  56. package/dist/lib/home-component/home.component.js.map +1 -0
  57. package/dist/lib/list-view/list-view.component.js +1 -0
  58. package/dist/lib/list-view/list-view.component.js.map +1 -0
  59. package/dist/lib/navigation/navigation.component.d.ts +1 -0
  60. package/dist/lib/navigation/navigation.component.d.ts.map +1 -1
  61. package/dist/lib/navigation/navigation.component.js +17 -0
  62. package/dist/lib/navigation/navigation.component.js.map +1 -0
  63. package/dist/lib/query-browser-component/query-browser.component.js +5 -4
  64. package/dist/lib/query-browser-component/query-browser.component.js.map +1 -0
  65. package/dist/lib/report-browser-component/report-browser.component.js +4 -3
  66. package/dist/lib/report-browser-component/report-browser.component.js.map +1 -0
  67. package/dist/lib/resource-browser/resource-browser.component.d.ts +170 -0
  68. package/dist/lib/resource-browser/resource-browser.component.d.ts.map +1 -0
  69. package/dist/lib/resource-browser/resource-browser.component.js +855 -0
  70. package/dist/lib/resource-browser/resource-browser.component.js.map +1 -0
  71. package/dist/lib/resource-wrappers/dashboard-resource.component.js +1 -0
  72. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -0
  73. package/dist/lib/resource-wrappers/query-resource.component.js +1 -0
  74. package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -0
  75. package/dist/lib/resource-wrappers/record-resource.component.js +1 -0
  76. package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -0
  77. package/dist/lib/resource-wrappers/report-resource.component.js +1 -0
  78. package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -0
  79. package/dist/lib/resource-wrappers/resource-wrappers-loader.js +1 -0
  80. package/dist/lib/resource-wrappers/resource-wrappers-loader.js.map +1 -0
  81. package/dist/lib/resource-wrappers/search-results-resource.component.js +1 -0
  82. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -0
  83. package/dist/lib/resource-wrappers/view-resource.component.js +1 -0
  84. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -0
  85. package/dist/lib/single-application/single-application.component.js +1 -0
  86. package/dist/lib/single-application/single-application.component.js.map +1 -0
  87. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +1 -0
  88. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -0
  89. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +1 -0
  90. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -0
  91. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +1 -0
  92. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -0
  93. package/dist/lib/single-dashboard/single-dashboard.component.js +1 -0
  94. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -0
  95. package/dist/lib/single-entity/single-entity.component.js +1 -0
  96. package/dist/lib/single-entity/single-entity.component.js.map +1 -0
  97. package/dist/lib/single-list-detail/single-list-detail.component.js +1 -0
  98. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -0
  99. package/dist/lib/single-query/single-query.component.js +1 -0
  100. package/dist/lib/single-query/single-query.component.js.map +1 -0
  101. package/dist/lib/single-record/single-record.component.js +1 -0
  102. package/dist/lib/single-record/single-record.component.js.map +1 -0
  103. package/dist/lib/single-report/single-report.component.js +1 -0
  104. package/dist/lib/single-report/single-report.component.js.map +1 -0
  105. package/dist/lib/single-search-result/single-search-result.component.js +1 -0
  106. package/dist/lib/single-search-result/single-search-result.component.js.map +1 -0
  107. package/dist/lib/single-view/single-view.component.d.ts +4 -2
  108. package/dist/lib/single-view/single-view.component.d.ts.map +1 -1
  109. package/dist/lib/single-view/single-view.component.js +55 -26
  110. package/dist/lib/single-view/single-view.component.js.map +1 -0
  111. package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
  112. package/dist/lib/user-notifications/user-notifications.component.js +12 -3
  113. package/dist/lib/user-notifications/user-notifications.component.js.map +1 -0
  114. package/dist/lib/user-profile/user-profile.component.js +1 -0
  115. package/dist/lib/user-profile/user-profile.component.js.map +1 -0
  116. package/dist/module.d.ts +37 -34
  117. package/dist/module.d.ts.map +1 -1
  118. package/dist/module.js +21 -7
  119. package/dist/module.js.map +1 -0
  120. package/dist/public-api.d.ts +1 -0
  121. package/dist/public-api.d.ts.map +1 -1
  122. package/dist/public-api.js +2 -0
  123. package/dist/public-api.js.map +1 -0
  124. package/package.json +22 -21
@@ -0,0 +1,855 @@
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 } from '@angular/core';
11
+ import { Item, ItemType } from '../../generic/Item.types';
12
+ import { Subject, debounceTime } from 'rxjs';
13
+ import { LogError, Metadata, RunView } from '@memberjunction/core';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@memberjunction/ng-shared";
16
+ import * as i2 from "@angular/common";
17
+ import * as i3 from "@progress/kendo-angular-grid";
18
+ import * as i4 from "@progress/kendo-angular-dialog";
19
+ import * as i5 from "@progress/kendo-angular-indicators";
20
+ import * as i6 from "@progress/kendo-angular-buttons";
21
+ import * as i7 from "@progress/kendo-angular-inputs";
22
+ import * as i8 from "@progress/kendo-angular-layout";
23
+ import * as i9 from "@memberjunction/ng-entity-form-dialog";
24
+ function ResourceBrowserComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
25
+ const _r2 = i0.ɵɵgetCurrentView();
26
+ i0.ɵɵelementStart(0, "span", 21);
27
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_4_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.goToParent()); });
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelement(1, "span", 22);
30
+ } }
31
+ function ResourceBrowserComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelement(0, "span", 23);
33
+ } }
34
+ function ResourceBrowserComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelement(0, "kendo-loader", 17);
36
+ } }
37
+ function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
38
+ const _r6 = i0.ɵɵgetCurrentView();
39
+ i0.ɵɵelementStart(0, "button", 36);
40
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const dataItem_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.editItem(dataItem_r7)); });
41
+ i0.ɵɵelement(1, "span", 37);
42
+ i0.ɵɵelementEnd();
43
+ } }
44
+ function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45
+ const _r8 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "button", 36);
47
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const dataItem_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.deleteItem(dataItem_r7)); });
48
+ i0.ɵɵelement(1, "span", 38);
49
+ i0.ɵɵelementEnd();
50
+ } }
51
+ function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52
+ const _r9 = i0.ɵɵgetCurrentView();
53
+ i0.ɵɵelementStart(0, "button", 39);
54
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const dataItem_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.unlinkItem(dataItem_r7)); });
55
+ i0.ɵɵelement(1, "span", 40);
56
+ i0.ɵɵelementEnd();
57
+ } }
58
+ function ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "div", 33);
60
+ i0.ɵɵtemplate(1, ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_1_Template, 2, 0, "button", 34)(2, ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_2_Template, 2, 0, "button", 34)(3, ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Conditional_3_Template, 2, 0, "button", 35);
61
+ i0.ɵɵelementEnd();
62
+ } if (rf & 2) {
63
+ const ctx_r2 = i0.ɵɵnextContext(3);
64
+ i0.ɵɵadvance();
65
+ i0.ɵɵconditional(ctx_r2.EnableItemEdit ? 1 : -1);
66
+ i0.ɵɵadvance();
67
+ i0.ɵɵconditional(ctx_r2.EnableItemDelete ? 2 : -1);
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵconditional(ctx_r2.EnableRemoveLink ? 3 : -1);
70
+ } }
71
+ function ResourceBrowserComponent_Conditional_22_Conditional_0_Template(rf, ctx) { if (rf & 1) {
72
+ const _r5 = i0.ɵɵgetCurrentView();
73
+ i0.ɵɵelementStart(0, "kendo-grid", 26);
74
+ i0.ɵɵlistener("cellClick", function ResourceBrowserComponent_Conditional_22_Conditional_0_Template_kendo_grid_cellClick_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCellItemClicked($event)); });
75
+ i0.ɵɵelement(1, "kendo-grid-column", 27)(2, "kendo-grid-column", 28)(3, "kendo-grid-column", 29)(4, "kendo-grid-column", 30);
76
+ i0.ɵɵelementStart(5, "kendo-grid-column", 31);
77
+ i0.ɵɵtemplate(6, ResourceBrowserComponent_Conditional_22_Conditional_0_ng_template_6_Template, 4, 3, "ng-template", 32);
78
+ i0.ɵɵelementEnd()();
79
+ } if (rf & 2) {
80
+ const ctx_r2 = i0.ɵɵnextContext(2);
81
+ i0.ɵɵproperty("kendoGridBinding", ctx_r2.Items);
82
+ } }
83
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
84
+ const _r11 = i0.ɵɵgetCurrentView();
85
+ i0.ɵɵelementStart(0, "button", 51);
86
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.editItem(item_r12)); });
87
+ i0.ɵɵelement(1, "span", 37);
88
+ i0.ɵɵelementEnd();
89
+ } }
90
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
91
+ const _r13 = i0.ɵɵgetCurrentView();
92
+ i0.ɵɵelementStart(0, "button", 52);
93
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.deleteItem(item_r12)); });
94
+ i0.ɵɵelement(1, "span", 38);
95
+ i0.ɵɵelementEnd();
96
+ } }
97
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
98
+ const _r14 = i0.ɵɵgetCurrentView();
99
+ i0.ɵɵelementStart(0, "button", 39);
100
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.unlinkItem(item_r12)); });
101
+ i0.ɵɵelement(1, "span", 40);
102
+ i0.ɵɵelementEnd();
103
+ } }
104
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelement(0, "i", 46);
106
+ } if (rf & 2) {
107
+ const item_r12 = i0.ɵɵnextContext().$implicit;
108
+ const ctx_r2 = i0.ɵɵnextContext(3);
109
+ i0.ɵɵproperty("title", item_r12.Name + "(Shared)")("ngClass", ctx_r2.getIconForResourceType(item_r12));
110
+ } }
111
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
112
+ i0.ɵɵelement(0, "span", 47);
113
+ } if (rf & 2) {
114
+ const item_r12 = i0.ɵɵnextContext().$implicit;
115
+ const ctx_r2 = i0.ɵɵnextContext(3);
116
+ i0.ɵɵproperty("title", item_r12.Name)("ngClass", ctx_r2.getIconForResourceType(item_r12));
117
+ } }
118
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
119
+ const _r10 = i0.ɵɵgetCurrentView();
120
+ i0.ɵɵelementStart(0, "kendo-card", 41)(1, "div", 42);
121
+ i0.ɵɵtemplate(2, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_2_Template, 2, 0, "button", 43)(3, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_3_Template, 2, 0, "button", 44)(4, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_4_Template, 2, 0, "button", 35);
122
+ i0.ɵɵelementEnd();
123
+ i0.ɵɵelementStart(5, "kendo-card-body", 45);
124
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Template_kendo_card_body_click_5_listener() { const item_r12 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.itemClick(item_r12)); });
125
+ i0.ɵɵtemplate(6, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_6_Template, 1, 2, "i", 46)(7, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Conditional_7_Template, 1, 2, "span", 47);
126
+ i0.ɵɵelementStart(8, "div", 48)(9, "h5", 49);
127
+ i0.ɵɵtext(10);
128
+ i0.ɵɵelementEnd();
129
+ i0.ɵɵelementStart(11, "p", 50);
130
+ i0.ɵɵtext(12);
131
+ i0.ɵɵelementEnd()()()();
132
+ } if (rf & 2) {
133
+ const item_r12 = ctx.$implicit;
134
+ const ctx_r2 = i0.ɵɵnextContext(3);
135
+ i0.ɵɵadvance(2);
136
+ i0.ɵɵconditional(ctx_r2.EnableItemEdit && (!item_r12.IsLink || item_r12.LinkPermissionLevel === "Owner" || item_r12.LinkPermissionLevel === "Edit") ? 2 : -1);
137
+ i0.ɵɵadvance();
138
+ i0.ɵɵconditional(ctx_r2.EnableItemDelete && (!item_r12.IsLink || item_r12.LinkPermissionLevel === "Owner") ? 3 : ctx_r2.EnableRemoveLink && item_r12.IsLink ? 4 : -1);
139
+ i0.ɵɵadvance(3);
140
+ i0.ɵɵconditional(item_r12.IsLink ? 6 : 7);
141
+ i0.ɵɵadvance(4);
142
+ i0.ɵɵtextInterpolate(item_r12.Name);
143
+ i0.ɵɵadvance(2);
144
+ i0.ɵɵtextInterpolate(item_r12.Description);
145
+ } }
146
+ function ResourceBrowserComponent_Conditional_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "div", 25);
148
+ i0.ɵɵrepeaterCreate(1, ResourceBrowserComponent_Conditional_22_Conditional_1_For_2_Template, 13, 5, "kendo-card", 41, i0.ɵɵrepeaterTrackByIdentity);
149
+ i0.ɵɵelementEnd();
150
+ } if (rf & 2) {
151
+ const ctx_r2 = i0.ɵɵnextContext(2);
152
+ i0.ɵɵadvance();
153
+ i0.ɵɵrepeater(ctx_r2.Items);
154
+ } }
155
+ function ResourceBrowserComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵtemplate(0, ResourceBrowserComponent_Conditional_22_Conditional_0_Template, 7, 1, "kendo-grid", 24)(1, ResourceBrowserComponent_Conditional_22_Conditional_1_Template, 3, 0, "div", 25);
157
+ } if (rf & 2) {
158
+ const ctx_r2 = i0.ɵɵnextContext();
159
+ i0.ɵɵconditional(ctx_r2.DisplayMode === "List" ? 0 : 1);
160
+ } }
161
+ function ResourceBrowserComponent_kendo_dialog_23_Template(rf, ctx) { if (rf & 1) {
162
+ const _r15 = i0.ɵɵgetCurrentView();
163
+ i0.ɵɵelementStart(0, "kendo-dialog", 53);
164
+ i0.ɵɵlistener("close", function ResourceBrowserComponent_kendo_dialog_23_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConfirmDeleteItem(false)); });
165
+ i0.ɵɵelementStart(1, "p", 54);
166
+ i0.ɵɵtext(2);
167
+ i0.ɵɵelementStart(3, "b");
168
+ i0.ɵɵtext(4);
169
+ i0.ɵɵelementEnd()();
170
+ i0.ɵɵelementStart(5, "kendo-dialog-actions", 55)(6, "button", 56);
171
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_kendo_dialog_23_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConfirmDeleteItem(true)); });
172
+ i0.ɵɵtext(7, " Yes ");
173
+ i0.ɵɵelementEnd();
174
+ i0.ɵɵelementStart(8, "button", 57);
175
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_kendo_dialog_23_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConfirmDeleteItem(false)); });
176
+ i0.ɵɵtext(9, " No ");
177
+ i0.ɵɵelementEnd()()();
178
+ } if (rf & 2) {
179
+ const ctx_r2 = i0.ɵɵnextContext();
180
+ i0.ɵɵproperty("minWidth", 450)("width", 650);
181
+ i0.ɵɵadvance(2);
182
+ i0.ɵɵtextInterpolate1(" Are you sure you want to ", (ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.IsLink) && (ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.LinkPermissionLevel) === "Owner" || !(ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.IsLink) ? "delete" : "unlink", " ");
183
+ i0.ɵɵadvance(2);
184
+ i0.ɵɵtextInterpolate1("", ctx_r2.selectedItem == null ? null : ctx_r2.selectedItem.Name, "?");
185
+ } }
186
+ function ResourceBrowserComponent_kendo_dialog_24_Template(rf, ctx) { if (rf & 1) {
187
+ const _r16 = i0.ɵɵgetCurrentView();
188
+ i0.ɵɵelementStart(0, "kendo-dialog", 58);
189
+ i0.ɵɵlistener("close", function ResourceBrowserComponent_kendo_dialog_24_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCreateFolderView()); });
190
+ i0.ɵɵelementStart(1, "div", 8)(2, "kendo-textbox", 59);
191
+ i0.ɵɵlistener("valueChange", function ResourceBrowserComponent_kendo_dialog_24_Template_kendo_textbox_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCreateFolderKeyup($event)); });
192
+ i0.ɵɵelementEnd()();
193
+ i0.ɵɵelementStart(3, "kendo-dialog-actions", 55)(4, "button", 56);
194
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_kendo_dialog_24_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.createFolder()); });
195
+ i0.ɵɵtext(5, " Create ");
196
+ i0.ɵɵelementEnd();
197
+ i0.ɵɵelementStart(6, "button", 57);
198
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_kendo_dialog_24_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCreateFolderView()); });
199
+ i0.ɵɵtext(7, " Cancel ");
200
+ i0.ɵɵelementEnd()()();
201
+ } if (rf & 2) {
202
+ i0.ɵɵproperty("minWidth", 250)("width", 450);
203
+ } }
204
+ export class NewItemOption {
205
+ }
206
+ export class ResourceBrowserComponent {
207
+ /**
208
+ * The name of the type of resource to display, cannot be changed after it is initially set
209
+ */
210
+ get ResourceTypeName() {
211
+ return this._ResourceTypeName;
212
+ }
213
+ set ResourceTypeName(value) {
214
+ if (this._ResourceTypeName === null) {
215
+ this._ResourceTypeName = value;
216
+ }
217
+ else {
218
+ // we do not ever want to allow an instance of this component to be "reused" where the Resource Type is changed so throw an exception here
219
+ throw new Error('Resource Type cannot be changed after it has been set');
220
+ }
221
+ }
222
+ /**
223
+ * This property will be true whenever the component is in the process of loading data
224
+ */
225
+ get IsLoading() {
226
+ return this._isLoading;
227
+ }
228
+ /**
229
+ * This is the field name in the Resource Type's Entity that is used to store the CategoryID (e.g. the Folder ID) for the resource.
230
+ * Not all entities in resource types support a CategoryID concept, so this can be null. This property is read only and
231
+ * is auto-populated during the configuration of the component.
232
+ */
233
+ get CategoryIDFieldName() {
234
+ return this._CategoryIDFieldName;
235
+ }
236
+ /**
237
+ * This is the field name in the Resource type's Category Entity, if a Category Entity was provided, that has the recursive/self-referencing foreign key to the parent category.
238
+ * This field is read only and is auto-populated during the configuration of the component.
239
+ */
240
+ get CategoryParentIDFieldName() {
241
+ return this._CategoryParentIDFieldName;
242
+ }
243
+ /**
244
+ * This is the field name in the Resource Type's Entity that is used to store the UserID of the user that OWNS the resource. Commonly, but not always a field called UserID, but can be
245
+ * any field in the Resource Type's entity that is a foreign key to the Users entity. This property is read only and is auto-populated during the configuration of the component.
246
+ */
247
+ get UserIDFieldName() {
248
+ return this._UserIDFieldName;
249
+ }
250
+ /**
251
+ * The current list of items being displayed in the browser, DO NOT MODIFY THIS! This is read only and is auto-populated by the component.
252
+ */
253
+ get Items() {
254
+ return this._items;
255
+ }
256
+ constructor(sharedService) {
257
+ this.sharedService = sharedService;
258
+ /*******************************************************************************************
259
+ * PROPERTIES
260
+ *******************************************************************************************/
261
+ this._ResourceTypeName = null;
262
+ /**
263
+ * Whether or not to enable categories, if set to false, categories will be ignored and not displayed
264
+ */
265
+ this.EnableCategories = true;
266
+ /**
267
+ * This property determines if the UI will include a button on items in the display to edit. The button will only be shown if the user has edit permissions, but this is a global setting to turn on/off the button even if the user has permissions. Default is true.
268
+ */
269
+ this.EnableItemEdit = true;
270
+ /**
271
+ * This property determines if the UI will include a button on items in the display to delete. The button will only be shown if the user has delete permissions, but this is a global setting to turn on/off the button even if the user has permissions. Default is true.
272
+ */
273
+ this.EnableItemDelete = true;
274
+ /**
275
+ * This proprerty determines if the UI will include a button on items in the display to unlink/remove a link to a shared resource (owned by another user).
276
+ * The button will only be shown if the user has permissions, but this is a global setting to turn on/off the button even if the user has permissions. Default is true.
277
+ */
278
+ this.EnableRemoveLink = true;
279
+ /**
280
+ * Array of NewItemOption objects that will be displayed in the Create New dropdown. Defaults to having a single entry for creating a new folder, you can remove this or add to it.
281
+ */
282
+ this.NewItemOptions = [{
283
+ Text: 'New Folder',
284
+ Description: 'Create a new folder',
285
+ Icon: 'folder',
286
+ Action: () => {
287
+ console.log('New Folder');
288
+ }
289
+ }];
290
+ /**
291
+ * The visual display mode for this component, tile will show the contents in tiles that are spaced and wrapped based on the viewport, list will show the details of the items in a list, and tree will show the items in a tree view - tree view NOT implemented yet
292
+ */
293
+ this.DisplayMode = 'Tile';
294
+ /**
295
+ * Fires whenever a resource/item is selected within the component
296
+ */
297
+ this.ResourceSelected = new EventEmitter();
298
+ /*******************************************************************************************
299
+ * EVENTS
300
+ *******************************************************************************************/
301
+ /**
302
+ * Fires whenever the category (e.g. the folder) the user is currently viewing changes. This can happen when a user creates a new folder and navigates to it, navigates to an existing folder, goes "up" in the folder hierarchy, etc.
303
+ */
304
+ this.CategoryChanged = new EventEmitter();
305
+ /**
306
+ * Fires whenever the user changes the display mode of the component
307
+ */
308
+ this.DisplayModeChanged = new EventEmitter();
309
+ this._isLoading = false;
310
+ this._CategoryParentIDFieldName = undefined;
311
+ this._UserIDFieldName = undefined;
312
+ this._items = [];
313
+ // JS code here and below from old component....
314
+ this._filterDebounceTime = 250;
315
+ this.filterItemsSubject = new Subject();
316
+ this.filter = '';
317
+ this.sourceItems = null;
318
+ this.selectedItem = null;
319
+ this.deleteDialogOpened = false;
320
+ this.copyFromDialogOpened = false;
321
+ this.createFolderDialogOpened = false;
322
+ this.newFolderText = "Sample Folder";
323
+ this._allResourceTypes = [];
324
+ this.createNewRecordName = "Record";
325
+ this.entityObjectName = "";
326
+ /**
327
+ * Options for the create button dropdown
328
+ */
329
+ this.dropdownOptions = [
330
+ { text: "Folder" }
331
+ ];
332
+ this._currentDeleteOrUnlinkState = false;
333
+ this.filterItemsSubject
334
+ .pipe(debounceTime(this._filterDebounceTime))
335
+ .subscribe(() => this.filterItems(this.filter));
336
+ }
337
+ ngOnInit() {
338
+ return __awaiter(this, void 0, void 0, function* () {
339
+ var _a, _b, _c;
340
+ this._allResourceTypes = this.sharedService.ResourceTypes;
341
+ const rt = this._allResourceTypes.find(rt => rt.Entity === this.ResourceTypeName);
342
+ if (!rt)
343
+ throw new Error(`Resource Type ${this.ResourceTypeName} not found`);
344
+ else if (!rt.EntityID)
345
+ throw new Error(`Resource Type ${this.ResourceTypeName} does not have an EntityID specified. EntityID is required for any Resource Type to be used with this component.`);
346
+ else
347
+ this.ResourceType = rt;
348
+ // now get the entity info for the resource type and for its category entity, if one is specified.
349
+ const md = new Metadata();
350
+ const resourceTypeEntity = md.EntityByID(this.ResourceType.EntityID);
351
+ const categoryEntity = this.ResourceType.CategoryEntityID ? md.EntityByID(this.ResourceType.CategoryEntityID) : null;
352
+ // figure out the column inside the entity that points to the categoryEntity, if we have a category entity
353
+ if (categoryEntity) {
354
+ this._CategoryIDFieldName = (_a = resourceTypeEntity.Fields.find(f => f.RelatedEntityID === categoryEntity.ID)) === null || _a === void 0 ? void 0 : _a.Name;
355
+ const usersEntity = md.EntityByName("Users");
356
+ this._UserIDFieldName = (_b = resourceTypeEntity.Fields.find(f => f.RelatedEntityID === usersEntity.ID)) === null || _b === void 0 ? void 0 : _b.Name;
357
+ this._CategoryParentIDFieldName = (_c = categoryEntity.Fields.find(f => f.RelatedEntityID === categoryEntity.ID)) === null || _c === void 0 ? void 0 : _c.Name;
358
+ }
359
+ yield this.Refresh();
360
+ });
361
+ }
362
+ /**
363
+ * Refresh the component from the database based on other current state variables.
364
+ */
365
+ Refresh() {
366
+ return __awaiter(this, void 0, void 0, function* () {
367
+ try {
368
+ const md = new Metadata();
369
+ if (!this.ResourceType || !this.ResourceType.Entity)
370
+ throw new Error('Resource Type not set, or Resource Type does not have an Entity specified');
371
+ const rv = new RunView();
372
+ // create a combined filter for the SQL query that combines the user's provided ItemFilter, if provided, with a user filter that only includes items that are OWNED by the current user
373
+ // and finally filter on the current category, if one is set and we have a category entity
374
+ const combinedFilter = `${this.ItemFilter ? '(' + this.ItemFilter + ') AND' : ''}
375
+ ([${this.UserIDFieldName}] = '${md.CurrentUser.ID}')
376
+ ${this.CurrentCategoryID && this.CategoryIDFieldName ? `AND ([${this.CategoryIDFieldName}] = '${this.CurrentCategoryID}')` : ''}`;
377
+ const itemResult = yield rv.RunView({
378
+ EntityName: this.ResourceType.Entity,
379
+ ExtraFilter: combinedFilter,
380
+ OrderBy: this.OrderBy
381
+ });
382
+ if (!itemResult || !itemResult.Success)
383
+ throw new Error(`Failed to load items for ${this.ResourceType.Entity}`);
384
+ this._items = itemResult.Results.map(r => new Item(r, ItemType.Resource));
385
+ }
386
+ catch (error) {
387
+ LogError(error);
388
+ console.error(error);
389
+ }
390
+ });
391
+ }
392
+ //wrapper function for the grid view
393
+ onCellItemClicked(event) {
394
+ this.itemClick(event.dataItem);
395
+ }
396
+ itemClick(item) {
397
+ if (!item) {
398
+ return;
399
+ }
400
+ this.ResourceSelected.emit(item);
401
+ }
402
+ backButtonClicked() {
403
+ // this.backButtonClickEvent.emit();
404
+ }
405
+ addResourceButtonClicked() {
406
+ return __awaiter(this, void 0, void 0, function* () {
407
+ // let event: BeforeAddItemEvent = new BeforeAddItemEvent("");
408
+ // this.BeforeAddItemEvent.emit(event);
409
+ // if(event.Cancel){
410
+ // return;
411
+ // }
412
+ // const resourceName: string = `Sample ${this.ItemEntityName}`;
413
+ // const md: Metadata = new Metadata();
414
+ // const entity: BaseEntity = await md.GetEntityObject<BaseEntity>(this.ItemEntityName);
415
+ // entity.NewRecord();
416
+ // //some entities, like resources, have common fields
417
+ // //we can try to set here
418
+ // entity.Set("Name", resourceName);
419
+ // entity.Set("UserID", md.CurrentUser.ID);
420
+ // let saveResult: boolean = await entity.Save();
421
+ // if(saveResult){
422
+ // this.showNotification(`successfully created ${resourceName}`, "info");
423
+ // let item: Item = new Item(entity, ItemType.Entity);
424
+ // item.Name = resourceName;
425
+ // this.AfterAddItemEvent.emit(new AfterAddItemEvent(item));
426
+ // }
427
+ // else{
428
+ // this.showNotification(`Unable to create ${resourceName}`, "error");
429
+ // }
430
+ });
431
+ }
432
+ createFolder() {
433
+ return __awaiter(this, void 0, void 0, function* () {
434
+ // this.toggleCreateFolderView(false);
435
+ // let event: BeforeAddFolderEvent = new BeforeAddFolderEvent(this.newFolderText);
436
+ // if(event.Cancel){
437
+ // return;
438
+ // }
439
+ // let folderName: string = this.newFolderText;
440
+ // let description: string = "";
441
+ // const md: Metadata = new Metadata();
442
+ // const folderEntity: BaseEntity = await md.GetEntityObject<BaseEntity>(this.CategoryEntityName);
443
+ // folderEntity.NewRecord();
444
+ // folderEntity.Set("Name", folderName);
445
+ // folderEntity.Set("ParentID", this.selectedFolderID);
446
+ // folderEntity.Set("Description", description);
447
+ // folderEntity.Set("UserID", md.CurrentUser.ID);
448
+ // if(this.categoryEntityID){
449
+ // folderEntity.Set("EntityID", this.categoryEntityID);
450
+ // }
451
+ // let saveResult: boolean = await folderEntity.Save();
452
+ // if(saveResult){
453
+ // this.showNotification(`successfully created folder ${folderName}`, "info");
454
+ // let folder: Folder = new Folder(folderEntity.Get("ID"), folderEntity.Get("Name"));
455
+ // folder.Description = folderEntity.Get("Description");
456
+ // let item: Item = new Item(folder, ItemType.Folder);
457
+ // let event: AfterAddFolderEvent = new AfterAddFolderEvent(item);
458
+ // this.AfterAddFolderEvent.emit(event);
459
+ // if(event.Cancel){
460
+ // return;
461
+ // }
462
+ // //navigate to the newly created folder
463
+ // //by raising an item click event
464
+ // this.itemClick(item);
465
+ // }
466
+ // else{
467
+ // this.sharedService.CreateSimpleNotification(`Unable to create folder ${folderName}`, "error", 3500);
468
+ // }
469
+ // this.newFolderText = "Sample Folder";
470
+ });
471
+ }
472
+ unlinkItem(item) {
473
+ return __awaiter(this, void 0, void 0, function* () {
474
+ yield this.deleteOrUnlink(item, false);
475
+ });
476
+ }
477
+ deleteOrUnlink(item, bDelete) {
478
+ return __awaiter(this, void 0, void 0, function* () {
479
+ // this._currentDeleteOrUnlinkState = bDelete;
480
+ // if(!item){
481
+ // return;
482
+ // }
483
+ // this.selectedItem = item;
484
+ // if(item.Type === ItemType.Folder && bDelete){
485
+ // let event: BeforeDeleteFolderEvent = new BeforeDeleteFolderEvent(item);
486
+ // this.BeforeDeleteFolderEvent.emit(event);
487
+ // if(event.Cancel){
488
+ // return;
489
+ // }
490
+ // this.deleteDialogOpened = true;
491
+ // }
492
+ // else if(item.Type === ItemType.Entity && bDelete){
493
+ // let event: BeforeDeleteItemEvent = new BeforeDeleteItemEvent(item);
494
+ // this.BeforeDeleteItemEvent.emit(event);
495
+ // if(event.Cancel){
496
+ // return;
497
+ // }
498
+ // this.deleteDialogOpened = true;
499
+ // }
500
+ // else if (item.Type === ItemType.Entity && !bDelete) {
501
+ // let event: BeforeUnlinkItemEvent = new BeforeUnlinkItemEvent(item);
502
+ // this.BeforeUnlinkItemEvent.emit(event);
503
+ // if(event.Cancel){
504
+ // return;
505
+ // }
506
+ // this.deleteDialogOpened = true;
507
+ // }
508
+ });
509
+ }
510
+ goToParent() {
511
+ //this.NavigateToParentEvent.emit();
512
+ }
513
+ deleteItem(item) {
514
+ return __awaiter(this, void 0, void 0, function* () {
515
+ yield this.deleteOrUnlink(item, true);
516
+ });
517
+ }
518
+ onConfirmDeleteItem(shouldDelete) {
519
+ return __awaiter(this, void 0, void 0, function* () {
520
+ // this.deleteDialogOpened = false;
521
+ // if(!this.selectedItem || !shouldDelete){
522
+ // return;
523
+ // }
524
+ // let item: Item = this.selectedItem;
525
+ // if(item.Type === ItemType.Folder && this._currentDeleteOrUnlinkState){
526
+ // let deleteResult = await this.deleteFolder(item);
527
+ // if(deleteResult){
528
+ // let deleteFolderEvent: AfterDeleteFolderEvent = new AfterDeleteFolderEvent(item);
529
+ // this.AfterDeleteFolderEvent.emit(deleteFolderEvent);
530
+ // }
531
+ // }
532
+ // else if(item.Type === ItemType.Entity && this._currentDeleteOrUnlinkState){
533
+ // await this.deleteResource(item);
534
+ // let deleteItemEvent: AfterDeleteItemEvent = new AfterDeleteItemEvent(item);
535
+ // this.AfterDeleteItemEvent.emit(deleteItemEvent);
536
+ // }
537
+ // else if(item.Type === ItemType.Entity && !this._currentDeleteOrUnlinkState){
538
+ // await this.unlinkResource(item);
539
+ // let unlinkItemEvent: AfterUnlinkItemEvent = new AfterUnlinkItemEvent(item);
540
+ // this.AfterUnlinkItemEvent.emit(unlinkItemEvent);
541
+ // }
542
+ // this.selectedItem = null;
543
+ });
544
+ }
545
+ deleteFolder(item) {
546
+ return __awaiter(this, void 0, void 0, function* () {
547
+ return true;
548
+ // const folder: Folder = <Folder>item.Data;
549
+ // //the DB will throw an error if we attempt to delete a folder that has children
550
+ // //i.e. sub folders or resources
551
+ // //so the default behavior is to notify the user that the delete operation cannot
552
+ // //go through
553
+ // const folderHasChildren: boolean = await this.doesFolderHaveChildren(folder.ID);
554
+ // if(folderHasChildren){
555
+ // this.showNotification(`unable to delete folder ${folder.Name} because it has children`, "error");
556
+ // return false;
557
+ // }
558
+ // this.showLoader = true;
559
+ // const md = new Metadata();
560
+ // let folderEntity: BaseEntity = await md.GetEntityObject<BaseEntity>(this.CategoryEntityName);
561
+ // let pkv: KeyValuePair = new KeyValuePair();
562
+ // pkv.FieldName = "ID";
563
+ // pkv.Value = folder.ID;
564
+ // let compositeKey: CompositeKey = new CompositeKey([pkv]);
565
+ // //create view browser component - this will be used to display views
566
+ // //then create a new component for applications that wraps around the view browser component
567
+ // let loadResult = await folderEntity.InnerLoad(compositeKey);
568
+ // if(!loadResult){
569
+ // this.sharedService.CreateSimpleNotification(`Unable to fetch folder ${folder.Name}`, "error", 3500);
570
+ // this.showLoader = false;
571
+ // return false;
572
+ // }
573
+ // let deleteResult = await folderEntity.Delete();
574
+ // if(!deleteResult){
575
+ // this.sharedService.CreateSimpleNotification(`Unable to delete folder ${folder.Name}`, "error", 3500);
576
+ // this.showLoader = false;
577
+ // return false;
578
+ // }
579
+ // else{
580
+ // this.sharedService.CreateSimpleNotification(`Successfully deleted folder ${folder.Name}`, "info", 2000);
581
+ // this.showLoader = false;
582
+ // }
583
+ // return true;
584
+ });
585
+ }
586
+ deleteResource(item) {
587
+ return __awaiter(this, void 0, void 0, function* () {
588
+ return true;
589
+ // let genericEntity: BaseEntity = <BaseEntity>item.Data;
590
+ // if(!genericEntity){
591
+ // return false;
592
+ // }
593
+ // //the only assumption we are making here is that the entityID
594
+ // //is a number
595
+ // const entityID = this.TryGetID(genericEntity);
596
+ // if (entityID && entityID.length > 0) {
597
+ // const md = new Metadata();
598
+ // let entityObject = await md.GetEntityObject(this.ItemEntityName);
599
+ // let pkv: KeyValuePair = new KeyValuePair();
600
+ // pkv.FieldName = "ID";
601
+ // pkv.Value = entityID;
602
+ // let compositeKey: CompositeKey = new CompositeKey([pkv]);
603
+ // let loadResult = await entityObject.InnerLoad(compositeKey);
604
+ // if(loadResult){
605
+ // let deleteResult = await entityObject.Delete();
606
+ // if(deleteResult){
607
+ // this.showNotification(`successfully deleted`, "info");
608
+ // return true;
609
+ // }
610
+ // else{
611
+ // this.showNotification(`Unable to delete`, "error");
612
+ // }
613
+ // }
614
+ // else{
615
+ // this.showNotification(`unable to fetch`, "error");
616
+ // }
617
+ // }
618
+ // return false;
619
+ });
620
+ }
621
+ unlinkResource(item) {
622
+ return __awaiter(this, void 0, void 0, function* () {
623
+ return true;
624
+ // // remove the link by removing the Resource Link record
625
+ // if (item.ResourceLinkID) {
626
+ // const md = new Metadata();
627
+ // const link = await md.GetEntityObject<ResourceLinkEntity>("Resource Links");
628
+ // if (await link.Load(item.ResourceLinkID))
629
+ // return await link.Delete();
630
+ // else
631
+ // return false;
632
+ // }
633
+ // else
634
+ // return false;
635
+ });
636
+ }
637
+ doesFolderHaveChildren(folderID) {
638
+ return __awaiter(this, void 0, void 0, function* () {
639
+ return true;
640
+ // const md: Metadata = new Metadata();
641
+ // const rv: RunView = new RunView();
642
+ // const folderResult = await rv.RunView({
643
+ // EntityName:this.CategoryEntity,
644
+ // ExtraFilter: `ParentID ='${folderID}'`
645
+ // });
646
+ // return folderResult && folderResult.Success && folderResult.Results.length > 0;
647
+ });
648
+ }
649
+ showNotification(message, type) {
650
+ // if(this.showNotifications){
651
+ // this.sharedService.CreateSimpleNotification(message, type, 1000);
652
+ // }
653
+ }
654
+ TryGetID(data) {
655
+ if (data && data.ID) {
656
+ return data.ID;
657
+ }
658
+ else if (typeof data.Get === "function") {
659
+ return data.Get("ID");
660
+ }
661
+ }
662
+ changeViewMode(mode) {
663
+ // this.displayAsGrid = mode === 'grid';
664
+ // this.viewModeChangeEvent.emit(mode);
665
+ }
666
+ onKeyup(Value) {
667
+ this.filter = Value;
668
+ this.filterItemsSubject.next(true);
669
+ }
670
+ onCreateFolderKeyup(value) {
671
+ this.newFolderText = value;
672
+ }
673
+ filterItems(filter) {
674
+ if (!this.sourceItems) {
675
+ this.sourceItems = [...this._items];
676
+ }
677
+ if (!filter) {
678
+ this._items = [...this.sourceItems];
679
+ return;
680
+ }
681
+ this._items = this.sourceItems.filter(item => {
682
+ return item.Name.toLowerCase().includes(filter.toLowerCase());
683
+ });
684
+ }
685
+ SetFavoriteStatus(item) {
686
+ return __awaiter(this, void 0, void 0, function* () {
687
+ // if(!item){
688
+ // return;
689
+ // }
690
+ // item.Favorite = !item.Favorite;
691
+ // const md: Metadata = new Metadata();
692
+ // let entityName: string = item.Type === ItemType.Folder ? this.CategoryEntityName : this.ItemEntityName;
693
+ // let compositeKey: CompositeKey = new CompositeKey([{FieldName: "ID", Value: item.Data.ID}]);
694
+ // await md.SetRecordFavoriteStatus(md.CurrentUser.ID, entityName, compositeKey, item.Favorite);
695
+ });
696
+ }
697
+ editItem(item) {
698
+ // if(!item){
699
+ // return;
700
+ // }
701
+ // if(item.Type === ItemType.Folder){
702
+ // let event: BeforeUpdateFolderEvent = new BeforeUpdateFolderEvent(item);
703
+ // this.BeforeUpdateFolderEvent.emit(event);
704
+ // if(event.Cancel){
705
+ // return;
706
+ // }
707
+ // }
708
+ // else{
709
+ // let event: BeforeUpdateItemEvent = new BeforeUpdateItemEvent(item);
710
+ // this.BeforeUpdateItemEvent.emit(event);
711
+ // if(event.Cancel){
712
+ // return;
713
+ // }
714
+ // }
715
+ }
716
+ onDropdownItemClick(data) {
717
+ return __awaiter(this, void 0, void 0, function* () {
718
+ // if(!data || !data.text){
719
+ // return;
720
+ // }
721
+ // if(data.text === "Folder"){
722
+ // this.toggleCreateFolderView();
723
+ // }
724
+ // else if(data.text === this.resourceName){
725
+ // this.addResourceButtonClicked();
726
+ // }
727
+ // else if(data.text === this.createNewRecordName){
728
+ // if(this.entityFormDialogRef){
729
+ // // create a new record for the given entity
730
+ // const md = new Metadata();
731
+ // const newRecord = await md.GetEntityObject(this.entityObjectName);
732
+ // this.entityFormDialogRef.Record = newRecord;
733
+ // this.entityFormDialogRef.ShowForm();
734
+ // }
735
+ // }
736
+ // else{
737
+ // let event: DropdownOptionClickEvent = new DropdownOptionClickEvent(data.text);
738
+ // this.dropdownOptionClickEvent.emit(event);
739
+ // }
740
+ });
741
+ }
742
+ toggleCopyFromView() {
743
+ this.copyFromDialogOpened = !this.copyFromDialogOpened;
744
+ }
745
+ getCopyFromTitle() {
746
+ return `Select ${this.ResourceTypeName} to Copy`;
747
+ }
748
+ toggleCreateFolderView(visible) {
749
+ if (visible !== undefined) {
750
+ this.createFolderDialogOpened = visible;
751
+ }
752
+ else {
753
+ this.createFolderDialogOpened = !this.createFolderDialogOpened;
754
+ }
755
+ }
756
+ getIconForResourceType(item) {
757
+ return "";
758
+ // if(!item){
759
+ // return "";
760
+ // }
761
+ // const LargeClass: string = "fa-3x ";
762
+ // if(item.Type === ItemType.Folder){
763
+ // return LargeClass + "fa-regular fa-folder";
764
+ // }
765
+ // const resourceType = this._allResourceTypes.find(rt => rt.Entity === this.Resource);
766
+ // if(resourceType){
767
+ // return LargeClass + resourceType.Icon;// + rotateStyle;
768
+ // }
769
+ // return "";
770
+ }
771
+ }
772
+ ResourceBrowserComponent.ɵfac = function ResourceBrowserComponent_Factory(t) { return new (t || ResourceBrowserComponent)(i0.ɵɵdirectiveInject(i1.SharedService)); };
773
+ ResourceBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceBrowserComponent, selectors: [["mj-resource-browser"]], inputs: { ResourceTypeName: "ResourceTypeName", EnableCategories: "EnableCategories", EnableItemEdit: "EnableItemEdit", EnableItemDelete: "EnableItemDelete", EnableRemoveLink: "EnableRemoveLink", Title: "Title", ItemFilter: "ItemFilter", OrderBy: "OrderBy", NewItemOptions: "NewItemOptions", CurrentCategoryID: "CurrentCategoryID", DisplayMode: "DisplayMode" }, outputs: { ResourceSelected: "ResourceSelected", CategoryChanged: "CategoryChanged", DisplayModeChanged: "DisplayModeChanged" }, decls: 27, vars: 8, consts: [["searchInput", ""], ["entityFormDialog", ""], [1, "generic-browser-list-container"], [1, "main-fav-wrapper"], [1, "title-wrapper"], [1, "title-flex-display"], ["themeColor", "info", 1, "custom-dropdwn", 3, "itemClick", "data"], [1, "fa-solid", "fa-plus"], [1, "search"], ["type", "text", "placeholder", "Search", "size", "large", "rounded", "large", "fillMode", "solid", 3, "keyup", "clearButton"], ["kendoTextBoxPrefixTemplate", "", 3, "showSeparator"], [1, "filter-wrapper"], ["kendobutton", "", 1, "cursor-pointer", "grid-btn", "btn-cmn", 3, "click"], [1, "fa-solid", "fa-bars"], ["kendobutton", "", 1, "cursor-pointer", "active", "btn-cmn", 3, "click"], [1, "fa-solid", "fa-table-cells-large"], [1, "main-area"], ["type", "converging-spinner"], ["class", "dialog-wrapper", "title", "Confirm", 3, "minWidth", "width", "close", 4, "ngIf"], ["title", "Create new folder", "class", "dialog-wrapper", 3, "minWidth", "width", "close", 4, "ngIf"], ["Mode", "complete"], ["title", "Parent", 1, "title-folder", "fa-solid", "fa-arrow-left", "fa-2xl", "breadcrumb-icon", 3, "click"], ["title", "Folder", 1, "title-folder", "fa-regular", "fa-folder", "fa-2xl"], [1, "fa-solid", "fa-magnifying-glass", "margin-left-small"], [3, "kendoGridBinding"], [1, "card-list", "k-d-flex", "k-flex-row", "k-h-full", "k-flex-wrap"], [3, "cellClick", "kendoGridBinding"], ["field", "Name", "title", "Name"], ["field", "Size", "title", "Size"], ["field", "LastOpened", "title", "Last Opened"], ["field", "ModifiedBy", "title", "Modified By"], ["title", ""], ["kendoGridCellTemplate", ""], [1, "grid-wrapper"], [1, "list-btn"], ["title", "Remove Link to Shared Item", 1, "list-btn"], [1, "list-btn", 3, "click"], [1, "fa-regular", "fa-pen-to-square"], [1, "fa-regular", "fa-trash-can"], ["title", "Remove Link to Shared Item", 1, "list-btn", 3, "click"], [1, "fa-solid", "fa-link-slash", 2, "color", "rgb(19, 92, 201)"], [1, "card-wrapper", "cursor-pointer"], [1, "list-item-icon"], ["title", "Edit Item", 1, "list-btn"], ["title", "Delete Item", 1, "list-btn"], [3, "click"], [2, "color", "rgb(19, 92, 201)", 3, "title", "ngClass"], [3, "title", "ngClass"], [1, "padding-top-small"], ["kendoCardTitle", ""], ["kendoCardSubtitle", ""], ["title", "Edit Item", 1, "list-btn", 3, "click"], ["title", "Delete Item", 1, "list-btn", 3, "click"], ["title", "Confirm", 1, "dialog-wrapper", 3, "close", "minWidth", "width"], [1, "k-m-7.5", "k-text-center"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click"], ["title", "Create new folder", 1, "dialog-wrapper", 3, "close", "minWidth", "width"], ["placeholder", "Enter a folder name", 3, "valueChange"]], template: function ResourceBrowserComponent_Template(rf, ctx) { if (rf & 1) {
774
+ const _r1 = i0.ɵɵgetCurrentView();
775
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5);
776
+ i0.ɵɵtemplate(4, ResourceBrowserComponent_Conditional_4_Template, 2, 0);
777
+ i0.ɵɵelementStart(5, "h4");
778
+ i0.ɵɵtext(6);
779
+ i0.ɵɵelementEnd()();
780
+ i0.ɵɵelementStart(7, "kendo-dropdownbutton", 6);
781
+ i0.ɵɵlistener("itemClick", function ResourceBrowserComponent_Template_kendo_dropdownbutton_itemClick_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropdownItemClick($event)); });
782
+ i0.ɵɵelement(8, "span", 7);
783
+ i0.ɵɵtext(9, " Create New ");
784
+ i0.ɵɵelementEnd()();
785
+ i0.ɵɵelementStart(10, "div", 4)(11, "div", 8)(12, "kendo-textbox", 9, 0);
786
+ i0.ɵɵlistener("keyup", function ResourceBrowserComponent_Template_kendo_textbox_keyup_12_listener() { i0.ɵɵrestoreView(_r1); const searchInput_r4 = i0.ɵɵreference(13); return i0.ɵɵresetView(ctx.onKeyup(searchInput_r4.value)); });
787
+ i0.ɵɵtemplate(14, ResourceBrowserComponent_ng_template_14_Template, 1, 0, "ng-template", 10);
788
+ i0.ɵɵelementEnd()();
789
+ i0.ɵɵelementStart(15, "div", 11)(16, "button", 12);
790
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("grid")); });
791
+ i0.ɵɵelement(17, "span", 13);
792
+ i0.ɵɵelementEnd();
793
+ i0.ɵɵelementStart(18, "button", 14);
794
+ i0.ɵɵlistener("click", function ResourceBrowserComponent_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("list")); });
795
+ i0.ɵɵelement(19, "span", 15);
796
+ i0.ɵɵelementEnd()()();
797
+ i0.ɵɵelementStart(20, "div", 16);
798
+ i0.ɵɵtemplate(21, ResourceBrowserComponent_Conditional_21_Template, 1, 0, "kendo-loader", 17)(22, ResourceBrowserComponent_Conditional_22_Template, 2, 1);
799
+ i0.ɵɵelementEnd()();
800
+ i0.ɵɵtemplate(23, ResourceBrowserComponent_kendo_dialog_23_Template, 10, 4, "kendo-dialog", 18)(24, ResourceBrowserComponent_kendo_dialog_24_Template, 8, 2, "kendo-dialog", 19);
801
+ i0.ɵɵelement(25, "mj-entity-form-dialog", 20, 1);
802
+ i0.ɵɵelementEnd();
803
+ } if (rf & 2) {
804
+ i0.ɵɵadvance(4);
805
+ i0.ɵɵconditional(ctx.CurrentCategoryID ? 4 : -1);
806
+ i0.ɵɵadvance(2);
807
+ i0.ɵɵtextInterpolate(ctx.Title);
808
+ i0.ɵɵadvance();
809
+ i0.ɵɵproperty("data", ctx.dropdownOptions);
810
+ i0.ɵɵadvance(5);
811
+ i0.ɵɵproperty("clearButton", true);
812
+ i0.ɵɵadvance(2);
813
+ i0.ɵɵproperty("showSeparator", true);
814
+ i0.ɵɵadvance(7);
815
+ i0.ɵɵconditional(ctx.IsLoading ? 21 : 22);
816
+ i0.ɵɵadvance(2);
817
+ i0.ɵɵproperty("ngIf", ctx.deleteDialogOpened);
818
+ i0.ɵɵadvance();
819
+ i0.ɵɵproperty("ngIf", ctx.createFolderDialogOpened);
820
+ } }, dependencies: [i2.NgClass, i2.NgIf, i3.GridComponent, i3.DataBindingDirective, i3.ColumnComponent, i3.CellTemplateDirective, i4.DialogComponent, i4.DialogActionsComponent, i5.LoaderComponent, i6.ButtonComponent, i6.DropDownButtonComponent, i7.TextBoxComponent, i7.TextBoxPrefixTemplateDirective, i8.CardComponent, i8.CardBodyComponent, i8.CardTitleDirective, i8.CardSubtitleDirective, i9.EntityFormDialogComponent], styles: [".card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 36px !important;\n line-height: 42px !important;\n color: var(--black) !important;\n}\n .card-header-entity .add-item .k-button {\n border: 1px solid var(--border-blue) !important;\n background: var(--white-color) !important;\n color: var(--border-blue);\n font-weight: 500 ;\n font-size: 16px ;\n border-radius: 10px;\n line-height: 34px;\n}\n .card-header-entity .add-item .k-button:hover {\n background: var(--border-blue) !important;\n color: var(--white-color);\n}\n .card-header-entity .add-item .k-button:hover .k-button-text svg path {\n fill: var(--white-color) !important;\n}\n .title-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper[_ngcontent-%COMP%] {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n background: var(--border-blue);\n color: var(--white-color);\n font-size: 16px;\n border: none;\n padding: 8px 25px;\n border-radius: 10px;\n}\n .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button .k-button-text, .card-header-entity .add-item .k-button .k-button-text {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.btn-cmn[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active[_ngcontent-%COMP%] {\n border: 1px solid var(--border-blue);\n}\n .main-fav-wrapper .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n .main-area .card-list .card-wrapper .k-card-body {\n padding: 16px !important;\n position: relative;\n}\n .main-fav-wrapper .main-area .card-list .card-wrapper .list-item-icon {\n position: absolute;\n display: flex;\n align-items: center;\n gap: 8px;\n top:12px;\n right: 12px;\n z-index: 9;\n}\n.grid-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n .main-fav-wrapper .main-area .card-list .card-wrapper .list-item-icon .common-btn, .list-btn[_ngcontent-%COMP%] {\n width: 38px;\n height: 38px;\n background: #000;\n min-width: 38px;\n border: 1px solid var(--gray-color);\n border-radius: 8px; \n display: flex;\n justify-content: center;\n align-items: center;\n background: transparent;\n cursor: pointer;\n}\n .main-fav-wrapper .main-area .card-list .card-wrapper .k-card-body .list-item-icon:hover, .list-btn[_ngcontent-%COMP%]:hover {\n border: 1px solid var(--border-active);\n}\n\n\n .main-area .card-list .card-wrapper:hover {\n box-shadow: 0px 0px 20px 0px rgba(60, 73, 99, 0.2);\n border: 1px solid var(--border-active);\n}\n .main-area .card-list .card-wrapper:hover .k-card-body .view-card-content-list h5 {\n color: var(--border-blue);\n}\n .main-area .card-list .card-wrapper .k-card-body .view-card-content-list p {\n color: var(--sideNav);\n font-size: 14px;\n line-height: 16px;\n height: auto;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n\n}\n .main-area .card-list .card-wrapper .k-card-body .view-card-content-list h5 {\n font-size: 18px;\n line-height: 21px;\n color: var(--text-darked);\n font-weight: 600;\n}\n.breadcrumb-wrap[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 0;\n}\n.breadcrumb-wrap[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 16px;\n line-height: 18px;\n font-weight: 400;\n color: var(--black);\n}\n .k-menu-popup {\n box-shadow: 0px 0px 20px 0px rgba(60, 73, 99, 0.2);\n border-radius: 10px;\n padding: 16px;\n}\n\n .k-menu-popup kendo-button-list ul li .k-menu-link {\n box-shadow: none !important;\n} \n .k-menu-popup kendo-button-list ul li .k-menu-link:active {\n background: transparent !important;\n}\n .k-menu-popup kendo-button-list ul li .k-menu-link .k-menu-link-text:hover {\n color: var(--primary-color);\n background: transparent !important;\n\n}\n .dialog-wrapper .popup-actions-btn button {\n flex: 1;\n}\n .dialog-wrapper .popup-actions-btn {\n display: flex;\n}\n .dialog-wrapper .popup-actions-btn .cancel-btn {\n background: var(--primary-color);\n color: var(--white-color);\n font-size: 16px;\n font-weight: 700;\n line-height: 34px;\n text-align: center;\n border-radius: 10px;\n border: 1px solid transparent;\n\n}\n .dialog-wrapper .popup-actions-btn .yes-btn {\n border:1px solid var(--primary-color);\n background: transparent;\n color: var(--primary-color);\n font-size: 16px;\n font-weight: 700;\n line-height: 34px;\n text-align: center;\n border-radius: 10px;\n box-shadow: none;\n}\n .dialog-wrapper .popup-actions-btn .yes-btn:focus {\n box-shadow: none !important;\n}\n .dialog-wrapper .k-window-title {\n font-size: 30px;\n font-weight: 500;\n line-height: 36px;\n text-align: left;\n color: var(--text-darked);\n}\n .dialog-wrapper p {\n font-size: 16px;\n font-weight: 500;\n line-height: 20px;\n text-align: left;\n color: var(--black);\n}\n\n.margin-left-small[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n.card-wrapper[_ngcontent-%COMP%] {\n min-width: 230px;\n height: 150px;\n min-height: 125px;\n}\n\n.padding-top-small[_ngcontent-%COMP%] {\n padding-top: 10px;\n}\n\n.cursor-pointer[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.title-folder[_ngcontent-%COMP%] {\n padding-right: 20px;\n margin: auto;\n}\n\n.title-flex-display[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n}\n\n.breadcrumb-icon[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.breacrumb-icon[_ngcontent-%COMP%]:hover {\n color: var(--primary-color);\n}", ".main-area[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view[_ngcontent-%COMP%] {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n .list-view .k-listview-header, \n .list-view .k-listview-footer {\n border: none;\n}\n .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header[_ngcontent-%COMP%], \n.footer[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header[_ngcontent-%COMP%] {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\n color: var(--sideNav);\n}\n.card-wrapper[_ngcontent-%COMP%] {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container[_ngcontent-%COMP%] {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}"] });
821
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceBrowserComponent, [{
822
+ type: Component,
823
+ args: [{ selector: 'mj-resource-browser', template: "\n<div class=\"generic-browser-list-container\">\n <div class=\"main-fav-wrapper\">\n <div class=\"title-wrapper\">\n <div class=\"title-flex-display\">\n @if(CurrentCategoryID){\n <span title=\"Parent\" class=\"title-folder fa-solid fa-arrow-left fa-2xl breadcrumb-icon\" (click)=\"goToParent()\"></span> \n <span title=\"Folder\" class=\"title-folder fa-regular fa-folder fa-2xl\"></span>\n }\n <h4>{{Title}}</h4>\n </div>\n <kendo-dropdownbutton class=\"custom-dropdwn\" (itemClick)=\"onDropdownItemClick($event)\" [data]=\"dropdownOptions\" themeColor=\"info\">\n <span class=\"fa-solid fa-plus\"></span>\n Create New\n </kendo-dropdownbutton>\n </div>\n <div class=\"title-wrapper\">\n <div class=\"search\">\n <kendo-textbox \n type=\"text\" \n #searchInput \n placeholder=\"Search\" \n (keyup)=\"onKeyup(searchInput.value)\"\n [clearButton]=\"true\"\n size=\"large\"\n rounded=\"large\"\n fillMode=\"solid\"\n >\n <ng-template kendoTextBoxPrefixTemplate [showSeparator]=\"true\">\n <span class=\"fa-solid fa-magnifying-glass margin-left-small\"></span>\n </ng-template>\n </kendo-textbox>\n </div>\n <div class=\"filter-wrapper\">\n <!--\n <kendo-dropdownbutton [data]=\"data\" themeColor=\"primary\">\n Sort By Recents\n </kendo-dropdownbutton>\n -->\n <button kendobutton (click)=\"changeViewMode('grid')\" class=\"cursor-pointer grid-btn btn-cmn\">\n <span class=\"fa-solid fa-bars\"></span>\n </button>\n <button kendobutton (click)=\"changeViewMode('list')\" class=\"cursor-pointer active btn-cmn\">\n <span class=\"fa-solid fa-table-cells-large\"></span>\n </button>\n </div>\n </div>\n\n <div class=\"main-area\">\n @if (IsLoading) {\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else {\n @if(DisplayMode === 'List'){\n <kendo-grid (cellClick)=\"onCellItemClicked($event)\" [kendoGridBinding]=\"Items\">\n <kendo-grid-column field=\"Name\" title=\"Name\"></kendo-grid-column>\n <kendo-grid-column field=\"Size\" title=\"Size\"></kendo-grid-column>\n <kendo-grid-column field=\"LastOpened\" title=\"Last Opened\"></kendo-grid-column>\n <kendo-grid-column field=\"ModifiedBy\" title=\"Modified By\"></kendo-grid-column>\n <kendo-grid-column title=\"\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <div class=\"grid-wrapper\">\n @if(EnableItemEdit){\n <button class=\"list-btn\" (click)=\"editItem(dataItem)\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(EnableItemDelete) {\n <button class=\"list-btn\" (click)=\"deleteItem(dataItem)\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button> \n }\n @if(EnableRemoveLink) {\n <button (click)=\"unlinkItem(dataItem)\" class=\"list-btn\" title=\"Remove Link to Shared Item\" >\n <span class=\"fa-solid fa-link-slash\" style=\"color: rgb(19, 92, 201);\"></span>\n </button> \n }\n </div>\n </ng-template>\n </kendo-grid-column>\n </kendo-grid>\n }\n @else {\n <div class=\"card-list k-d-flex k-flex-row k-h-full k-flex-wrap\">\n @for(item of Items; track item) {\n <kendo-card class=\"card-wrapper cursor-pointer\">\n <div class=\"list-item-icon\">\n @if(EnableItemEdit && (!item.IsLink || item.LinkPermissionLevel === 'Owner' || item.LinkPermissionLevel === 'Edit')) {\n <button (click)=\"editItem(item)\" class=\"list-btn\" title=\"Edit Item\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(EnableItemDelete && (!item.IsLink || item.LinkPermissionLevel === 'Owner') ) {\n <button (click)=\"deleteItem(item)\" class=\"list-btn\" title=\"Delete Item\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button> \n }\n @else if (EnableRemoveLink && item.IsLink) {\n <button (click)=\"unlinkItem(item)\" class=\"list-btn\" title=\"Remove Link to Shared Item\" >\n <span class=\"fa-solid fa-link-slash\" style=\"color: rgb(19, 92, 201);\"></span>\n </button> \n }\n </div>\n <kendo-card-body (click)=\"itemClick(item)\">\n @if(item.IsLink) {\n <i [title]=\"item.Name + '(Shared)'\" [ngClass]=\"getIconForResourceType(item)\" style=\"color: rgb(19, 92, 201);\"></i>\n }\n @else {\n <span [title]=\"item.Name\" [ngClass]=\"getIconForResourceType(item)\"></span>\n }\n <div class=\"padding-top-small\">\n <h5 kendoCardTitle>{{ item.Name }}</h5>\n <p kendoCardSubtitle>{{ item.Description }}</p>\n </div>\n </kendo-card-body>\n </kendo-card>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <kendo-dialog \n [minWidth]=\"450\"\n [width]=\"650\"\n class=\"dialog-wrapper\" \n title=\"Confirm\" \n *ngIf=\"deleteDialogOpened\" \n (close)=\"onConfirmDeleteItem(false)\">\n <p class=\"k-m-7.5 k-text-center\">\n Are you sure you want to {{(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'delete' : 'unlink'}} <b>{{selectedItem?.Name}}?</b>\n </p>\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"onConfirmDeleteItem(true)\" kendoButton themeColor=\"info\">\n Yes\n </button>\n <button class=\"yes-btn\" (click)=\"onConfirmDeleteItem(false)\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n No \n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <kendo-dialog \n title=\"Create new folder\" \n *ngIf=\"createFolderDialogOpened\" \n (close)=\"toggleCreateFolderView()\"\n [minWidth]=\"250\"\n [width]=\"450\"\n class=\"dialog-wrapper\"\n >\n <div class=\"search\">\n <kendo-textbox placeholder=\"Enter a folder name\" (valueChange)=\"onCreateFolderKeyup($event)\"/>\n </div>\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"createFolder()\" kendoButton themeColor=\"info\">\n Create\n </button>\n <button class=\"yes-btn\" (click)=\"toggleCreateFolderView()\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n <mj-entity-form-dialog\n #entityFormDialog\n Mode=\"complete\"\n >\n </mj-entity-form-dialog>\n</div>\n", styles: ["::ng-deep .card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 36px !important;\n line-height: 42px !important;\n color: var(--black) !important;\n}\n ::ng-deep .card-header-entity .add-item .k-button {\n border: 1px solid var(--border-blue) !important;\n background: var(--white-color) !important;\n color: var(--border-blue);\n font-weight: 500 ;\n font-size: 16px ;\n border-radius: 10px;\n line-height: 34px;\n}\n::ng-deep .card-header-entity .add-item .k-button:hover {\n background: var(--border-blue) !important;\n color: var(--white-color);\n}\n::ng-deep .card-header-entity .add-item .k-button:hover .k-button-text svg path {\n fill: var(--white-color) !important;\n}\n .title-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper .search input {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper .search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n::ng-deep .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n background: var(--border-blue);\n color: var(--white-color);\n font-size: 16px;\n border: none;\n padding: 8px 25px;\n border-radius: 10px;\n}\n::ng-deep .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button .k-button-text, ::ng-deep .card-header-entity .add-item .k-button .k-button-text {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.btn-cmn {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n::ng-deep .main-fav-wrapper .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n::ng-deep .main-area .card-list .card-wrapper .k-card-body {\n padding: 16px !important;\n position: relative;\n}\n::ng-deep .main-fav-wrapper .main-area .card-list .card-wrapper .list-item-icon {\n position: absolute;\n display: flex;\n align-items: center;\n gap: 8px;\n top:12px;\n right: 12px;\n z-index: 9;\n}\n.grid-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n::ng-deep .main-fav-wrapper .main-area .card-list .card-wrapper .list-item-icon .common-btn, .list-btn {\n width: 38px;\n height: 38px;\n background: #000;\n min-width: 38px;\n border: 1px solid var(--gray-color);\n border-radius: 8px; \n display: flex;\n justify-content: center;\n align-items: center;\n background: transparent;\n cursor: pointer;\n}\n::ng-deep .main-fav-wrapper .main-area .card-list .card-wrapper .k-card-body .list-item-icon:hover, .list-btn:hover {\n border: 1px solid var(--border-active);\n}\n\n\n::ng-deep .main-area .card-list .card-wrapper:hover {\n box-shadow: 0px 0px 20px 0px rgba(60, 73, 99, 0.2);\n border: 1px solid var(--border-active);\n}\n::ng-deep .main-area .card-list .card-wrapper:hover .k-card-body .view-card-content-list h5 {\n color: var(--border-blue);\n}\n::ng-deep .main-area .card-list .card-wrapper .k-card-body .view-card-content-list p {\n color: var(--sideNav);\n font-size: 14px;\n line-height: 16px;\n height: auto;\n text-overflow: ellipsis;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n\n}\n::ng-deep .main-area .card-list .card-wrapper .k-card-body .view-card-content-list h5 {\n font-size: 18px;\n line-height: 21px;\n color: var(--text-darked);\n font-weight: 600;\n}\n.breadcrumb-wrap {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 0;\n}\n.breadcrumb-wrap span {\n font-size: 16px;\n line-height: 18px;\n font-weight: 400;\n color: var(--black);\n}\n::ng-deep .k-menu-popup {\n box-shadow: 0px 0px 20px 0px rgba(60, 73, 99, 0.2);\n border-radius: 10px;\n padding: 16px;\n}\n\n::ng-deep .k-menu-popup kendo-button-list ul li .k-menu-link {\n box-shadow: none !important;\n} \n::ng-deep .k-menu-popup kendo-button-list ul li .k-menu-link:active {\n background: transparent !important;\n}\n::ng-deep .k-menu-popup kendo-button-list ul li .k-menu-link .k-menu-link-text:hover {\n color: var(--primary-color);\n background: transparent !important;\n\n}\n::ng-deep .dialog-wrapper .popup-actions-btn button {\n flex: 1;\n}\n::ng-deep .dialog-wrapper .popup-actions-btn {\n display: flex;\n}\n::ng-deep .dialog-wrapper .popup-actions-btn .cancel-btn {\n background: var(--primary-color);\n color: var(--white-color);\n font-size: 16px;\n font-weight: 700;\n line-height: 34px;\n text-align: center;\n border-radius: 10px;\n border: 1px solid transparent;\n\n}\n::ng-deep .dialog-wrapper .popup-actions-btn .yes-btn {\n border:1px solid var(--primary-color);\n background: transparent;\n color: var(--primary-color);\n font-size: 16px;\n font-weight: 700;\n line-height: 34px;\n text-align: center;\n border-radius: 10px;\n box-shadow: none;\n}\n::ng-deep .dialog-wrapper .popup-actions-btn .yes-btn:focus {\n box-shadow: none !important;\n}\n::ng-deep .dialog-wrapper .k-window-title {\n font-size: 30px;\n font-weight: 500;\n line-height: 36px;\n text-align: left;\n color: var(--text-darked);\n}\n::ng-deep .dialog-wrapper p {\n font-size: 16px;\n font-weight: 500;\n line-height: 20px;\n text-align: left;\n color: var(--black);\n}\n\n.margin-left-small {\n margin-left: 10px;\n}\n\n.card-wrapper {\n min-width: 230px;\n height: 150px;\n min-height: 125px;\n}\n\n.padding-top-small {\n padding-top: 10px;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.title-folder {\n padding-right: 20px;\n margin: auto;\n}\n\n.title-flex-display {\n display: flex;\n flex-direction: row;\n}\n\n.breadcrumb-icon {\n cursor: pointer;\n}\n.breacrumb-icon:hover {\n color: var(--primary-color);\n}", "\n.main-area {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n::ng-deep .list-view .k-listview-header, \n::ng-deep .list-view .k-listview-footer {\n border: none;\n}\n::ng-deep .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header,\n.footer {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header .head-tag {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header .count {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card .view-icon {\n color: var(--sideNav);\n}\n.card-wrapper {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper .k-card-body {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper .view-card {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card .btn-wrapper {\n display: flex;\n align-items: center;\n}\n\n.k-card-body .view-card-content h5 {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body .view-card-content p {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area .card-list {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}\n"] }]
824
+ }], () => [{ type: i1.SharedService }], { ResourceTypeName: [{
825
+ type: Input,
826
+ args: [{ required: true }]
827
+ }], EnableCategories: [{
828
+ type: Input
829
+ }], EnableItemEdit: [{
830
+ type: Input
831
+ }], EnableItemDelete: [{
832
+ type: Input
833
+ }], EnableRemoveLink: [{
834
+ type: Input
835
+ }], Title: [{
836
+ type: Input
837
+ }], ItemFilter: [{
838
+ type: Input
839
+ }], OrderBy: [{
840
+ type: Input
841
+ }], NewItemOptions: [{
842
+ type: Input
843
+ }], CurrentCategoryID: [{
844
+ type: Input
845
+ }], DisplayMode: [{
846
+ type: Input
847
+ }], ResourceSelected: [{
848
+ type: Output
849
+ }], CategoryChanged: [{
850
+ type: Output
851
+ }], DisplayModeChanged: [{
852
+ type: Output
853
+ }] }); })();
854
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceBrowserComponent, { className: "ResourceBrowserComponent", filePath: "src/lib/resource-browser/resource-browser.component.ts", lineNumber: 21 }); })();
855
+ //# sourceMappingURL=resource-browser.component.js.map