@memberjunction/ng-explorer-core 2.48.0 → 2.49.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.
- package/dist/app-routing.module.js +40 -53
- package/dist/app-routing.module.js.map +1 -1
- package/dist/generic/Events.types.js +104 -0
- package/dist/generic/Events.types.js.map +1 -1
- package/dist/generic/Item.types.js +28 -14
- package/dist/generic/Item.types.js.map +1 -1
- package/dist/generic/PathData.types.js +5 -0
- package/dist/generic/PathData.types.js.map +1 -1
- package/dist/generic/app-nav-view.types.js +3 -1
- package/dist/generic/app-nav-view.types.js.map +1 -1
- package/dist/lib/app-view/application-view.component.js +273 -294
- package/dist/lib/app-view/application-view.component.js.map +1 -1
- package/dist/lib/auth-button/auth-button.component.js +13 -22
- package/dist/lib/auth-button/auth-button.component.js.map +1 -1
- package/dist/lib/base-browser-component/base-browser-component.js +96 -108
- package/dist/lib/base-browser-component/base-browser-component.js.map +1 -1
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +106 -124
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +257 -281
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
- package/dist/lib/data-browser-component/data-browser.component.js +122 -137
- package/dist/lib/data-browser-component/data-browser.component.js.map +1 -1
- package/dist/lib/expansion-panel-component/expansion-panel-component.js +100 -117
- package/dist/lib/expansion-panel-component/expansion-panel-component.js.map +1 -1
- package/dist/lib/favorites/favorites.component.js +44 -54
- package/dist/lib/favorites/favorites.component.js.map +1 -1
- package/dist/lib/files/files.component.js +12 -11
- package/dist/lib/files/files.component.js.map +1 -1
- package/dist/lib/generic/form-toolbar.js +21 -20
- package/dist/lib/generic/form-toolbar.js.map +1 -1
- package/dist/lib/generic/resource-container-component.js +23 -20
- package/dist/lib/generic/resource-container-component.js.map +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +48 -46
- package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +353 -386
- package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -1
- package/dist/lib/guards/auth-guard.service.js +4 -2
- package/dist/lib/guards/auth-guard.service.js.map +1 -1
- package/dist/lib/guards/entities.guard.js +1 -1
- package/dist/lib/guards/entities.guard.js.map +1 -1
- package/dist/lib/header/MSFT_UserImageService.js +4 -3
- package/dist/lib/header/MSFT_UserImageService.js.map +1 -1
- package/dist/lib/header/header.component.js +111 -121
- package/dist/lib/header/header.component.js.map +1 -1
- package/dist/lib/home-component/home.component.js +34 -42
- package/dist/lib/home-component/home.component.js.map +1 -1
- package/dist/lib/home-wrapper/home-wrapper.component.js +6 -6
- package/dist/lib/home-wrapper/home-wrapper.component.js.map +1 -1
- package/dist/lib/list-view/list-view.component.js +132 -152
- package/dist/lib/list-view/list-view.component.js.map +1 -1
- package/dist/lib/navigation/navigation.component.js +568 -615
- package/dist/lib/navigation/navigation.component.js.map +1 -1
- package/dist/lib/query-browser-component/query-browser.component.js +30 -39
- package/dist/lib/query-browser-component/query-browser.component.js.map +1 -1
- package/dist/lib/report-browser-component/report-browser.component.js +18 -30
- package/dist/lib/report-browser-component/report-browser.component.js.map +1 -1
- package/dist/lib/resource-browser/resource-browser.component.js +435 -457
- package/dist/lib/resource-browser/resource-browser.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +12 -25
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.js +18 -31
- package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.js +15 -28
- package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.js +35 -47
- package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/report-resource.component.js +15 -28
- package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +21 -34
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +23 -37
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/single-application/single-application.component.js +15 -20
- package/dist/lib/single-application/single-application.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +81 -95
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +28 -29
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +51 -64
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +158 -165
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/single-entity/single-entity.component.js +106 -118
- package/dist/lib/single-entity/single-entity.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +265 -287
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/lib/single-query/single-query.component.js +35 -44
- package/dist/lib/single-query/single-query.component.js.map +1 -1
- package/dist/lib/single-record/single-record.component.js +64 -73
- package/dist/lib/single-record/single-record.component.js.map +1 -1
- package/dist/lib/single-report/single-report.component.js +33 -43
- package/dist/lib/single-report/single-report.component.js.map +1 -1
- package/dist/lib/single-search-result/single-search-result.component.js +18 -30
- package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
- package/dist/lib/single-view/single-view.component.js +107 -124
- package/dist/lib/single-view/single-view.component.js.map +1 -1
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +197 -210
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +137 -155
- package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
- package/dist/lib/user-profile/user-profile.component.js +10 -8
- package/dist/lib/user-profile/user-profile.component.js.map +1 -1
- package/dist/module.js +51 -51
- package/dist/module.js.map +1 -1
- package/package.json +25 -25
|
@@ -1,12 +1,3 @@
|
|
|
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
1
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
11
2
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
12
3
|
import { Folder, Item, ItemType } from '../../generic/Item.types';
|
|
@@ -191,89 +182,88 @@ function GenericBrowserListComponent_kendo_dialog_24_Template(rf, ctx) { if (rf
|
|
|
191
182
|
i0.ɵɵproperty("minWidth", 250)("width", 450);
|
|
192
183
|
} }
|
|
193
184
|
export class GenericBrowserListComponent {
|
|
185
|
+
sharedService;
|
|
186
|
+
entityFormDialogRef;
|
|
187
|
+
showLoader = true;
|
|
188
|
+
itemType = '';
|
|
189
|
+
title = '';
|
|
190
|
+
items = [];
|
|
191
|
+
iconName = 'view';
|
|
192
|
+
disableEditButton = false;
|
|
193
|
+
addText = 'Create New';
|
|
194
|
+
backText = 'Go Back';
|
|
195
|
+
ItemEntityName = '';
|
|
196
|
+
CategoryEntityName = '';
|
|
197
|
+
selectedFolderID = null;
|
|
198
|
+
showNotifications = true;
|
|
199
|
+
categoryEntityID = null;
|
|
200
|
+
displayAsGrid = false;
|
|
201
|
+
resourceName = "Resource";
|
|
202
|
+
/**
|
|
203
|
+
* If we are viewing a reesource, such as dashboards, reports, queries, etc
|
|
204
|
+
* then the UI will need to change abit to accomodate this like
|
|
205
|
+
* showing the name of the resouce as a header
|
|
206
|
+
*/
|
|
207
|
+
viewingResource = false;
|
|
208
|
+
/**
|
|
209
|
+
* Indicates if the items should be displayed as a list
|
|
210
|
+
* or as a grid of icons
|
|
211
|
+
*/
|
|
212
|
+
displayItemsAsList = false;
|
|
213
|
+
extraDropdownOptions = [];
|
|
214
|
+
//Before Evewnts
|
|
215
|
+
BeforeAddFolderEvent = new EventEmitter();
|
|
216
|
+
BeforeAddItemEvent = new EventEmitter();
|
|
217
|
+
BeforeDeleteFolderEvent = new EventEmitter();
|
|
218
|
+
BeforeDeleteItemEvent = new EventEmitter();
|
|
219
|
+
BeforeUnlinkItemEvent = new EventEmitter();
|
|
220
|
+
BeforeUpdateFolderEvent = new EventEmitter();
|
|
221
|
+
BeforeUpdateItemEvent = new EventEmitter();
|
|
222
|
+
//After Events
|
|
223
|
+
AfterAddFolderEvent = new EventEmitter();
|
|
224
|
+
AfterAddItemEvent = new EventEmitter();
|
|
225
|
+
AfterDeleteFolderEvent = new EventEmitter();
|
|
226
|
+
AfterDeleteItemEvent = new EventEmitter();
|
|
227
|
+
AfterUnlinkItemEvent = new EventEmitter();
|
|
228
|
+
AfterUpdateFolderEvent = new EventEmitter();
|
|
229
|
+
AfterUpdateItemEvent = new EventEmitter();
|
|
230
|
+
NavigateToParentEvent = new EventEmitter();
|
|
231
|
+
itemClickEvent = new EventEmitter();
|
|
232
|
+
backButtonClickEvent = new EventEmitter();
|
|
233
|
+
dropdownOptionClickEvent = new EventEmitter();
|
|
234
|
+
viewModeChangeEvent = new EventEmitter();
|
|
235
|
+
_resizeDebounceTime = 250;
|
|
236
|
+
_resizeEndDebounceTime = 500;
|
|
237
|
+
filterItemsSubject = new Subject();
|
|
238
|
+
filter = '';
|
|
239
|
+
sourceItems = null;
|
|
240
|
+
selectedItem = null;
|
|
241
|
+
deleteDialogOpened = false;
|
|
242
|
+
copyFromDialogOpened = false;
|
|
243
|
+
createFolderDialogOpened = false;
|
|
244
|
+
newFolderText = "Sample Folder";
|
|
245
|
+
resourceTypes = [];
|
|
246
|
+
createNewRecordName = "Record";
|
|
247
|
+
entityObjectName = "";
|
|
248
|
+
/**
|
|
249
|
+
* Options for the create button dropdown
|
|
250
|
+
*/
|
|
251
|
+
dropdownOptions = [
|
|
252
|
+
{ text: "Folder" }
|
|
253
|
+
];
|
|
194
254
|
constructor(sharedService) {
|
|
195
255
|
this.sharedService = sharedService;
|
|
196
|
-
this.showLoader = true;
|
|
197
|
-
this.itemType = '';
|
|
198
|
-
this.title = '';
|
|
199
|
-
this.items = [];
|
|
200
|
-
this.iconName = 'view';
|
|
201
|
-
this.disableEditButton = false;
|
|
202
|
-
this.addText = 'Create New';
|
|
203
|
-
this.backText = 'Go Back';
|
|
204
|
-
this.ItemEntityName = '';
|
|
205
|
-
this.CategoryEntityName = '';
|
|
206
|
-
this.selectedFolderID = null;
|
|
207
|
-
this.showNotifications = true;
|
|
208
|
-
this.categoryEntityID = null;
|
|
209
|
-
this.displayAsGrid = false;
|
|
210
|
-
this.resourceName = "Resource";
|
|
211
|
-
/**
|
|
212
|
-
* If we are viewing a reesource, such as dashboards, reports, queries, etc
|
|
213
|
-
* then the UI will need to change abit to accomodate this like
|
|
214
|
-
* showing the name of the resouce as a header
|
|
215
|
-
*/
|
|
216
|
-
this.viewingResource = false;
|
|
217
|
-
/**
|
|
218
|
-
* Indicates if the items should be displayed as a list
|
|
219
|
-
* or as a grid of icons
|
|
220
|
-
*/
|
|
221
|
-
this.displayItemsAsList = false;
|
|
222
|
-
this.extraDropdownOptions = [];
|
|
223
|
-
//Before Evewnts
|
|
224
|
-
this.BeforeAddFolderEvent = new EventEmitter();
|
|
225
|
-
this.BeforeAddItemEvent = new EventEmitter();
|
|
226
|
-
this.BeforeDeleteFolderEvent = new EventEmitter();
|
|
227
|
-
this.BeforeDeleteItemEvent = new EventEmitter();
|
|
228
|
-
this.BeforeUnlinkItemEvent = new EventEmitter();
|
|
229
|
-
this.BeforeUpdateFolderEvent = new EventEmitter();
|
|
230
|
-
this.BeforeUpdateItemEvent = new EventEmitter();
|
|
231
|
-
//After Events
|
|
232
|
-
this.AfterAddFolderEvent = new EventEmitter();
|
|
233
|
-
this.AfterAddItemEvent = new EventEmitter();
|
|
234
|
-
this.AfterDeleteFolderEvent = new EventEmitter();
|
|
235
|
-
this.AfterDeleteItemEvent = new EventEmitter();
|
|
236
|
-
this.AfterUnlinkItemEvent = new EventEmitter();
|
|
237
|
-
this.AfterUpdateFolderEvent = new EventEmitter();
|
|
238
|
-
this.AfterUpdateItemEvent = new EventEmitter();
|
|
239
|
-
this.NavigateToParentEvent = new EventEmitter();
|
|
240
|
-
this.itemClickEvent = new EventEmitter();
|
|
241
|
-
this.backButtonClickEvent = new EventEmitter();
|
|
242
|
-
this.dropdownOptionClickEvent = new EventEmitter();
|
|
243
|
-
this.viewModeChangeEvent = new EventEmitter();
|
|
244
|
-
this._resizeDebounceTime = 250;
|
|
245
|
-
this._resizeEndDebounceTime = 500;
|
|
246
|
-
this.filterItemsSubject = new Subject();
|
|
247
|
-
this.filter = '';
|
|
248
|
-
this.sourceItems = null;
|
|
249
|
-
this.selectedItem = null;
|
|
250
|
-
this.deleteDialogOpened = false;
|
|
251
|
-
this.copyFromDialogOpened = false;
|
|
252
|
-
this.createFolderDialogOpened = false;
|
|
253
|
-
this.newFolderText = "Sample Folder";
|
|
254
|
-
this.resourceTypes = [];
|
|
255
|
-
this.createNewRecordName = "Record";
|
|
256
|
-
this.entityObjectName = "";
|
|
257
|
-
/**
|
|
258
|
-
* Options for the create button dropdown
|
|
259
|
-
*/
|
|
260
|
-
this.dropdownOptions = [
|
|
261
|
-
{ text: "Folder" }
|
|
262
|
-
];
|
|
263
|
-
this._currentDeleteOrUnlinkState = false;
|
|
264
256
|
this.filterItemsSubject
|
|
265
257
|
.pipe(debounceTime(this._resizeDebounceTime))
|
|
266
258
|
.subscribe(() => this.filterItems(this.filter));
|
|
267
259
|
}
|
|
268
|
-
ngOnInit() {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
this.resourceTypes = SharedService.Instance.ResourceTypes;
|
|
276
|
-
});
|
|
260
|
+
async ngOnInit() {
|
|
261
|
+
const md = new Metadata();
|
|
262
|
+
if (this.extraDropdownOptions && this.extraDropdownOptions.length > 0) {
|
|
263
|
+
this.dropdownOptions.push(...this.extraDropdownOptions);
|
|
264
|
+
}
|
|
265
|
+
const view = new RunView();
|
|
266
|
+
this.resourceTypes = SharedService.Instance.ResourceTypes;
|
|
277
267
|
}
|
|
278
268
|
//wrapper function for the grid view
|
|
279
269
|
onCellItemClicked(event) {
|
|
@@ -288,245 +278,226 @@ export class GenericBrowserListComponent {
|
|
|
288
278
|
backButtonClicked() {
|
|
289
279
|
this.backButtonClickEvent.emit();
|
|
290
280
|
}
|
|
291
|
-
addResourceButtonClicked() {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}
|
|
316
|
-
});
|
|
281
|
+
async addResourceButtonClicked() {
|
|
282
|
+
let event = new BeforeAddItemEvent("");
|
|
283
|
+
this.BeforeAddItemEvent.emit(event);
|
|
284
|
+
if (event.Cancel) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
const resourceName = `Sample ${this.ItemEntityName}`;
|
|
288
|
+
const md = new Metadata();
|
|
289
|
+
const entity = await md.GetEntityObject(this.ItemEntityName);
|
|
290
|
+
entity.NewRecord();
|
|
291
|
+
//some entities, like resources, have common fields
|
|
292
|
+
//we can try to set here
|
|
293
|
+
entity.Set("Name", resourceName);
|
|
294
|
+
entity.Set("UserID", md.CurrentUser.ID);
|
|
295
|
+
let saveResult = await entity.Save();
|
|
296
|
+
if (saveResult) {
|
|
297
|
+
this.showNotification(`successfully created ${resourceName}`, "info");
|
|
298
|
+
let item = new Item(entity, ItemType.Resource);
|
|
299
|
+
item.Name = resourceName;
|
|
300
|
+
this.AfterAddItemEvent.emit(new AfterAddItemEvent(item));
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
this.showNotification(`Unable to create ${resourceName}`, "error");
|
|
304
|
+
}
|
|
317
305
|
}
|
|
318
|
-
createFolder() {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
306
|
+
async createFolder() {
|
|
307
|
+
this.toggleCreateFolderView(false);
|
|
308
|
+
let event = new BeforeAddFolderEvent(this.newFolderText);
|
|
309
|
+
if (event.Cancel) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
let folderName = this.newFolderText;
|
|
313
|
+
let description = "";
|
|
314
|
+
const md = new Metadata();
|
|
315
|
+
const folderEntity = await md.GetEntityObject(this.CategoryEntityName);
|
|
316
|
+
folderEntity.NewRecord();
|
|
317
|
+
folderEntity.Set("Name", folderName);
|
|
318
|
+
folderEntity.Set("ParentID", this.selectedFolderID);
|
|
319
|
+
folderEntity.Set("Description", description);
|
|
320
|
+
folderEntity.Set("UserID", md.CurrentUser.ID);
|
|
321
|
+
if (this.categoryEntityID) {
|
|
322
|
+
folderEntity.Set("EntityID", this.categoryEntityID);
|
|
323
|
+
}
|
|
324
|
+
let saveResult = await folderEntity.Save();
|
|
325
|
+
if (saveResult) {
|
|
326
|
+
this.showNotification(`successfully created folder ${folderName}`, "info");
|
|
327
|
+
let folder = new Folder(folderEntity.Get("ID"), folderEntity.Get("Name"));
|
|
328
|
+
folder.Description = folderEntity.Get("Description");
|
|
329
|
+
let item = new Item(folder, ItemType.Folder);
|
|
330
|
+
let event = new AfterAddFolderEvent(item);
|
|
331
|
+
this.AfterAddFolderEvent.emit(event);
|
|
322
332
|
if (event.Cancel) {
|
|
323
333
|
return;
|
|
324
334
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
folderEntity.Set("UserID", md.CurrentUser.ID);
|
|
334
|
-
if (this.categoryEntityID) {
|
|
335
|
-
folderEntity.Set("EntityID", this.categoryEntityID);
|
|
336
|
-
}
|
|
337
|
-
let saveResult = yield folderEntity.Save();
|
|
338
|
-
if (saveResult) {
|
|
339
|
-
this.showNotification(`successfully created folder ${folderName}`, "info");
|
|
340
|
-
let folder = new Folder(folderEntity.Get("ID"), folderEntity.Get("Name"));
|
|
341
|
-
folder.Description = folderEntity.Get("Description");
|
|
342
|
-
let item = new Item(folder, ItemType.Folder);
|
|
343
|
-
let event = new AfterAddFolderEvent(item);
|
|
344
|
-
this.AfterAddFolderEvent.emit(event);
|
|
345
|
-
if (event.Cancel) {
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
//navigate to the newly created folder
|
|
349
|
-
//by raising an item click event
|
|
350
|
-
this.itemClick(item);
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
this.sharedService.CreateSimpleNotification(`Unable to create folder ${folderName}`, "error", 3500);
|
|
354
|
-
}
|
|
355
|
-
this.newFolderText = "Sample Folder";
|
|
356
|
-
});
|
|
335
|
+
//navigate to the newly created folder
|
|
336
|
+
//by raising an item click event
|
|
337
|
+
this.itemClick(item);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
this.sharedService.CreateSimpleNotification(`Unable to create folder ${folderName}`, "error", 3500);
|
|
341
|
+
}
|
|
342
|
+
this.newFolderText = "Sample Folder";
|
|
357
343
|
}
|
|
358
|
-
unlinkItem(item) {
|
|
359
|
-
|
|
360
|
-
yield this.deleteOrUnlink(item, false);
|
|
361
|
-
});
|
|
344
|
+
async unlinkItem(item) {
|
|
345
|
+
await this.deleteOrUnlink(item, false);
|
|
362
346
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
347
|
+
_currentDeleteOrUnlinkState = false;
|
|
348
|
+
async deleteOrUnlink(item, bDelete) {
|
|
349
|
+
this._currentDeleteOrUnlinkState = bDelete;
|
|
350
|
+
if (!item) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
this.selectedItem = item;
|
|
354
|
+
if (item.Type === ItemType.Folder && bDelete) {
|
|
355
|
+
let event = new BeforeDeleteFolderEvent(item);
|
|
356
|
+
this.BeforeDeleteFolderEvent.emit(event);
|
|
357
|
+
if (event.Cancel) {
|
|
367
358
|
return;
|
|
368
359
|
}
|
|
369
|
-
this.
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
this.deleteDialogOpened = true;
|
|
377
|
-
}
|
|
378
|
-
else if (item.Type === ItemType.Resource && bDelete) {
|
|
379
|
-
let event = new BeforeDeleteItemEvent(item);
|
|
380
|
-
this.BeforeDeleteItemEvent.emit(event);
|
|
381
|
-
if (event.Cancel) {
|
|
382
|
-
return;
|
|
383
|
-
}
|
|
384
|
-
this.deleteDialogOpened = true;
|
|
360
|
+
this.deleteDialogOpened = true;
|
|
361
|
+
}
|
|
362
|
+
else if (item.Type === ItemType.Resource && bDelete) {
|
|
363
|
+
let event = new BeforeDeleteItemEvent(item);
|
|
364
|
+
this.BeforeDeleteItemEvent.emit(event);
|
|
365
|
+
if (event.Cancel) {
|
|
366
|
+
return;
|
|
385
367
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
368
|
+
this.deleteDialogOpened = true;
|
|
369
|
+
}
|
|
370
|
+
else if (item.Type === ItemType.Resource && !bDelete) {
|
|
371
|
+
let event = new BeforeUnlinkItemEvent(item);
|
|
372
|
+
this.BeforeUnlinkItemEvent.emit(event);
|
|
373
|
+
if (event.Cancel) {
|
|
374
|
+
return;
|
|
393
375
|
}
|
|
394
|
-
|
|
376
|
+
this.deleteDialogOpened = true;
|
|
377
|
+
}
|
|
395
378
|
}
|
|
396
379
|
goToParent() {
|
|
397
380
|
this.NavigateToParentEvent.emit();
|
|
398
381
|
}
|
|
399
|
-
deleteItem(item) {
|
|
400
|
-
|
|
401
|
-
yield this.deleteOrUnlink(item, true);
|
|
402
|
-
});
|
|
382
|
+
async deleteItem(item) {
|
|
383
|
+
await this.deleteOrUnlink(item, true);
|
|
403
384
|
}
|
|
404
|
-
onConfirmDeleteItem(shouldDelete) {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
this.AfterDeleteFolderEvent.emit(deleteFolderEvent);
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
else if (item.Type === ItemType.Resource && this._currentDeleteOrUnlinkState) {
|
|
419
|
-
yield this.deleteResource(item);
|
|
420
|
-
let deleteItemEvent = new AfterDeleteItemEvent(item);
|
|
421
|
-
this.AfterDeleteItemEvent.emit(deleteItemEvent);
|
|
422
|
-
}
|
|
423
|
-
else if (item.Type === ItemType.Resource && !this._currentDeleteOrUnlinkState) {
|
|
424
|
-
yield this.unlinkResource(item);
|
|
425
|
-
let unlinkItemEvent = new AfterUnlinkItemEvent(item);
|
|
426
|
-
this.AfterUnlinkItemEvent.emit(unlinkItemEvent);
|
|
385
|
+
async onConfirmDeleteItem(shouldDelete) {
|
|
386
|
+
this.deleteDialogOpened = false;
|
|
387
|
+
if (!this.selectedItem || !shouldDelete) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
let item = this.selectedItem;
|
|
391
|
+
if (item.Type === ItemType.Folder && this._currentDeleteOrUnlinkState) {
|
|
392
|
+
let deleteResult = await this.deleteFolder(item);
|
|
393
|
+
if (deleteResult) {
|
|
394
|
+
let deleteFolderEvent = new AfterDeleteFolderEvent(item);
|
|
395
|
+
this.AfterDeleteFolderEvent.emit(deleteFolderEvent);
|
|
427
396
|
}
|
|
428
|
-
|
|
429
|
-
|
|
397
|
+
}
|
|
398
|
+
else if (item.Type === ItemType.Resource && this._currentDeleteOrUnlinkState) {
|
|
399
|
+
await this.deleteResource(item);
|
|
400
|
+
let deleteItemEvent = new AfterDeleteItemEvent(item);
|
|
401
|
+
this.AfterDeleteItemEvent.emit(deleteItemEvent);
|
|
402
|
+
}
|
|
403
|
+
else if (item.Type === ItemType.Resource && !this._currentDeleteOrUnlinkState) {
|
|
404
|
+
await this.unlinkResource(item);
|
|
405
|
+
let unlinkItemEvent = new AfterUnlinkItemEvent(item);
|
|
406
|
+
this.AfterUnlinkItemEvent.emit(unlinkItemEvent);
|
|
407
|
+
}
|
|
408
|
+
this.selectedItem = null;
|
|
430
409
|
}
|
|
431
|
-
deleteFolder(item) {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
410
|
+
async deleteFolder(item) {
|
|
411
|
+
const folder = item.Data;
|
|
412
|
+
//the DB will throw an error if we attempt to delete a folder that has children
|
|
413
|
+
//i.e. sub folders or resources
|
|
414
|
+
//so the default behavior is to notify the user that the delete operation cannot
|
|
415
|
+
//go through
|
|
416
|
+
const folderHasChildren = await this.doesFolderHaveChildren(folder.ID);
|
|
417
|
+
if (folderHasChildren) {
|
|
418
|
+
this.showNotification(`unable to delete folder ${folder.Name} because it has children`, "error");
|
|
419
|
+
return false;
|
|
420
|
+
}
|
|
421
|
+
this.showLoader = true;
|
|
422
|
+
const md = new Metadata();
|
|
423
|
+
let folderEntity = await md.GetEntityObject(this.CategoryEntityName);
|
|
424
|
+
let pkv = new KeyValuePair();
|
|
425
|
+
pkv.FieldName = "ID";
|
|
426
|
+
pkv.Value = folder.ID;
|
|
427
|
+
let compositeKey = new CompositeKey([pkv]);
|
|
428
|
+
//create view browser component - this will be used to display views
|
|
429
|
+
//then create a new component for applications that wraps around the view browser component
|
|
430
|
+
let loadResult = await folderEntity.InnerLoad(compositeKey);
|
|
431
|
+
if (!loadResult) {
|
|
432
|
+
this.sharedService.CreateSimpleNotification(`Unable to fetch folder ${folder.Name}`, "error", 3500);
|
|
433
|
+
this.showLoader = false;
|
|
434
|
+
return false;
|
|
435
|
+
}
|
|
436
|
+
let deleteResult = await folderEntity.Delete();
|
|
437
|
+
if (!deleteResult) {
|
|
438
|
+
this.sharedService.CreateSimpleNotification(`Unable to delete folder ${folder.Name}`, "error", 3500);
|
|
439
|
+
this.showLoader = false;
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
this.sharedService.CreateSimpleNotification(`Successfully deleted folder ${folder.Name}`, "info", 2000);
|
|
444
|
+
this.showLoader = false;
|
|
445
|
+
}
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
async deleteResource(item) {
|
|
449
|
+
let genericEntity = item.Data;
|
|
450
|
+
if (!genericEntity) {
|
|
451
|
+
return false;
|
|
452
|
+
}
|
|
453
|
+
//the only assumption we are making here is that the entityID
|
|
454
|
+
//is a number
|
|
455
|
+
const entityID = this.TryGetID(genericEntity);
|
|
456
|
+
if (entityID && entityID.length > 0) {
|
|
444
457
|
const md = new Metadata();
|
|
445
|
-
let
|
|
458
|
+
let entityObject = await md.GetEntityObject(this.ItemEntityName);
|
|
446
459
|
let pkv = new KeyValuePair();
|
|
447
460
|
pkv.FieldName = "ID";
|
|
448
|
-
pkv.Value =
|
|
461
|
+
pkv.Value = entityID;
|
|
449
462
|
let compositeKey = new CompositeKey([pkv]);
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
return false;
|
|
457
|
-
}
|
|
458
|
-
let deleteResult = yield folderEntity.Delete();
|
|
459
|
-
if (!deleteResult) {
|
|
460
|
-
this.sharedService.CreateSimpleNotification(`Unable to delete folder ${folder.Name}`, "error", 3500);
|
|
461
|
-
this.showLoader = false;
|
|
462
|
-
return false;
|
|
463
|
-
}
|
|
464
|
-
else {
|
|
465
|
-
this.sharedService.CreateSimpleNotification(`Successfully deleted folder ${folder.Name}`, "info", 2000);
|
|
466
|
-
this.showLoader = false;
|
|
467
|
-
}
|
|
468
|
-
return true;
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
deleteResource(item) {
|
|
472
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
473
|
-
let genericEntity = item.Data;
|
|
474
|
-
if (!genericEntity) {
|
|
475
|
-
return false;
|
|
476
|
-
}
|
|
477
|
-
//the only assumption we are making here is that the entityID
|
|
478
|
-
//is a number
|
|
479
|
-
const entityID = this.TryGetID(genericEntity);
|
|
480
|
-
if (entityID && entityID.length > 0) {
|
|
481
|
-
const md = new Metadata();
|
|
482
|
-
let entityObject = yield md.GetEntityObject(this.ItemEntityName);
|
|
483
|
-
let pkv = new KeyValuePair();
|
|
484
|
-
pkv.FieldName = "ID";
|
|
485
|
-
pkv.Value = entityID;
|
|
486
|
-
let compositeKey = new CompositeKey([pkv]);
|
|
487
|
-
let loadResult = yield entityObject.InnerLoad(compositeKey);
|
|
488
|
-
if (loadResult) {
|
|
489
|
-
let deleteResult = yield entityObject.Delete();
|
|
490
|
-
if (deleteResult) {
|
|
491
|
-
this.showNotification(`successfully deleted`, "info");
|
|
492
|
-
return true;
|
|
493
|
-
}
|
|
494
|
-
else {
|
|
495
|
-
this.showNotification(`Unable to delete`, "error");
|
|
496
|
-
}
|
|
463
|
+
let loadResult = await entityObject.InnerLoad(compositeKey);
|
|
464
|
+
if (loadResult) {
|
|
465
|
+
let deleteResult = await entityObject.Delete();
|
|
466
|
+
if (deleteResult) {
|
|
467
|
+
this.showNotification(`successfully deleted`, "info");
|
|
468
|
+
return true;
|
|
497
469
|
}
|
|
498
470
|
else {
|
|
499
|
-
this.showNotification(`
|
|
471
|
+
this.showNotification(`Unable to delete`, "error");
|
|
500
472
|
}
|
|
501
473
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
}
|
|
505
|
-
unlinkResource(item) {
|
|
506
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
507
|
-
// remove the link by removing the Resource Link record
|
|
508
|
-
if (item.ResourceLinkID) {
|
|
509
|
-
const md = new Metadata();
|
|
510
|
-
const link = yield md.GetEntityObject("Resource Links");
|
|
511
|
-
if (yield link.Load(item.ResourceLinkID))
|
|
512
|
-
return yield link.Delete();
|
|
513
|
-
else
|
|
514
|
-
return false;
|
|
474
|
+
else {
|
|
475
|
+
this.showNotification(`unable to fetch`, "error");
|
|
515
476
|
}
|
|
477
|
+
}
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
async unlinkResource(item) {
|
|
481
|
+
// remove the link by removing the Resource Link record
|
|
482
|
+
if (item.ResourceLinkID) {
|
|
483
|
+
const md = new Metadata();
|
|
484
|
+
const link = await md.GetEntityObject("Resource Links");
|
|
485
|
+
if (await link.Load(item.ResourceLinkID))
|
|
486
|
+
return await link.Delete();
|
|
516
487
|
else
|
|
517
488
|
return false;
|
|
518
|
-
}
|
|
489
|
+
}
|
|
490
|
+
else
|
|
491
|
+
return false;
|
|
519
492
|
}
|
|
520
|
-
doesFolderHaveChildren(folderID) {
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
ExtraFilter: `ParentID ='${folderID}'`
|
|
527
|
-
});
|
|
528
|
-
return folderResult && folderResult.Success && folderResult.Results.length > 0;
|
|
493
|
+
async doesFolderHaveChildren(folderID) {
|
|
494
|
+
const md = new Metadata();
|
|
495
|
+
const rv = new RunView();
|
|
496
|
+
const folderResult = await rv.RunView({
|
|
497
|
+
EntityName: this.CategoryEntityName,
|
|
498
|
+
ExtraFilter: `ParentID ='${folderID}'`
|
|
529
499
|
});
|
|
500
|
+
return folderResult && folderResult.Success && folderResult.Results.length > 0;
|
|
530
501
|
}
|
|
531
502
|
showNotification(message, type) {
|
|
532
503
|
if (this.showNotifications) {
|
|
@@ -564,17 +535,15 @@ export class GenericBrowserListComponent {
|
|
|
564
535
|
return item.Name.toLowerCase().includes(filter.toLowerCase());
|
|
565
536
|
});
|
|
566
537
|
}
|
|
567
|
-
SetFavoriteStatus(item) {
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
yield md.SetRecordFavoriteStatus(md.CurrentUser.ID, entityName, compositeKey, item.Favorite);
|
|
577
|
-
});
|
|
538
|
+
async SetFavoriteStatus(item) {
|
|
539
|
+
if (!item) {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
item.Favorite = !item.Favorite;
|
|
543
|
+
const md = new Metadata();
|
|
544
|
+
let entityName = item.Type === ItemType.Folder ? this.CategoryEntityName : this.ItemEntityName;
|
|
545
|
+
let compositeKey = new CompositeKey([{ FieldName: "ID", Value: item.Data.ID }]);
|
|
546
|
+
await md.SetRecordFavoriteStatus(md.CurrentUser.ID, entityName, compositeKey, item.Favorite);
|
|
578
547
|
}
|
|
579
548
|
editItem(item) {
|
|
580
549
|
if (!item) {
|
|
@@ -595,31 +564,29 @@ export class GenericBrowserListComponent {
|
|
|
595
564
|
}
|
|
596
565
|
}
|
|
597
566
|
}
|
|
598
|
-
onDropdownItemClick(data) {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
this.entityFormDialogRef.ShowForm();
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
else {
|
|
619
|
-
let event = new DropdownOptionClickEvent(data.text);
|
|
620
|
-
this.dropdownOptionClickEvent.emit(event);
|
|
567
|
+
async onDropdownItemClick(data) {
|
|
568
|
+
if (!data || !data.text) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
if (data.text === "Folder") {
|
|
572
|
+
this.toggleCreateFolderView();
|
|
573
|
+
}
|
|
574
|
+
else if (data.text === this.resourceName) {
|
|
575
|
+
this.addResourceButtonClicked();
|
|
576
|
+
}
|
|
577
|
+
else if (data.text === this.createNewRecordName) {
|
|
578
|
+
if (this.entityFormDialogRef) {
|
|
579
|
+
// create a new record for the given entity
|
|
580
|
+
const md = new Metadata();
|
|
581
|
+
const newRecord = await md.GetEntityObject(this.entityObjectName);
|
|
582
|
+
this.entityFormDialogRef.Record = newRecord;
|
|
583
|
+
this.entityFormDialogRef.ShowForm();
|
|
621
584
|
}
|
|
622
|
-
}
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
let event = new DropdownOptionClickEvent(data.text);
|
|
588
|
+
this.dropdownOptionClickEvent.emit(event);
|
|
589
|
+
}
|
|
623
590
|
}
|
|
624
591
|
toggleCopyFromView() {
|
|
625
592
|
this.copyFromDialogOpened = !this.copyFromDialogOpened;
|
|
@@ -649,63 +616,63 @@ export class GenericBrowserListComponent {
|
|
|
649
616
|
}
|
|
650
617
|
return "";
|
|
651
618
|
}
|
|
619
|
+
static ɵfac = function GenericBrowserListComponent_Factory(t) { return new (t || GenericBrowserListComponent)(i0.ɵɵdirectiveInject(i1.SharedService)); };
|
|
620
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GenericBrowserListComponent, selectors: [["app-generic-browser-list"]], viewQuery: function GenericBrowserListComponent_Query(rf, ctx) { if (rf & 1) {
|
|
621
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
622
|
+
} if (rf & 2) {
|
|
623
|
+
let _t;
|
|
624
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormDialogRef = _t.first);
|
|
625
|
+
} }, inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", disableEditButton: "disableEditButton", addText: "addText", backText: "backText", ItemEntityName: "ItemEntityName", CategoryEntityName: "CategoryEntityName", selectedFolderID: "selectedFolderID", showNotifications: "showNotifications", categoryEntityID: "categoryEntityID", displayAsGrid: "displayAsGrid", resourceName: "resourceName", viewingResource: "viewingResource", displayItemsAsList: "displayItemsAsList", extraDropdownOptions: "extraDropdownOptions" }, outputs: { BeforeAddFolderEvent: "BeforeAddFolderEvent", BeforeAddItemEvent: "BeforeAddItemEvent", BeforeDeleteFolderEvent: "BeforeDeleteFolderEvent", BeforeDeleteItemEvent: "BeforeDeleteItemEvent", BeforeUnlinkItemEvent: "BeforeUnlinkItemEvent", BeforeUpdateFolderEvent: "BeforeUpdateFolderEvent", BeforeUpdateItemEvent: "BeforeUpdateItemEvent", AfterAddFolderEvent: "AfterAddFolderEvent", AfterAddItemEvent: "AfterAddItemEvent", AfterDeleteFolderEvent: "AfterDeleteFolderEvent", AfterDeleteItemEvent: "AfterDeleteItemEvent", AfterUnlinkItemEvent: "AfterUnlinkItemEvent", AfterUpdateFolderEvent: "AfterUpdateFolderEvent", AfterUpdateItemEvent: "AfterUpdateItemEvent", NavigateToParentEvent: "NavigateToParentEvent", itemClickEvent: "itemClickEvent", backButtonClickEvent: "backButtonClickEvent", dropdownOptionClickEvent: "dropdownOptionClickEvent", viewModeChangeEvent: "viewModeChangeEvent" }, decls: 27, vars: 9, 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", 4, "ngIf"], ["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"], ["type", "converging-spinner"], [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"], [1, "list-btn", 3, "click"], [1, "fa-regular", "fa-trash-can"], [1, "fa-regular", "fa-pen-to-square"], [1, "card-wrapper", "cursor-pointer"], [1, "list-item-icon"], ["title", "Edit Item", 1, "list-btn"], ["title", "Delete Item", 1, "list-btn"], ["title", "Remove Link to Shared 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", "Remove Link to Shared Item", 1, "list-btn", 3, "click"], [1, "fa-solid", "fa-link-slash", 2, "color", "rgb(19, 92, 201)"], ["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 GenericBrowserListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
626
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
627
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5);
|
|
628
|
+
i0.ɵɵtemplate(4, GenericBrowserListComponent_Conditional_4_Template, 2, 0);
|
|
629
|
+
i0.ɵɵelementStart(5, "h4");
|
|
630
|
+
i0.ɵɵtext(6);
|
|
631
|
+
i0.ɵɵelementEnd()();
|
|
632
|
+
i0.ɵɵelementStart(7, "kendo-dropdownbutton", 6);
|
|
633
|
+
i0.ɵɵlistener("itemClick", function GenericBrowserListComponent_Template_kendo_dropdownbutton_itemClick_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropdownItemClick($event)); });
|
|
634
|
+
i0.ɵɵelement(8, "span", 7);
|
|
635
|
+
i0.ɵɵtext(9, " Create New ");
|
|
636
|
+
i0.ɵɵelementEnd()();
|
|
637
|
+
i0.ɵɵelementStart(10, "div", 4)(11, "div", 8)(12, "kendo-textbox", 9, 0);
|
|
638
|
+
i0.ɵɵlistener("keyup", function GenericBrowserListComponent_Template_kendo_textbox_keyup_12_listener() { i0.ɵɵrestoreView(_r1); const searchInput_r4 = i0.ɵɵreference(13); return i0.ɵɵresetView(ctx.onKeyup(searchInput_r4.value)); });
|
|
639
|
+
i0.ɵɵtemplate(14, GenericBrowserListComponent_ng_template_14_Template, 1, 0, "ng-template", 10);
|
|
640
|
+
i0.ɵɵelementEnd()();
|
|
641
|
+
i0.ɵɵelementStart(15, "div", 11)(16, "button", 12);
|
|
642
|
+
i0.ɵɵlistener("click", function GenericBrowserListComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("grid")); });
|
|
643
|
+
i0.ɵɵelement(17, "span", 13);
|
|
644
|
+
i0.ɵɵelementEnd();
|
|
645
|
+
i0.ɵɵelementStart(18, "button", 14);
|
|
646
|
+
i0.ɵɵlistener("click", function GenericBrowserListComponent_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("list")); });
|
|
647
|
+
i0.ɵɵelement(19, "span", 15);
|
|
648
|
+
i0.ɵɵelementEnd()()();
|
|
649
|
+
i0.ɵɵelementStart(20, "div", 16);
|
|
650
|
+
i0.ɵɵtemplate(21, GenericBrowserListComponent_kendo_loader_21_Template, 1, 0, "kendo-loader", 17)(22, GenericBrowserListComponent_Conditional_22_Template, 2, 1);
|
|
651
|
+
i0.ɵɵelementEnd()();
|
|
652
|
+
i0.ɵɵtemplate(23, GenericBrowserListComponent_kendo_dialog_23_Template, 10, 4, "kendo-dialog", 18)(24, GenericBrowserListComponent_kendo_dialog_24_Template, 8, 2, "kendo-dialog", 19);
|
|
653
|
+
i0.ɵɵelement(25, "mj-entity-form-dialog", 20, 1);
|
|
654
|
+
i0.ɵɵelementEnd();
|
|
655
|
+
} if (rf & 2) {
|
|
656
|
+
i0.ɵɵadvance(4);
|
|
657
|
+
i0.ɵɵconditional(ctx.selectedFolderID ? 4 : -1);
|
|
658
|
+
i0.ɵɵadvance(2);
|
|
659
|
+
i0.ɵɵtextInterpolate(ctx.title);
|
|
660
|
+
i0.ɵɵadvance();
|
|
661
|
+
i0.ɵɵproperty("data", ctx.dropdownOptions);
|
|
662
|
+
i0.ɵɵadvance(5);
|
|
663
|
+
i0.ɵɵproperty("clearButton", true);
|
|
664
|
+
i0.ɵɵadvance(2);
|
|
665
|
+
i0.ɵɵproperty("showSeparator", true);
|
|
666
|
+
i0.ɵɵadvance(7);
|
|
667
|
+
i0.ɵɵproperty("ngIf", ctx.showLoader);
|
|
668
|
+
i0.ɵɵadvance();
|
|
669
|
+
i0.ɵɵconditional(!ctx.showLoader ? 22 : -1);
|
|
670
|
+
i0.ɵɵadvance();
|
|
671
|
+
i0.ɵɵproperty("ngIf", ctx.deleteDialogOpened);
|
|
672
|
+
i0.ɵɵadvance();
|
|
673
|
+
i0.ɵɵproperty("ngIf", ctx.createFolderDialogOpened);
|
|
674
|
+
} }, 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}"] });
|
|
652
675
|
}
|
|
653
|
-
GenericBrowserListComponent.ɵfac = function GenericBrowserListComponent_Factory(t) { return new (t || GenericBrowserListComponent)(i0.ɵɵdirectiveInject(i1.SharedService)); };
|
|
654
|
-
GenericBrowserListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GenericBrowserListComponent, selectors: [["app-generic-browser-list"]], viewQuery: function GenericBrowserListComponent_Query(rf, ctx) { if (rf & 1) {
|
|
655
|
-
i0.ɵɵviewQuery(_c0, 5);
|
|
656
|
-
} if (rf & 2) {
|
|
657
|
-
let _t;
|
|
658
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormDialogRef = _t.first);
|
|
659
|
-
} }, inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", disableEditButton: "disableEditButton", addText: "addText", backText: "backText", ItemEntityName: "ItemEntityName", CategoryEntityName: "CategoryEntityName", selectedFolderID: "selectedFolderID", showNotifications: "showNotifications", categoryEntityID: "categoryEntityID", displayAsGrid: "displayAsGrid", resourceName: "resourceName", viewingResource: "viewingResource", displayItemsAsList: "displayItemsAsList", extraDropdownOptions: "extraDropdownOptions" }, outputs: { BeforeAddFolderEvent: "BeforeAddFolderEvent", BeforeAddItemEvent: "BeforeAddItemEvent", BeforeDeleteFolderEvent: "BeforeDeleteFolderEvent", BeforeDeleteItemEvent: "BeforeDeleteItemEvent", BeforeUnlinkItemEvent: "BeforeUnlinkItemEvent", BeforeUpdateFolderEvent: "BeforeUpdateFolderEvent", BeforeUpdateItemEvent: "BeforeUpdateItemEvent", AfterAddFolderEvent: "AfterAddFolderEvent", AfterAddItemEvent: "AfterAddItemEvent", AfterDeleteFolderEvent: "AfterDeleteFolderEvent", AfterDeleteItemEvent: "AfterDeleteItemEvent", AfterUnlinkItemEvent: "AfterUnlinkItemEvent", AfterUpdateFolderEvent: "AfterUpdateFolderEvent", AfterUpdateItemEvent: "AfterUpdateItemEvent", NavigateToParentEvent: "NavigateToParentEvent", itemClickEvent: "itemClickEvent", backButtonClickEvent: "backButtonClickEvent", dropdownOptionClickEvent: "dropdownOptionClickEvent", viewModeChangeEvent: "viewModeChangeEvent" }, decls: 27, vars: 9, 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", 4, "ngIf"], ["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"], ["type", "converging-spinner"], [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"], [1, "list-btn", 3, "click"], [1, "fa-regular", "fa-trash-can"], [1, "fa-regular", "fa-pen-to-square"], [1, "card-wrapper", "cursor-pointer"], [1, "list-item-icon"], ["title", "Edit Item", 1, "list-btn"], ["title", "Delete Item", 1, "list-btn"], ["title", "Remove Link to Shared 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", "Remove Link to Shared Item", 1, "list-btn", 3, "click"], [1, "fa-solid", "fa-link-slash", 2, "color", "rgb(19, 92, 201)"], ["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 GenericBrowserListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
660
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
661
|
-
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5);
|
|
662
|
-
i0.ɵɵtemplate(4, GenericBrowserListComponent_Conditional_4_Template, 2, 0);
|
|
663
|
-
i0.ɵɵelementStart(5, "h4");
|
|
664
|
-
i0.ɵɵtext(6);
|
|
665
|
-
i0.ɵɵelementEnd()();
|
|
666
|
-
i0.ɵɵelementStart(7, "kendo-dropdownbutton", 6);
|
|
667
|
-
i0.ɵɵlistener("itemClick", function GenericBrowserListComponent_Template_kendo_dropdownbutton_itemClick_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropdownItemClick($event)); });
|
|
668
|
-
i0.ɵɵelement(8, "span", 7);
|
|
669
|
-
i0.ɵɵtext(9, " Create New ");
|
|
670
|
-
i0.ɵɵelementEnd()();
|
|
671
|
-
i0.ɵɵelementStart(10, "div", 4)(11, "div", 8)(12, "kendo-textbox", 9, 0);
|
|
672
|
-
i0.ɵɵlistener("keyup", function GenericBrowserListComponent_Template_kendo_textbox_keyup_12_listener() { i0.ɵɵrestoreView(_r1); const searchInput_r4 = i0.ɵɵreference(13); return i0.ɵɵresetView(ctx.onKeyup(searchInput_r4.value)); });
|
|
673
|
-
i0.ɵɵtemplate(14, GenericBrowserListComponent_ng_template_14_Template, 1, 0, "ng-template", 10);
|
|
674
|
-
i0.ɵɵelementEnd()();
|
|
675
|
-
i0.ɵɵelementStart(15, "div", 11)(16, "button", 12);
|
|
676
|
-
i0.ɵɵlistener("click", function GenericBrowserListComponent_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("grid")); });
|
|
677
|
-
i0.ɵɵelement(17, "span", 13);
|
|
678
|
-
i0.ɵɵelementEnd();
|
|
679
|
-
i0.ɵɵelementStart(18, "button", 14);
|
|
680
|
-
i0.ɵɵlistener("click", function GenericBrowserListComponent_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeViewMode("list")); });
|
|
681
|
-
i0.ɵɵelement(19, "span", 15);
|
|
682
|
-
i0.ɵɵelementEnd()()();
|
|
683
|
-
i0.ɵɵelementStart(20, "div", 16);
|
|
684
|
-
i0.ɵɵtemplate(21, GenericBrowserListComponent_kendo_loader_21_Template, 1, 0, "kendo-loader", 17)(22, GenericBrowserListComponent_Conditional_22_Template, 2, 1);
|
|
685
|
-
i0.ɵɵelementEnd()();
|
|
686
|
-
i0.ɵɵtemplate(23, GenericBrowserListComponent_kendo_dialog_23_Template, 10, 4, "kendo-dialog", 18)(24, GenericBrowserListComponent_kendo_dialog_24_Template, 8, 2, "kendo-dialog", 19);
|
|
687
|
-
i0.ɵɵelement(25, "mj-entity-form-dialog", 20, 1);
|
|
688
|
-
i0.ɵɵelementEnd();
|
|
689
|
-
} if (rf & 2) {
|
|
690
|
-
i0.ɵɵadvance(4);
|
|
691
|
-
i0.ɵɵconditional(ctx.selectedFolderID ? 4 : -1);
|
|
692
|
-
i0.ɵɵadvance(2);
|
|
693
|
-
i0.ɵɵtextInterpolate(ctx.title);
|
|
694
|
-
i0.ɵɵadvance();
|
|
695
|
-
i0.ɵɵproperty("data", ctx.dropdownOptions);
|
|
696
|
-
i0.ɵɵadvance(5);
|
|
697
|
-
i0.ɵɵproperty("clearButton", true);
|
|
698
|
-
i0.ɵɵadvance(2);
|
|
699
|
-
i0.ɵɵproperty("showSeparator", true);
|
|
700
|
-
i0.ɵɵadvance(7);
|
|
701
|
-
i0.ɵɵproperty("ngIf", ctx.showLoader);
|
|
702
|
-
i0.ɵɵadvance();
|
|
703
|
-
i0.ɵɵconditional(!ctx.showLoader ? 22 : -1);
|
|
704
|
-
i0.ɵɵadvance();
|
|
705
|
-
i0.ɵɵproperty("ngIf", ctx.deleteDialogOpened);
|
|
706
|
-
i0.ɵɵadvance();
|
|
707
|
-
i0.ɵɵproperty("ngIf", ctx.createFolderDialogOpened);
|
|
708
|
-
} }, 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}"] });
|
|
709
676
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GenericBrowserListComponent, [{
|
|
710
677
|
type: Component,
|
|
711
678
|
args: [{ selector: 'app-generic-browser-list', 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(selectedFolderID){\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 <kendo-loader *ngIf=\"showLoader\" type=\"converging-spinner\"></kendo-loader>\n @if(!showLoader){\n @if(displayAsGrid){\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(disableEditButton){\n <button class=\"list-btn\" (click)=\"editItem(dataItem)\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n <button class=\"list-btn\" (click)=\"deleteItem(dataItem)\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\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(!disableEditButton && (!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(!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 (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"] }]
|