@memberjunction/ng-dashboard-viewer 3.2.0 → 3.3.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.
|
@@ -368,116 +368,175 @@ function DashboardBrowserComponent_div_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
368
368
|
i0.ɵɵadvance();
|
|
369
369
|
i0.ɵɵproperty("ngForOf", ctx_r1.FilteredDashboards)("ngForTrackBy", ctx_r1.TrackByDashboard);
|
|
370
370
|
} }
|
|
371
|
-
function
|
|
372
|
-
i0.ɵɵ
|
|
373
|
-
i0.ɵɵ
|
|
374
|
-
i0.ɵɵ
|
|
371
|
+
function DashboardBrowserComponent_div_23_ng_container_2_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
373
|
+
i0.ɵɵelementStart(0, "div", 124)(1, "button", 125);
|
|
374
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_ng_container_2_div_14_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCreateDashboard()); });
|
|
375
|
+
i0.ɵɵelement(2, "i", 43);
|
|
376
|
+
i0.ɵɵtext(3, " Create Your First Dashboard ");
|
|
377
|
+
i0.ɵɵelementEnd()();
|
|
375
378
|
} }
|
|
376
|
-
function
|
|
377
|
-
i0.ɵɵ
|
|
378
|
-
i0.ɵɵ
|
|
379
|
+
function DashboardBrowserComponent_div_23_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
380
|
+
i0.ɵɵelementContainerStart(0);
|
|
381
|
+
i0.ɵɵelementStart(1, "div", 109)(2, "div", 110);
|
|
382
|
+
i0.ɵɵelement(3, "i", 111);
|
|
379
383
|
i0.ɵɵelementEnd();
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
i0.ɵɵelementStart(0, "h3");
|
|
383
|
-
i0.ɵɵtext(1, "This folder is empty");
|
|
384
|
+
i0.ɵɵelementStart(4, "div", 112);
|
|
385
|
+
i0.ɵɵelement(5, "i", 48);
|
|
384
386
|
i0.ɵɵelementEnd();
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
i0.ɵɵelementStart(0, "h3");
|
|
388
|
-
i0.ɵɵtext(1, "No matching dashboards");
|
|
387
|
+
i0.ɵɵelementStart(6, "div", 113);
|
|
388
|
+
i0.ɵɵelement(7, "i", 114);
|
|
389
389
|
i0.ɵɵelementEnd();
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
i0.ɵɵ
|
|
393
|
-
i0.ɵɵ
|
|
390
|
+
i0.ɵɵelementStart(8, "div", 115);
|
|
391
|
+
i0.ɵɵelement(9, "i", 116);
|
|
392
|
+
i0.ɵɵelementEnd()();
|
|
393
|
+
i0.ɵɵelementStart(10, "h2", 117);
|
|
394
|
+
i0.ɵɵtext(11, "Welcome to Dashboards");
|
|
394
395
|
i0.ɵɵelementEnd();
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
i0.ɵɵelementStart(0, "p");
|
|
398
|
-
i0.ɵɵtext(1, " All dashboards are organized into categories. Browse categories or create a new dashboard here. ");
|
|
396
|
+
i0.ɵɵelementStart(12, "p", 118);
|
|
397
|
+
i0.ɵɵtext(13, " Create custom dashboards to visualize your data, track key metrics, and monitor important information all in one place. ");
|
|
399
398
|
i0.ɵɵelementEnd();
|
|
399
|
+
i0.ɵɵtemplate(14, DashboardBrowserComponent_div_23_ng_container_2_div_14_Template, 4, 0, "div", 119);
|
|
400
|
+
i0.ɵɵelementStart(15, "div", 120)(16, "div", 121);
|
|
401
|
+
i0.ɵɵelement(17, "i", 122);
|
|
402
|
+
i0.ɵɵelementStart(18, "span");
|
|
403
|
+
i0.ɵɵtext(19, "Customizable layouts");
|
|
404
|
+
i0.ɵɵelementEnd()();
|
|
405
|
+
i0.ɵɵelementStart(20, "div", 121);
|
|
406
|
+
i0.ɵɵelement(21, "i", 123);
|
|
407
|
+
i0.ɵɵelementStart(22, "span");
|
|
408
|
+
i0.ɵɵtext(23, "Connect to your data");
|
|
409
|
+
i0.ɵɵelementEnd()();
|
|
410
|
+
i0.ɵɵelementStart(24, "div", 121);
|
|
411
|
+
i0.ɵɵelement(25, "i", 87);
|
|
412
|
+
i0.ɵɵelementStart(26, "span");
|
|
413
|
+
i0.ɵɵtext(27, "Share with your team");
|
|
414
|
+
i0.ɵɵelementEnd()()();
|
|
415
|
+
i0.ɵɵelementContainerEnd();
|
|
416
|
+
} if (rf & 2) {
|
|
417
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
418
|
+
i0.ɵɵadvance(14);
|
|
419
|
+
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateButton);
|
|
400
420
|
} }
|
|
401
|
-
function
|
|
402
|
-
i0.ɵɵ
|
|
403
|
-
i0.ɵɵ
|
|
404
|
-
i0.ɵɵ
|
|
421
|
+
function DashboardBrowserComponent_div_23_ng_container_3_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
422
|
+
const _r25 = i0.ɵɵgetCurrentView();
|
|
423
|
+
i0.ɵɵelementStart(0, "div", 124)(1, "button", 42);
|
|
424
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_ng_container_3_div_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCreateDashboard()); });
|
|
425
|
+
i0.ɵɵelement(2, "i", 43);
|
|
426
|
+
i0.ɵɵtext(3, " Create Dashboard ");
|
|
427
|
+
i0.ɵɵelementEnd()();
|
|
405
428
|
} }
|
|
406
|
-
function
|
|
407
|
-
i0.ɵɵ
|
|
408
|
-
i0.ɵɵ
|
|
429
|
+
function DashboardBrowserComponent_div_23_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
430
|
+
i0.ɵɵelementContainerStart(0);
|
|
431
|
+
i0.ɵɵelementStart(1, "div", 126);
|
|
432
|
+
i0.ɵɵelement(2, "i", 36);
|
|
433
|
+
i0.ɵɵelementEnd();
|
|
434
|
+
i0.ɵɵelementStart(3, "h3", 117);
|
|
435
|
+
i0.ɵɵtext(4, "This folder is empty");
|
|
409
436
|
i0.ɵɵelementEnd();
|
|
437
|
+
i0.ɵɵelementStart(5, "p", 118);
|
|
438
|
+
i0.ɵɵtext(6, " Add dashboards or create sub-folders to organize your content. ");
|
|
439
|
+
i0.ɵɵelementEnd();
|
|
440
|
+
i0.ɵɵtemplate(7, DashboardBrowserComponent_div_23_ng_container_3_div_7_Template, 4, 0, "div", 119);
|
|
441
|
+
i0.ɵɵelementContainerEnd();
|
|
442
|
+
} if (rf & 2) {
|
|
443
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
444
|
+
i0.ɵɵadvance(7);
|
|
445
|
+
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateButton);
|
|
410
446
|
} }
|
|
411
|
-
function
|
|
412
|
-
const
|
|
413
|
-
i0.ɵɵelementStart(0, "button", 42);
|
|
414
|
-
i0.ɵɵlistener("click", function
|
|
415
|
-
i0.ɵɵelement(
|
|
416
|
-
i0.ɵɵtext(
|
|
447
|
+
function DashboardBrowserComponent_div_23_ng_container_4_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
448
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
449
|
+
i0.ɵɵelementStart(0, "div", 124)(1, "button", 42);
|
|
450
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_ng_container_4_div_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCreateDashboard()); });
|
|
451
|
+
i0.ɵɵelement(2, "i", 43);
|
|
452
|
+
i0.ɵɵtext(3, " Create Dashboard ");
|
|
453
|
+
i0.ɵɵelementEnd()();
|
|
454
|
+
} }
|
|
455
|
+
function DashboardBrowserComponent_div_23_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
456
|
+
i0.ɵɵelementContainerStart(0);
|
|
457
|
+
i0.ɵɵelementStart(1, "div", 127);
|
|
458
|
+
i0.ɵɵelement(2, "i", 70);
|
|
459
|
+
i0.ɵɵelementEnd();
|
|
460
|
+
i0.ɵɵelementStart(3, "h3", 117);
|
|
461
|
+
i0.ɵɵtext(4, "No uncategorized dashboards");
|
|
417
462
|
i0.ɵɵelementEnd();
|
|
463
|
+
i0.ɵɵelementStart(5, "p", 118);
|
|
464
|
+
i0.ɵɵtext(6, " All your dashboards are organized into folders. Browse the folders above or create a new dashboard here. ");
|
|
465
|
+
i0.ɵɵelementEnd();
|
|
466
|
+
i0.ɵɵtemplate(7, DashboardBrowserComponent_div_23_ng_container_4_div_7_Template, 4, 0, "div", 119);
|
|
467
|
+
i0.ɵɵelementContainerEnd();
|
|
468
|
+
} if (rf & 2) {
|
|
469
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
470
|
+
i0.ɵɵadvance(7);
|
|
471
|
+
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateButton);
|
|
418
472
|
} }
|
|
419
|
-
function
|
|
420
|
-
const
|
|
421
|
-
i0.ɵɵ
|
|
422
|
-
i0.ɵɵ
|
|
423
|
-
i0.ɵɵelement(
|
|
424
|
-
i0.ɵɵ
|
|
473
|
+
function DashboardBrowserComponent_div_23_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
474
|
+
const _r27 = i0.ɵɵgetCurrentView();
|
|
475
|
+
i0.ɵɵelementContainerStart(0);
|
|
476
|
+
i0.ɵɵelementStart(1, "div", 128);
|
|
477
|
+
i0.ɵɵelement(2, "i", 129);
|
|
478
|
+
i0.ɵɵelementEnd();
|
|
479
|
+
i0.ɵɵelementStart(3, "h3", 117);
|
|
480
|
+
i0.ɵɵtext(4, "No results found");
|
|
481
|
+
i0.ɵɵelementEnd();
|
|
482
|
+
i0.ɵɵelementStart(5, "p", 118);
|
|
483
|
+
i0.ɵɵtext(6, " No dashboards or folders match \"");
|
|
484
|
+
i0.ɵɵelementStart(7, "strong");
|
|
485
|
+
i0.ɵɵtext(8);
|
|
425
486
|
i0.ɵɵelementEnd();
|
|
487
|
+
i0.ɵɵtext(9, "\". Try a different search term. ");
|
|
488
|
+
i0.ɵɵelementEnd();
|
|
489
|
+
i0.ɵɵelementStart(10, "div", 124)(11, "button", 130);
|
|
490
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_ng_container_5_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ClearSearch()); });
|
|
491
|
+
i0.ɵɵelement(12, "i", 40);
|
|
492
|
+
i0.ɵɵtext(13, " Clear Search ");
|
|
493
|
+
i0.ɵɵelementEnd()();
|
|
494
|
+
i0.ɵɵelementContainerEnd();
|
|
495
|
+
} if (rf & 2) {
|
|
496
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
497
|
+
i0.ɵɵadvance(8);
|
|
498
|
+
i0.ɵɵtextInterpolate(ctx_r1.SearchText);
|
|
426
499
|
} }
|
|
427
500
|
function DashboardBrowserComponent_div_23_Template(rf, ctx) { if (rf & 1) {
|
|
428
501
|
i0.ɵɵelementStart(0, "div", 107)(1, "div", 108);
|
|
429
|
-
i0.ɵɵ
|
|
430
|
-
i0.ɵɵelementEnd();
|
|
431
|
-
i0.ɵɵtemplate(3, DashboardBrowserComponent_div_23_h3_3_Template, 2, 0, "h3", 10)(4, DashboardBrowserComponent_div_23_h3_4_Template, 2, 0, "h3", 10)(5, DashboardBrowserComponent_div_23_h3_5_Template, 2, 0, "h3", 10)(6, DashboardBrowserComponent_div_23_h3_6_Template, 2, 0, "h3", 10)(7, DashboardBrowserComponent_div_23_p_7_Template, 2, 0, "p", 10)(8, DashboardBrowserComponent_div_23_p_8_Template, 2, 0, "p", 10)(9, DashboardBrowserComponent_div_23_p_9_Template, 2, 0, "p", 10)(10, DashboardBrowserComponent_div_23_p_10_Template, 2, 0, "p", 10)(11, DashboardBrowserComponent_div_23_button_11_Template, 3, 0, "button", 110)(12, DashboardBrowserComponent_div_23_button_12_Template, 3, 0, "button", 111);
|
|
432
|
-
i0.ɵɵelementEnd();
|
|
502
|
+
i0.ɵɵtemplate(2, DashboardBrowserComponent_div_23_ng_container_2_Template, 28, 1, "ng-container", 10)(3, DashboardBrowserComponent_div_23_ng_container_3_Template, 8, 1, "ng-container", 10)(4, DashboardBrowserComponent_div_23_ng_container_4_Template, 8, 1, "ng-container", 10)(5, DashboardBrowserComponent_div_23_ng_container_5_Template, 14, 1, "ng-container", 10);
|
|
503
|
+
i0.ɵɵelementEnd()();
|
|
433
504
|
} if (rf & 2) {
|
|
434
505
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
435
|
-
i0.ɵɵadvance(
|
|
506
|
+
i0.ɵɵadvance(2);
|
|
436
507
|
i0.ɵɵproperty("ngIf", ctx_r1.IsAtRoot && ctx_r1.Dashboards.length === 0);
|
|
437
508
|
i0.ɵɵadvance();
|
|
438
|
-
i0.ɵɵproperty("ngIf", ctx_r1.IsAtRoot && ctx_r1.Dashboards.length > 0 && !ctx_r1.SearchText);
|
|
439
|
-
i0.ɵɵadvance();
|
|
440
509
|
i0.ɵɵproperty("ngIf", !ctx_r1.IsAtRoot && !ctx_r1.SearchText);
|
|
441
510
|
i0.ɵɵadvance();
|
|
442
|
-
i0.ɵɵproperty("ngIf", ctx_r1.SearchText);
|
|
443
|
-
i0.ɵɵadvance();
|
|
444
|
-
i0.ɵɵproperty("ngIf", ctx_r1.IsAtRoot && ctx_r1.Dashboards.length === 0);
|
|
445
|
-
i0.ɵɵadvance();
|
|
446
511
|
i0.ɵɵproperty("ngIf", ctx_r1.IsAtRoot && ctx_r1.Dashboards.length > 0 && !ctx_r1.SearchText);
|
|
447
512
|
i0.ɵɵadvance();
|
|
448
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.IsAtRoot && !ctx_r1.SearchText);
|
|
449
|
-
i0.ɵɵadvance();
|
|
450
513
|
i0.ɵɵproperty("ngIf", ctx_r1.SearchText);
|
|
451
|
-
i0.ɵɵadvance();
|
|
452
|
-
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateButton);
|
|
453
|
-
i0.ɵɵadvance();
|
|
454
|
-
i0.ɵɵproperty("ngIf", ctx_r1.Dashboards.length > 0);
|
|
455
514
|
} }
|
|
456
515
|
function DashboardBrowserComponent_div_24_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
457
|
-
const
|
|
458
|
-
i0.ɵɵelementStart(0, "div",
|
|
459
|
-
i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_div_7_Template_div_dragover_0_listener($event) { const
|
|
516
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
517
|
+
i0.ɵɵelementStart(0, "div", 134);
|
|
518
|
+
i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_div_7_Template_div_dragover_0_listener($event) { const cat_r30 = i0.ɵɵrestoreView(_r29).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDragOverCategory(cat_r30.ID, $event)); })("dragleave", function DashboardBrowserComponent_div_24_div_7_Template_div_dragleave_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDragLeaveCategory()); })("drop", function DashboardBrowserComponent_div_24_div_7_Template_div_drop_0_listener($event) { const cat_r30 = i0.ɵɵrestoreView(_r29).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDropOnCategory(cat_r30.ID, $event)); });
|
|
460
519
|
i0.ɵɵelement(1, "i", 62);
|
|
461
520
|
i0.ɵɵtext(2);
|
|
462
521
|
i0.ɵɵelementEnd();
|
|
463
522
|
} if (rf & 2) {
|
|
464
|
-
const
|
|
523
|
+
const cat_r30 = ctx.$implicit;
|
|
465
524
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
466
|
-
i0.ɵɵclassProp("active", ctx_r1.DropTargetCategoryId ===
|
|
525
|
+
i0.ɵɵclassProp("active", ctx_r1.DropTargetCategoryId === cat_r30.ID);
|
|
467
526
|
i0.ɵɵadvance(2);
|
|
468
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
527
|
+
i0.ɵɵtextInterpolate1(" ", cat_r30.Name, " ");
|
|
469
528
|
} }
|
|
470
529
|
function DashboardBrowserComponent_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
471
|
-
const
|
|
472
|
-
i0.ɵɵelementStart(0, "div",
|
|
530
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
531
|
+
i0.ɵɵelementStart(0, "div", 131)(1, "div", 132);
|
|
473
532
|
i0.ɵɵtext(2, "Drop to move to category:");
|
|
474
533
|
i0.ɵɵelementEnd();
|
|
475
|
-
i0.ɵɵelementStart(3, "div",
|
|
476
|
-
i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_Template_div_dragover_4_listener($event) { i0.ɵɵrestoreView(
|
|
534
|
+
i0.ɵɵelementStart(3, "div", 133)(4, "div", 134);
|
|
535
|
+
i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_Template_div_dragover_4_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDragOverCategory(null, $event)); })("dragleave", function DashboardBrowserComponent_div_24_Template_div_dragleave_4_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDragLeaveCategory()); })("drop", function DashboardBrowserComponent_div_24_Template_div_drop_4_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDropOnCategory(null, $event)); });
|
|
477
536
|
i0.ɵɵelement(5, "i", 36);
|
|
478
537
|
i0.ɵɵtext(6, " Uncategorized ");
|
|
479
538
|
i0.ɵɵelementEnd();
|
|
480
|
-
i0.ɵɵtemplate(7, DashboardBrowserComponent_div_24_div_7_Template, 3, 3, "div",
|
|
539
|
+
i0.ɵɵtemplate(7, DashboardBrowserComponent_div_24_div_7_Template, 3, 3, "div", 135);
|
|
481
540
|
i0.ɵɵelementEnd()();
|
|
482
541
|
} if (rf & 2) {
|
|
483
542
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -487,42 +546,42 @@ function DashboardBrowserComponent_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
|
487
546
|
i0.ɵɵproperty("ngForOf", ctx_r1.Categories)("ngForTrackBy", ctx_r1.TrackByCategory);
|
|
488
547
|
} }
|
|
489
548
|
function DashboardBrowserComponent_div_26_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
490
|
-
const
|
|
491
|
-
i0.ɵɵelementStart(0, "div",
|
|
492
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_div_14_Template_div_click_0_listener() { const
|
|
549
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
550
|
+
i0.ɵɵelementStart(0, "div", 142);
|
|
551
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_div_14_Template_div_click_0_listener() { const cat_r33 = i0.ɵɵrestoreView(_r32).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ConfirmMove(cat_r33.ID)); });
|
|
493
552
|
i0.ɵɵelement(1, "i", 62);
|
|
494
553
|
i0.ɵɵtext(2);
|
|
495
554
|
i0.ɵɵelementEnd();
|
|
496
555
|
} if (rf & 2) {
|
|
497
|
-
const
|
|
556
|
+
const cat_r33 = ctx.$implicit;
|
|
498
557
|
i0.ɵɵadvance(2);
|
|
499
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
558
|
+
i0.ɵɵtextInterpolate1(" ", cat_r33.Name, " ");
|
|
500
559
|
} }
|
|
501
560
|
function DashboardBrowserComponent_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
502
|
-
const
|
|
503
|
-
i0.ɵɵelementStart(0, "div",
|
|
504
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
505
|
-
i0.ɵɵelementStart(1, "div",
|
|
506
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
507
|
-
i0.ɵɵelementStart(2, "div",
|
|
561
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
562
|
+
i0.ɵɵelementStart(0, "div", 136);
|
|
563
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
|
|
564
|
+
i0.ɵɵelementStart(1, "div", 137);
|
|
565
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r31); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
566
|
+
i0.ɵɵelementStart(2, "div", 138)(3, "h3");
|
|
508
567
|
i0.ɵɵtext(4, "Move to Category");
|
|
509
568
|
i0.ɵɵelementEnd();
|
|
510
|
-
i0.ɵɵelementStart(5, "button",
|
|
511
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_5_listener() { i0.ɵɵrestoreView(
|
|
569
|
+
i0.ɵɵelementStart(5, "button", 139);
|
|
570
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
|
|
512
571
|
i0.ɵɵelement(6, "i", 40);
|
|
513
572
|
i0.ɵɵelementEnd()();
|
|
514
|
-
i0.ɵɵelementStart(7, "div",
|
|
573
|
+
i0.ɵɵelementStart(7, "div", 140)(8, "p");
|
|
515
574
|
i0.ɵɵtext(9);
|
|
516
575
|
i0.ɵɵelementEnd();
|
|
517
|
-
i0.ɵɵelementStart(10, "div",
|
|
518
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_11_listener() { i0.ɵɵrestoreView(
|
|
576
|
+
i0.ɵɵelementStart(10, "div", 141)(11, "div", 142);
|
|
577
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_11_listener() { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmMove(null)); });
|
|
519
578
|
i0.ɵɵelement(12, "i", 36);
|
|
520
579
|
i0.ɵɵtext(13, " Uncategorized ");
|
|
521
580
|
i0.ɵɵelementEnd();
|
|
522
|
-
i0.ɵɵtemplate(14, DashboardBrowserComponent_div_26_div_14_Template, 3, 1, "div",
|
|
581
|
+
i0.ɵɵtemplate(14, DashboardBrowserComponent_div_26_div_14_Template, 3, 1, "div", 143);
|
|
523
582
|
i0.ɵɵelementEnd()();
|
|
524
|
-
i0.ɵɵelementStart(15, "div",
|
|
525
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_16_listener() { i0.ɵɵrestoreView(
|
|
583
|
+
i0.ɵɵelementStart(15, "div", 144)(16, "button", 130);
|
|
584
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
|
|
526
585
|
i0.ɵɵtext(17, "Cancel");
|
|
527
586
|
i0.ɵɵelementEnd()()()();
|
|
528
587
|
} if (rf & 2) {
|
|
@@ -533,39 +592,39 @@ function DashboardBrowserComponent_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
|
533
592
|
i0.ɵɵproperty("ngForOf", ctx_r1.Categories)("ngForTrackBy", ctx_r1.TrackByCategory);
|
|
534
593
|
} }
|
|
535
594
|
function DashboardBrowserComponent_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
536
|
-
const
|
|
537
|
-
i0.ɵɵelementStart(0, "div",
|
|
538
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
539
|
-
i0.ɵɵelementStart(1, "div",
|
|
540
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
541
|
-
i0.ɵɵelementStart(2, "div",
|
|
595
|
+
const _r34 = i0.ɵɵgetCurrentView();
|
|
596
|
+
i0.ɵɵelementStart(0, "div", 145);
|
|
597
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
|
|
598
|
+
i0.ɵɵelementStart(1, "div", 146);
|
|
599
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r34); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
600
|
+
i0.ɵɵelementStart(2, "div", 138)(3, "h3");
|
|
542
601
|
i0.ɵɵelement(4, "i", 49);
|
|
543
602
|
i0.ɵɵtext(5, " Create Category ");
|
|
544
603
|
i0.ɵɵelementEnd();
|
|
545
|
-
i0.ɵɵelementStart(6, "button",
|
|
546
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_6_listener() { i0.ɵɵrestoreView(
|
|
604
|
+
i0.ɵɵelementStart(6, "button", 139);
|
|
605
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
|
|
547
606
|
i0.ɵɵelement(7, "i", 40);
|
|
548
607
|
i0.ɵɵelementEnd()();
|
|
549
|
-
i0.ɵɵelementStart(8, "div",
|
|
608
|
+
i0.ɵɵelementStart(8, "div", 140)(9, "div", 147)(10, "label", 148);
|
|
550
609
|
i0.ɵɵtext(11, "Name *");
|
|
551
610
|
i0.ɵɵelementEnd();
|
|
552
|
-
i0.ɵɵelementStart(12, "input",
|
|
553
|
-
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(
|
|
554
|
-
i0.ɵɵlistener("keyup.enter", function DashboardBrowserComponent_div_27_Template_input_keyup_enter_12_listener() { i0.ɵɵrestoreView(
|
|
611
|
+
i0.ɵɵelementStart(12, "input", 149);
|
|
612
|
+
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.NewCategoryName, $event) || (ctx_r1.NewCategoryName = $event); return i0.ɵɵresetView($event); });
|
|
613
|
+
i0.ɵɵlistener("keyup.enter", function DashboardBrowserComponent_div_27_Template_input_keyup_enter_12_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmCreateCategory()); });
|
|
555
614
|
i0.ɵɵelementEnd()();
|
|
556
|
-
i0.ɵɵelementStart(13, "div",
|
|
615
|
+
i0.ɵɵelementStart(13, "div", 147)(14, "label", 150);
|
|
557
616
|
i0.ɵɵtext(15, "Description");
|
|
558
617
|
i0.ɵɵelementEnd();
|
|
559
|
-
i0.ɵɵelementStart(16, "textarea",
|
|
560
|
-
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_textarea_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(
|
|
618
|
+
i0.ɵɵelementStart(16, "textarea", 151);
|
|
619
|
+
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_textarea_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.NewCategoryDescription, $event) || (ctx_r1.NewCategoryDescription = $event); return i0.ɵɵresetView($event); });
|
|
561
620
|
i0.ɵɵelementEnd()()();
|
|
562
|
-
i0.ɵɵelementStart(17, "div",
|
|
563
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_18_listener() { i0.ɵɵrestoreView(
|
|
621
|
+
i0.ɵɵelementStart(17, "div", 144)(18, "button", 152);
|
|
622
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmCreateCategory()); });
|
|
564
623
|
i0.ɵɵelement(19, "i", 43);
|
|
565
624
|
i0.ɵɵtext(20, " Create ");
|
|
566
625
|
i0.ɵɵelementEnd();
|
|
567
|
-
i0.ɵɵelementStart(21, "button",
|
|
568
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_21_listener() { i0.ɵɵrestoreView(
|
|
626
|
+
i0.ɵɵelementStart(21, "button", 130);
|
|
627
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
|
|
569
628
|
i0.ɵɵtext(22, "Cancel");
|
|
570
629
|
i0.ɵɵelementEnd()()()();
|
|
571
630
|
} if (rf & 2) {
|
|
@@ -578,8 +637,8 @@ function DashboardBrowserComponent_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
|
578
637
|
i0.ɵɵproperty("disabled", !ctx_r1.NewCategoryName.trim());
|
|
579
638
|
} }
|
|
580
639
|
function DashboardBrowserComponent_div_28_div_8_ng_container_7_p_1_Template(rf, ctx) { if (rf & 1) {
|
|
581
|
-
i0.ɵɵelementStart(0, "p",
|
|
582
|
-
i0.ɵɵelement(1, "i",
|
|
640
|
+
i0.ɵɵelementStart(0, "p", 166);
|
|
641
|
+
i0.ɵɵelement(1, "i", 167);
|
|
583
642
|
i0.ɵɵtext(2, " This category contains: ");
|
|
584
643
|
i0.ɵɵelementEnd();
|
|
585
644
|
} }
|
|
@@ -589,9 +648,9 @@ function DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_li_1_Templat
|
|
|
589
648
|
i0.ɵɵtext(2);
|
|
590
649
|
i0.ɵɵelementEnd();
|
|
591
650
|
} if (rf & 2) {
|
|
592
|
-
const
|
|
651
|
+
const counts_r37 = i0.ɵɵnextContext(2).ngIf;
|
|
593
652
|
i0.ɵɵadvance(2);
|
|
594
|
-
i0.ɵɵtextInterpolate2(" ",
|
|
653
|
+
i0.ɵɵtextInterpolate2(" ", counts_r37.dashboards, " dashboard", counts_r37.dashboards !== 1 ? "s" : "", " ");
|
|
595
654
|
} }
|
|
596
655
|
function DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_li_2_Template(rf, ctx) { if (rf & 1) {
|
|
597
656
|
i0.ɵɵelementStart(0, "li");
|
|
@@ -599,35 +658,35 @@ function DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_li_2_Templat
|
|
|
599
658
|
i0.ɵɵtext(2);
|
|
600
659
|
i0.ɵɵelementEnd();
|
|
601
660
|
} if (rf & 2) {
|
|
602
|
-
const
|
|
661
|
+
const counts_r37 = i0.ɵɵnextContext(2).ngIf;
|
|
603
662
|
i0.ɵɵadvance(2);
|
|
604
|
-
i0.ɵɵtextInterpolate2(" ",
|
|
663
|
+
i0.ɵɵtextInterpolate2(" ", counts_r37.categories, " sub-categor", counts_r37.categories !== 1 ? "ies" : "y", " ");
|
|
605
664
|
} }
|
|
606
665
|
function DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_Template(rf, ctx) { if (rf & 1) {
|
|
607
|
-
i0.ɵɵelementStart(0, "ul",
|
|
666
|
+
i0.ɵɵelementStart(0, "ul", 168);
|
|
608
667
|
i0.ɵɵtemplate(1, DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_li_1_Template, 3, 2, "li", 10)(2, DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_li_2_Template, 3, 2, "li", 10);
|
|
609
668
|
i0.ɵɵelementEnd();
|
|
610
669
|
} if (rf & 2) {
|
|
611
|
-
const
|
|
670
|
+
const counts_r37 = i0.ɵɵnextContext().ngIf;
|
|
612
671
|
i0.ɵɵadvance();
|
|
613
|
-
i0.ɵɵproperty("ngIf",
|
|
672
|
+
i0.ɵɵproperty("ngIf", counts_r37.dashboards > 0);
|
|
614
673
|
i0.ɵɵadvance();
|
|
615
|
-
i0.ɵɵproperty("ngIf",
|
|
674
|
+
i0.ɵɵproperty("ngIf", counts_r37.categories > 0);
|
|
616
675
|
} }
|
|
617
676
|
function DashboardBrowserComponent_div_28_div_8_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
618
677
|
i0.ɵɵelementContainerStart(0);
|
|
619
|
-
i0.ɵɵtemplate(1, DashboardBrowserComponent_div_28_div_8_ng_container_7_p_1_Template, 3, 0, "p",
|
|
678
|
+
i0.ɵɵtemplate(1, DashboardBrowserComponent_div_28_div_8_ng_container_7_p_1_Template, 3, 0, "p", 164)(2, DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_Template, 3, 2, "ul", 165);
|
|
620
679
|
i0.ɵɵelementContainerEnd();
|
|
621
680
|
} if (rf & 2) {
|
|
622
|
-
const
|
|
681
|
+
const counts_r37 = ctx.ngIf;
|
|
623
682
|
i0.ɵɵadvance();
|
|
624
|
-
i0.ɵɵproperty("ngIf",
|
|
683
|
+
i0.ɵɵproperty("ngIf", counts_r37.dashboards > 0 || counts_r37.categories > 0);
|
|
625
684
|
i0.ɵɵadvance();
|
|
626
|
-
i0.ɵɵproperty("ngIf",
|
|
685
|
+
i0.ɵɵproperty("ngIf", counts_r37.dashboards > 0 || counts_r37.categories > 0);
|
|
627
686
|
} }
|
|
628
687
|
function DashboardBrowserComponent_div_28_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
629
|
-
const
|
|
630
|
-
i0.ɵɵelementStart(0, "div",
|
|
688
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
689
|
+
i0.ɵɵelementStart(0, "div", 140)(1, "div", 159)(2, "p");
|
|
631
690
|
i0.ɵɵtext(3, " You are about to delete the category ");
|
|
632
691
|
i0.ɵɵelementStart(4, "strong");
|
|
633
692
|
i0.ɵɵtext(5);
|
|
@@ -636,10 +695,10 @@ function DashboardBrowserComponent_div_28_div_8_Template(rf, ctx) { if (rf & 1)
|
|
|
636
695
|
i0.ɵɵelementEnd();
|
|
637
696
|
i0.ɵɵtemplate(7, DashboardBrowserComponent_div_28_div_8_ng_container_7_Template, 3, 2, "ng-container", 10);
|
|
638
697
|
i0.ɵɵelementEnd();
|
|
639
|
-
i0.ɵɵelementStart(8, "div",
|
|
640
|
-
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_28_div_8_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(
|
|
698
|
+
i0.ɵɵelementStart(8, "div", 160)(9, "label", 161)(10, "input", 162);
|
|
699
|
+
i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_28_div_8_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.DeleteCategoryIncludeContents, $event) || (ctx_r1.DeleteCategoryIncludeContents = $event); return i0.ɵɵresetView($event); });
|
|
641
700
|
i0.ɵɵelementEnd();
|
|
642
|
-
i0.ɵɵelementStart(11, "span",
|
|
701
|
+
i0.ɵɵelementStart(11, "span", 163);
|
|
643
702
|
i0.ɵɵtext(12, " I understand this will permanently delete this category and all its contents. This action cannot be undone. ");
|
|
644
703
|
i0.ɵɵelementEnd()()()();
|
|
645
704
|
} if (rf & 2) {
|
|
@@ -652,27 +711,27 @@ function DashboardBrowserComponent_div_28_div_8_Template(rf, ctx) { if (rf & 1)
|
|
|
652
711
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.DeleteCategoryIncludeContents);
|
|
653
712
|
} }
|
|
654
713
|
function DashboardBrowserComponent_div_28_Template(rf, ctx) { if (rf & 1) {
|
|
655
|
-
const
|
|
656
|
-
i0.ɵɵelementStart(0, "div",
|
|
657
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
658
|
-
i0.ɵɵelementStart(1, "div",
|
|
659
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
660
|
-
i0.ɵɵelementStart(2, "div",
|
|
661
|
-
i0.ɵɵelement(4, "i",
|
|
714
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
|
715
|
+
i0.ɵɵelementStart(0, "div", 153);
|
|
716
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
|
|
717
|
+
i0.ɵɵelementStart(1, "div", 154);
|
|
718
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r35); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
719
|
+
i0.ɵɵelementStart(2, "div", 155)(3, "h3");
|
|
720
|
+
i0.ɵɵelement(4, "i", 156);
|
|
662
721
|
i0.ɵɵtext(5, " Delete Category ");
|
|
663
722
|
i0.ɵɵelementEnd();
|
|
664
|
-
i0.ɵɵelementStart(6, "button",
|
|
665
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_6_listener() { i0.ɵɵrestoreView(
|
|
723
|
+
i0.ɵɵelementStart(6, "button", 139);
|
|
724
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
|
|
666
725
|
i0.ɵɵelement(7, "i", 40);
|
|
667
726
|
i0.ɵɵelementEnd()();
|
|
668
|
-
i0.ɵɵtemplate(8, DashboardBrowserComponent_div_28_div_8_Template, 13, 3, "div",
|
|
669
|
-
i0.ɵɵelementStart(9, "div",
|
|
670
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_10_listener() { i0.ɵɵrestoreView(
|
|
727
|
+
i0.ɵɵtemplate(8, DashboardBrowserComponent_div_28_div_8_Template, 13, 3, "div", 157);
|
|
728
|
+
i0.ɵɵelementStart(9, "div", 144)(10, "button", 158);
|
|
729
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmDeleteCategory()); });
|
|
671
730
|
i0.ɵɵelement(11, "i", 38);
|
|
672
731
|
i0.ɵɵtext(12, " Delete Category ");
|
|
673
732
|
i0.ɵɵelementEnd();
|
|
674
|
-
i0.ɵɵelementStart(13, "button",
|
|
675
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_13_listener() { i0.ɵɵrestoreView(
|
|
733
|
+
i0.ɵɵelementStart(13, "button", 130);
|
|
734
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
|
|
676
735
|
i0.ɵɵtext(14, "Cancel");
|
|
677
736
|
i0.ɵɵelementEnd()()()();
|
|
678
737
|
} if (rf & 2) {
|
|
@@ -1658,7 +1717,7 @@ export class DashboardBrowserComponent {
|
|
|
1658
1717
|
}
|
|
1659
1718
|
}
|
|
1660
1719
|
static ɵfac = function DashboardBrowserComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardBrowserComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
1661
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardBrowserComponent, selectors: [["mj-dashboard-browser"]], inputs: { Dashboards: "Dashboards", Categories: "Categories", SelectedCategoryId: "SelectedCategoryId", ViewMode: "ViewMode", IsLoading: "IsLoading", ShowCreateButton: "ShowCreateButton", AllowMultiSelect: "AllowMultiSelect", AllowDragDrop: "AllowDragDrop", Title: "Title", IconClass: "IconClass", DashboardPermissions: "DashboardPermissions", EffectiveCategoryMap: "EffectiveCategoryMap" }, outputs: { DashboardOpen: "DashboardOpen", DashboardEdit: "DashboardEdit", DashboardDelete: "DashboardDelete", DashboardMove: "DashboardMove", DashboardCreate: "DashboardCreate", CategoryCreate: "CategoryCreate", CategoryDelete: "CategoryDelete", CategoryChange: "CategoryChange", ViewModeChange: "ViewModeChange", ViewPreferenceChange: "ViewPreferenceChange" }, decls: 29, vars: 30, consts: [[1, "dashboard-browser"], [1, "browser-toolbar"], ["Size", "large", 3, "Navigate", "DashboardDrop", "Categories", "CurrentCategoryId", "RootIcon", "RootLabel", "AllowDragDrop"], [1, "toolbar-actions"], [1, "dashboard-count"], [1, "view-toggle"], ["title", "Card View", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List View", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-list"], [4, "ngIf"], ["class", "new-dropdown", 4, "ngIf"], ["class", "dropdown-backdrop", 3, "click", 4, "ngIf"], [1, "browser-filters"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search dashboards...", 3, "ngModelChange", "input", "ngModel"], ["class", "clear-btn", 3, "click", 4, "ngIf"], ["class", "clear-filters-btn", 3, "click", 4, "ngIf"], ["class", "loading-overlay", 4, "ngIf"], ["class", "dashboard-grid", 4, "ngIf"], ["class", "dashboard-list", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], ["class", "category-drop-zones", 4, "ngIf"], ["type", "danger", "confirmText", "Delete", "cancelText", "Cancel", 3, "confirmed", "cancelled", "visible", "title", "message"], ["class", "move-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "create-category-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "delete-category-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "select-mode-btn", "title", "Select multiple dashboards", 3, "click", 4, "ngIf"], ["class", "selection-toolbar", 4, "ngIf"], ["title", "Select multiple dashboards", 1, "select-mode-btn", 3, "click"], [1, "fa-solid", "fa-check-double"], [1, "selection-toolbar"], [1, "selected-count"], ["title", "Select all", 1, "action-btn", 3, "click"], ["title", "Move to folder", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-folder-open"], ["title", "Delete selected", 1, "action-btn", "danger", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], ["title", "Exit selection mode", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "new-dropdown"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-caret-down", "dropdown-caret"], ["class", "dropdown-menu", 4, "ngIf"], [1, "dropdown-menu"], [1, "dropdown-item", 3, "click"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-folder-plus"], [1, "dropdown-backdrop", 3, "click"], [1, "clear-btn", 3, "click"], [1, "clear-filters-btn", 3, "click"], [1, "fa-solid", "fa-filter-circle-xmark"], [1, "loading-overlay"], ["text", "Loading dashboards..."], [1, "dashboard-grid"], ["class", "dashboard-card category-card", 3, "drop-target", "click", "dblclick", "dragover", "dragleave", "drop", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "dashboard-card", 3, "selected", "dragging", "draggable", "click", "dblclick", "dragstart", "dragend", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "dashboard-card", "category-card", 3, "click", "dblclick", "dragover", "dragleave", "drop"], [1, "card-header"], [1, "card-icon", "folder-icon"], [1, "fa-solid", "fa-folder"], [1, "card-actions"], ["title", "Delete category", 1, "action-btn", "danger", 3, "click"], [1, "card-content"], [1, "card-title", 3, "innerHTML"], ["class", "card-description", 3, "innerHTML", 4, "ngIf"], [1, "card-meta"], [1, "meta-item"], [1, "fa-solid", "fa-folder-tree"], [1, "card-description", 3, "innerHTML"], [1, "dashboard-card", 3, "click", "dblclick", "dragstart", "dragend", "draggable"], ["class", "card-select-area", 3, "click", 4, "ngIf"], [1, "card-icon"], ["class", "action-btn", "title", "Edit", 3, "click", 4, "ngIf"], ["class", "action-btn danger", "title", "Delete", 3, "click", 4, "ngIf"], [1, "card-title"], [3, "innerHTML"], ["class", "shared-badge", "title", "Shared with you", 4, "ngIf"], [1, "fa-solid", "fa-clock"], [1, "card-select-area", 3, "click"], ["type", "checkbox", 3, "change", "checked"], ["title", "Edit", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-edit"], ["title", "Delete", 1, "action-btn", "danger", 3, "click"], ["title", "Shared with you", 1, "shared-badge"], [1, "fa-solid", "fa-share-nodes"], [1, "dashboard-list"], [1, "list-header"], ["class", "list-col checkbox-col", 4, "ngIf"], [1, "list-col", "name-col"], [1, "list-col", "type-col"], [1, "list-col", "date-col"], [1, "list-col", "actions-col"], ["class", "list-row category-row", 3, "drop-target", "click", "dragover", "dragleave", "drop", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "list-row", 3, "selected", "dragging", "draggable", "click", "dblclick", "dragstart", "dragend", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "list-col", "checkbox-col"], ["type", "checkbox", 3, "change", "checked", "indeterminate"], [1, "list-row", "category-row", 3, "click", "dragover", "dragleave", "drop"], [1, "fa-solid", "fa-folder", "row-icon", "folder-icon"], [1, "dashboard-name", 3, "innerHTML"], [1, "list-col", "actions-col", 3, "click"], [1, "list-row", 3, "click", "dblclick", "dragstart", "dragend", "draggable"], ["class", "list-col checkbox-col", 3, "click", 4, "ngIf"], [1, "fa-solid", "fa-chart-line", "row-icon"], [1, "list-col", "checkbox-col", 3, "click"], [1, "empty-state"], [1, "empty-icon"], [1, "fa-solid", "fa-chart-pie"], ["
|
|
1720
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardBrowserComponent, selectors: [["mj-dashboard-browser"]], inputs: { Dashboards: "Dashboards", Categories: "Categories", SelectedCategoryId: "SelectedCategoryId", ViewMode: "ViewMode", IsLoading: "IsLoading", ShowCreateButton: "ShowCreateButton", AllowMultiSelect: "AllowMultiSelect", AllowDragDrop: "AllowDragDrop", Title: "Title", IconClass: "IconClass", DashboardPermissions: "DashboardPermissions", EffectiveCategoryMap: "EffectiveCategoryMap" }, outputs: { DashboardOpen: "DashboardOpen", DashboardEdit: "DashboardEdit", DashboardDelete: "DashboardDelete", DashboardMove: "DashboardMove", DashboardCreate: "DashboardCreate", CategoryCreate: "CategoryCreate", CategoryDelete: "CategoryDelete", CategoryChange: "CategoryChange", ViewModeChange: "ViewModeChange", ViewPreferenceChange: "ViewPreferenceChange" }, decls: 29, vars: 30, consts: [[1, "dashboard-browser"], [1, "browser-toolbar"], ["Size", "large", 3, "Navigate", "DashboardDrop", "Categories", "CurrentCategoryId", "RootIcon", "RootLabel", "AllowDragDrop"], [1, "toolbar-actions"], [1, "dashboard-count"], [1, "view-toggle"], ["title", "Card View", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List View", 1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-list"], [4, "ngIf"], ["class", "new-dropdown", 4, "ngIf"], ["class", "dropdown-backdrop", 3, "click", 4, "ngIf"], [1, "browser-filters"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search dashboards...", 3, "ngModelChange", "input", "ngModel"], ["class", "clear-btn", 3, "click", 4, "ngIf"], ["class", "clear-filters-btn", 3, "click", 4, "ngIf"], ["class", "loading-overlay", 4, "ngIf"], ["class", "dashboard-grid", 4, "ngIf"], ["class", "dashboard-list", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], ["class", "category-drop-zones", 4, "ngIf"], ["type", "danger", "confirmText", "Delete", "cancelText", "Cancel", 3, "confirmed", "cancelled", "visible", "title", "message"], ["class", "move-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "create-category-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "delete-category-dialog-overlay", 3, "click", 4, "ngIf"], ["class", "select-mode-btn", "title", "Select multiple dashboards", 3, "click", 4, "ngIf"], ["class", "selection-toolbar", 4, "ngIf"], ["title", "Select multiple dashboards", 1, "select-mode-btn", 3, "click"], [1, "fa-solid", "fa-check-double"], [1, "selection-toolbar"], [1, "selected-count"], ["title", "Select all", 1, "action-btn", 3, "click"], ["title", "Move to folder", 1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-folder-open"], ["title", "Delete selected", 1, "action-btn", "danger", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], ["title", "Exit selection mode", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "new-dropdown"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-caret-down", "dropdown-caret"], ["class", "dropdown-menu", 4, "ngIf"], [1, "dropdown-menu"], [1, "dropdown-item", 3, "click"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-folder-plus"], [1, "dropdown-backdrop", 3, "click"], [1, "clear-btn", 3, "click"], [1, "clear-filters-btn", 3, "click"], [1, "fa-solid", "fa-filter-circle-xmark"], [1, "loading-overlay"], ["text", "Loading dashboards..."], [1, "dashboard-grid"], ["class", "dashboard-card category-card", 3, "drop-target", "click", "dblclick", "dragover", "dragleave", "drop", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "dashboard-card", 3, "selected", "dragging", "draggable", "click", "dblclick", "dragstart", "dragend", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "dashboard-card", "category-card", 3, "click", "dblclick", "dragover", "dragleave", "drop"], [1, "card-header"], [1, "card-icon", "folder-icon"], [1, "fa-solid", "fa-folder"], [1, "card-actions"], ["title", "Delete category", 1, "action-btn", "danger", 3, "click"], [1, "card-content"], [1, "card-title", 3, "innerHTML"], ["class", "card-description", 3, "innerHTML", 4, "ngIf"], [1, "card-meta"], [1, "meta-item"], [1, "fa-solid", "fa-folder-tree"], [1, "card-description", 3, "innerHTML"], [1, "dashboard-card", 3, "click", "dblclick", "dragstart", "dragend", "draggable"], ["class", "card-select-area", 3, "click", 4, "ngIf"], [1, "card-icon"], ["class", "action-btn", "title", "Edit", 3, "click", 4, "ngIf"], ["class", "action-btn danger", "title", "Delete", 3, "click", 4, "ngIf"], [1, "card-title"], [3, "innerHTML"], ["class", "shared-badge", "title", "Shared with you", 4, "ngIf"], [1, "fa-solid", "fa-clock"], [1, "card-select-area", 3, "click"], ["type", "checkbox", 3, "change", "checked"], ["title", "Edit", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-edit"], ["title", "Delete", 1, "action-btn", "danger", 3, "click"], ["title", "Shared with you", 1, "shared-badge"], [1, "fa-solid", "fa-share-nodes"], [1, "dashboard-list"], [1, "list-header"], ["class", "list-col checkbox-col", 4, "ngIf"], [1, "list-col", "name-col"], [1, "list-col", "type-col"], [1, "list-col", "date-col"], [1, "list-col", "actions-col"], ["class", "list-row category-row", 3, "drop-target", "click", "dragover", "dragleave", "drop", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "list-row", 3, "selected", "dragging", "draggable", "click", "dblclick", "dragstart", "dragend", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "list-col", "checkbox-col"], ["type", "checkbox", 3, "change", "checked", "indeterminate"], [1, "list-row", "category-row", 3, "click", "dragover", "dragleave", "drop"], [1, "fa-solid", "fa-folder", "row-icon", "folder-icon"], [1, "dashboard-name", 3, "innerHTML"], [1, "list-col", "actions-col", 3, "click"], [1, "list-row", 3, "click", "dblclick", "dragstart", "dragend", "draggable"], ["class", "list-col checkbox-col", 3, "click", 4, "ngIf"], [1, "fa-solid", "fa-chart-line", "row-icon"], [1, "list-col", "checkbox-col", 3, "click"], [1, "empty-state"], [1, "empty-state-content"], [1, "empty-illustration"], [1, "illustration-bg"], [1, "fa-solid", "fa-gauge-high", "main-icon"], [1, "illustration-accent", "accent-1"], [1, "illustration-accent", "accent-2"], [1, "fa-solid", "fa-chart-bar"], [1, "illustration-accent", "accent-3"], [1, "fa-solid", "fa-chart-pie"], [1, "empty-title"], [1, "empty-description"], ["class", "empty-actions", 4, "ngIf"], [1, "empty-features"], [1, "feature-item"], [1, "fa-solid", "fa-table-cells"], [1, "fa-solid", "fa-database"], [1, "empty-actions"], [1, "btn-primary", "large", 3, "click"], [1, "empty-icon", "folder-empty"], [1, "empty-icon"], [1, "empty-icon", "search-empty"], [1, "fa-solid", "fa-magnifying-glass"], [1, "btn-secondary", 3, "click"], [1, "category-drop-zones"], [1, "drop-zone-header"], [1, "drop-zones"], [1, "drop-zone", 3, "dragover", "dragleave", "drop"], ["class", "drop-zone", 3, "active", "dragover", "dragleave", "drop", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "move-dialog-overlay", 3, "click"], [1, "move-dialog", 3, "click"], [1, "dialog-header"], [1, "close-btn", 3, "click"], [1, "dialog-content"], [1, "category-list"], [1, "category-option", 3, "click"], ["class", "category-option", 3, "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "dialog-footer"], [1, "create-category-dialog-overlay", 3, "click"], [1, "create-category-dialog", 3, "click"], [1, "form-field"], ["for", "category-name"], ["type", "text", "id", "category-name", "placeholder", "Enter category name", 3, "ngModelChange", "keyup.enter", "ngModel"], ["for", "category-description"], ["id", "category-description", "placeholder", "Optional description", "rows", "3", 3, "ngModelChange", "ngModel"], [1, "btn-primary", 3, "click", "disabled"], [1, "delete-category-dialog-overlay", 3, "click"], [1, "delete-category-dialog", 3, "click"], [1, "dialog-header", "danger"], [1, "fa-solid", "fa-exclamation-triangle"], ["class", "dialog-content", 4, "ngIf"], [1, "btn-danger", 3, "click", "disabled"], [1, "warning-message"], [1, "confirmation-checkbox"], [1, "checkbox-label"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "checkbox-text"], ["class", "content-warning", 4, "ngIf"], ["class", "content-list", 4, "ngIf"], [1, "content-warning"], [1, "fa-solid", "fa-warning"], [1, "content-list"]], template: function DashboardBrowserComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1662
1721
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "mj-dashboard-breadcrumb", 2);
|
|
1663
1722
|
i0.ɵɵlistener("Navigate", function DashboardBrowserComponent_Template_mj_dashboard_breadcrumb_Navigate_2_listener($event) { return ctx.NavigateToCategory($event.CategoryId); })("DashboardDrop", function DashboardBrowserComponent_Template_mj_dashboard_breadcrumb_DashboardDrop_2_listener($event) { return ctx.OnBreadcrumbDrop($event); });
|
|
1664
1723
|
i0.ɵɵelementEnd();
|
|
@@ -1686,7 +1745,7 @@ export class DashboardBrowserComponent {
|
|
|
1686
1745
|
i0.ɵɵelementEnd();
|
|
1687
1746
|
i0.ɵɵtemplate(19, DashboardBrowserComponent_button_19_Template, 3, 0, "button", 18);
|
|
1688
1747
|
i0.ɵɵelementEnd();
|
|
1689
|
-
i0.ɵɵtemplate(20, DashboardBrowserComponent_div_20_Template, 2, 0, "div", 19)(21, DashboardBrowserComponent_div_21_Template, 3, 4, "div", 20)(22, DashboardBrowserComponent_div_22_Template, 13, 5, "div", 21)(23, DashboardBrowserComponent_div_23_Template,
|
|
1748
|
+
i0.ɵɵtemplate(20, DashboardBrowserComponent_div_20_Template, 2, 0, "div", 19)(21, DashboardBrowserComponent_div_21_Template, 3, 4, "div", 20)(22, DashboardBrowserComponent_div_22_Template, 13, 5, "div", 21)(23, DashboardBrowserComponent_div_23_Template, 6, 4, "div", 22)(24, DashboardBrowserComponent_div_24_Template, 8, 4, "div", 23);
|
|
1690
1749
|
i0.ɵɵelementStart(25, "mj-confirm-dialog", 24);
|
|
1691
1750
|
i0.ɵɵlistener("confirmed", function DashboardBrowserComponent_Template_mj_confirm_dialog_confirmed_25_listener() { return ctx.ConfirmDelete(); })("cancelled", function DashboardBrowserComponent_Template_mj_confirm_dialog_cancelled_25_listener() { return ctx.CloseDeleteConfirm(); });
|
|
1692
1751
|
i0.ɵɵelementEnd();
|
|
@@ -1733,11 +1792,11 @@ export class DashboardBrowserComponent {
|
|
|
1733
1792
|
i0.ɵɵproperty("ngIf", ctx.ShowCreateCategoryDialog);
|
|
1734
1793
|
i0.ɵɵadvance();
|
|
1735
1794
|
i0.ɵɵproperty("ngIf", ctx.ShowDeleteCategoryConfirm);
|
|
1736
|
-
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.LoadingComponent, i4.DashboardBreadcrumbComponent, i5.ConfirmDialogComponent], styles: ["\n\n\n.dashboard-browser[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n position: relative;\n}\n\n\n\n.browser-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px 0 0;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n gap: 16px;\n}\n\n.toolbar-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-count[_ngcontent-%COMP%] {\n color: #666;\n font-size: 13px;\n padding: 4px 10px;\n background: #f0f0f0;\n border-radius: 12px;\n}\n\n\n\n.browser-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: #f0f0f0;\n border-radius: 6px;\n padding: 2px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n color: #333;\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: #fff;\n color: #5c6bc0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.select-mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.select-mode-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.select-mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.selection-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: #e3f2fd;\n border-radius: 6px;\n}\n\n.selection-toolbar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.selection-toolbar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:disabled:hover {\n background: transparent;\n color: #666;\n}\n\n.selected-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #1976d2;\n font-weight: 500;\n min-width: 70px;\n}\n\n\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #5c6bc0;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: #4a5ab9;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f0f0f0;\n color: #333;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n}\n\n\n\n.browser-filters[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 400px;\n background: #f5f5f5;\n border-radius: 6px;\n padding: 0 12px;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #999;\n font-size: 14px;\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n}\n\n.search-box[_ngcontent-%COMP%] .clear-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #999;\n cursor: pointer;\n border-radius: 50%;\n}\n\n.search-box[_ngcontent-%COMP%] .clear-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #666;\n}\n\n.category-filter[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n padding: 10px 32px 10px 12px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 14px;\n background: #fff;\n cursor: pointer;\n outline: none;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%], \n.select-all-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%]:hover, \n.select-all-btn[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n color: #333;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n\n\n\n.dashboard-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 20px;\n padding: 24px;\n overflow-y: auto;\n}\n\n.dashboard-card[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n cursor: pointer;\n transition: all 0.2s;\n border: 2px solid transparent;\n position: relative;\n}\n\n.dashboard-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n transform: translateY(-2px);\n}\n\n.dashboard-card.selected[_ngcontent-%COMP%] {\n border-color: #5c6bc0;\n background: #f8f9ff;\n}\n\n.dashboard-card.dragging[_ngcontent-%COMP%] {\n opacity: 0.5;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 8px;\n color: #fff;\n font-size: 16px;\n}\n\n\n\n.card-select-area[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 2;\n padding: 10px;\n background: #e3f2fd;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s;\n}\n\n.card-select-area[_ngcontent-%COMP%]:hover {\n background: #bbdefb;\n}\n\n.dashboard-card.selected[_ngcontent-%COMP%] .card-select-area[_ngcontent-%COMP%] {\n background: #5c6bc0;\n}\n\n.card-select-area[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #5c6bc0;\n}\n\n.card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.dashboard-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.card-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.card-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.shared-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #e3f2fd;\n color: #1976d2;\n font-size: 10px;\n flex-shrink: 0;\n}\n\n.card-description[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #999;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.dashboard-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n margin: 16px 24px;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.list-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: #f5f7fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.list-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.list-row[_ngcontent-%COMP%]:hover {\n background: #f8f9ff;\n}\n\n.list-row.selected[_ngcontent-%COMP%] {\n background: #e8eaf6;\n}\n\n.list-row.dragging[_ngcontent-%COMP%] {\n opacity: 0.5;\n}\n\n.list-col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.checkbox-col[_ngcontent-%COMP%] {\n width: 40px;\n}\n\n.checkbox-col[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.name-col[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n gap: 10px;\n display: flex;\n align-items: center;\n}\n\n.name-col[_ngcontent-%COMP%] .shared-badge[_ngcontent-%COMP%] {\n margin-left: 4px;\n}\n\n.row-icon[_ngcontent-%COMP%] {\n color: #5c6bc0;\n font-size: 14px;\n}\n\n.dashboard-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.category-col[_ngcontent-%COMP%], \n.type-col[_ngcontent-%COMP%] {\n width: 120px;\n color: #666;\n font-size: 13px;\n}\n\n.date-col[_ngcontent-%COMP%] {\n width: 120px;\n color: #999;\n font-size: 13px;\n}\n\n.actions-col[_ngcontent-%COMP%] {\n width: 80px;\n justify-content: flex-end;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.list-row[_ngcontent-%COMP%]:hover .actions-col[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f0f0f0;\n border-radius: 50%;\n margin-bottom: 24px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #bbb;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n color: #333;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 24px 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n}\n\n\n\n.category-drop-zones[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n padding: 16px;\n z-index: 1000;\n}\n\n.drop-zone-header[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.drop-zones[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.drop-zone[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f5f5f5;\n border: 2px dashed #ccc;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.drop-zone[_ngcontent-%COMP%]:hover, \n.drop-zone.active[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-color: #5c6bc0;\n color: #333;\n}\n\n\n\n.move-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.move-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n color: #333;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n}\n\n.dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n overflow-y: auto;\n}\n\n.dialog-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n color: #666;\n font-size: 14px;\n}\n\n.category-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.category-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.category-option[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n\n.category-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n\n\n.new-dropdown[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.dropdown-caret[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-left: 4px;\n}\n\n.dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n overflow: hidden;\n}\n\n.dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n color: #333;\n font-size: 14px;\n cursor: pointer;\n text-align: left;\n transition: background 0.15s;\n}\n\n.dropdown-item[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n\n.dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n width: 16px;\n text-align: center;\n}\n\n.dropdown-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 1000;\n}\n\n\n\n.create-category-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.form-field[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.form-field[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.form-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #555;\n}\n\n.form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%], \n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.15s, box-shadow 0.15s;\n box-sizing: border-box;\n}\n\n.form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus, \n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 3px rgba(92, 107, 192, 0.1);\n}\n\n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n margin-left: auto;\n}\n\n\n\n.breadcrumb-nav[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n flex-wrap: wrap;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: #5c6bc0;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: background 0.15s;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n}\n\n.breadcrumb-item.current[_ngcontent-%COMP%] {\n color: #333;\n font-weight: 500;\n cursor: default;\n}\n\n.breadcrumb-item.current[_ngcontent-%COMP%]:hover {\n background: transparent;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.breadcrumb-item.root[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.breadcrumb-separator[_ngcontent-%COMP%] {\n color: #999;\n font-size: 10px;\n}\n\n\n\n.category-card[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.category-card[_ngcontent-%COMP%]:hover {\n border-color: #5c6bc0;\n}\n\n.folder-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffa726, #ffb74d) !important;\n}\n\n.category-row[_ngcontent-%COMP%] {\n background: #fafafa;\n}\n\n.category-row[_ngcontent-%COMP%]:hover {\n background: #fff3e0 !important;\n}\n\n.category-row[_ngcontent-%COMP%] .folder-icon[_ngcontent-%COMP%] {\n color: #ffa726;\n}\n\n\n\n.dashboard-card.category-card.drop-target[_ngcontent-%COMP%], \n.list-row.category-row.drop-target[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.3);\n}\n\n\n\nmark[_ngcontent-%COMP%] {\n background: #fff59d;\n color: inherit;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n\n\n.delete-category-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 480px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] {\n background: #ffebee;\n border-bottom-color: #ffcdd2;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n color: #c62828;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #d32f2f;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.warning-message[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.warning-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: #333;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-warning[_ngcontent-%COMP%] {\n color: #d32f2f;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 16px;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] {\n margin: 8px 0 0 0;\n padding-left: 24px;\n color: #666;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 6px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #999;\n width: 16px;\n text-align: center;\n}\n\n.confirmation-checkbox[_ngcontent-%COMP%] {\n background: #fff3e0;\n border: 1px solid #ffcc80;\n border-radius: 8px;\n padding: 16px;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n}\n\n.checkbox-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n margin-top: 2px;\n cursor: pointer;\n accent-color: #d32f2f;\n}\n\n.checkbox-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #666;\n line-height: 1.5;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.btn-danger[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #d32f2f;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-danger[_ngcontent-%COMP%]:hover {\n background: #c62828;\n}\n\n.btn-danger[_ngcontent-%COMP%]:disabled {\n background: #e0e0e0;\n color: #999;\n cursor: not-allowed;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n margin-left: auto;\n}"], changeDetection: 0 });
|
|
1795
|
+
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.LoadingComponent, i4.DashboardBreadcrumbComponent, i5.ConfirmDialogComponent], styles: ["\n\n\n.dashboard-browser[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n position: relative;\n}\n\n\n\n.browser-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px 0 0;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n gap: 16px;\n}\n\n.toolbar-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-count[_ngcontent-%COMP%] {\n color: #666;\n font-size: 13px;\n padding: 4px 10px;\n background: #f0f0f0;\n border-radius: 12px;\n}\n\n\n\n.browser-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: #f0f0f0;\n border-radius: 6px;\n padding: 2px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n color: #333;\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: #fff;\n color: #5c6bc0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n\n\n.select-mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.select-mode-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.select-mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.selection-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: #e3f2fd;\n border-radius: 6px;\n}\n\n.selection-toolbar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.selection-toolbar[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:disabled:hover {\n background: transparent;\n color: #666;\n}\n\n.selected-count[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #1976d2;\n font-weight: 500;\n min-width: 70px;\n}\n\n\n\n.btn-primary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #5c6bc0;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: #4a5ab9;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f0f0f0;\n color: #333;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.action-btn.danger[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n}\n\n\n\n.browser-filters[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 400px;\n background: #f5f5f5;\n border-radius: 6px;\n padding: 0 12px;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #999;\n font-size: 14px;\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n}\n\n.search-box[_ngcontent-%COMP%] .clear-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #999;\n cursor: pointer;\n border-radius: 50%;\n}\n\n.search-box[_ngcontent-%COMP%] .clear-btn[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #666;\n}\n\n.category-filter[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n padding: 10px 32px 10px 12px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 14px;\n background: #fff;\n cursor: pointer;\n outline: none;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%], \n.select-all-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%]:hover, \n.select-all-btn[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n color: #333;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n\n\n\n.dashboard-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 20px;\n padding: 24px;\n overflow-y: auto;\n}\n\n.dashboard-card[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n cursor: pointer;\n transition: all 0.2s;\n border: 2px solid transparent;\n position: relative;\n}\n\n.dashboard-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n transform: translateY(-2px);\n}\n\n.dashboard-card.selected[_ngcontent-%COMP%] {\n border-color: #5c6bc0;\n background: #f8f9ff;\n}\n\n.dashboard-card.dragging[_ngcontent-%COMP%] {\n opacity: 0.5;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 8px;\n color: #fff;\n font-size: 16px;\n}\n\n\n\n.card-select-area[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 2;\n padding: 10px;\n background: #e3f2fd;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s;\n}\n\n.card-select-area[_ngcontent-%COMP%]:hover {\n background: #bbdefb;\n}\n\n.dashboard-card.selected[_ngcontent-%COMP%] .card-select-area[_ngcontent-%COMP%] {\n background: #5c6bc0;\n}\n\n.card-select-area[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #5c6bc0;\n}\n\n.card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.dashboard-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.card-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.card-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.shared-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #e3f2fd;\n color: #1976d2;\n font-size: 10px;\n flex-shrink: 0;\n}\n\n.card-description[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #999;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.dashboard-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n margin: 16px 24px;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.list-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: #f5f7fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.list-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.list-row[_ngcontent-%COMP%]:hover {\n background: #f8f9ff;\n}\n\n.list-row.selected[_ngcontent-%COMP%] {\n background: #e8eaf6;\n}\n\n.list-row.dragging[_ngcontent-%COMP%] {\n opacity: 0.5;\n}\n\n.list-col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.checkbox-col[_ngcontent-%COMP%] {\n width: 40px;\n}\n\n.checkbox-col[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.name-col[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n gap: 10px;\n display: flex;\n align-items: center;\n}\n\n.name-col[_ngcontent-%COMP%] .shared-badge[_ngcontent-%COMP%] {\n margin-left: 4px;\n}\n\n.row-icon[_ngcontent-%COMP%] {\n color: #5c6bc0;\n font-size: 14px;\n}\n\n.dashboard-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.category-col[_ngcontent-%COMP%], \n.type-col[_ngcontent-%COMP%] {\n width: 120px;\n color: #666;\n font-size: 13px;\n}\n\n.date-col[_ngcontent-%COMP%] {\n width: 120px;\n color: #999;\n font-size: 13px;\n}\n\n.actions-col[_ngcontent-%COMP%] {\n width: 80px;\n justify-content: flex-end;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.list-row[_ngcontent-%COMP%]:hover .actions-col[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.empty-state-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 480px;\n}\n\n\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 100px;\n height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #f5f7fa, #e8eaf6);\n border-radius: 50%;\n margin-bottom: 24px;\n box-shadow: 0 4px 20px rgba(92, 107, 192, 0.1);\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 40px;\n color: #9fa8da;\n}\n\n.empty-icon.folder-empty[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fff3e0, #ffe0b2);\n}\n\n.empty-icon.folder-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #ffb74d;\n}\n\n.empty-icon.search-empty[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e3f2fd, #bbdefb);\n}\n\n.empty-icon.search-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #64b5f6;\n}\n\n\n\n.empty-illustration[_ngcontent-%COMP%] {\n position: relative;\n width: 160px;\n height: 160px;\n margin-bottom: 32px;\n}\n\n.illustration-bg[_ngcontent-%COMP%] {\n width: 120px;\n height: 120px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n box-shadow: 0 8px 32px rgba(92, 107, 192, 0.3);\n}\n\n.illustration-bg[_ngcontent-%COMP%] .main-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #fff;\n}\n\n.illustration-accent[_ngcontent-%COMP%] {\n position: absolute;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #fff;\n border-radius: 50%;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n.illustration-accent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.illustration-accent.accent-1[_ngcontent-%COMP%] {\n top: 0;\n right: 10px;\n}\n\n.illustration-accent.accent-1[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #26a69a;\n}\n\n.illustration-accent.accent-2[_ngcontent-%COMP%] {\n bottom: 10px;\n left: 0;\n}\n\n.illustration-accent.accent-2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #ff7043;\n}\n\n.illustration-accent.accent-3[_ngcontent-%COMP%] {\n bottom: 0;\n right: 0;\n}\n\n.illustration-accent.accent-3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #ab47bc;\n}\n\n\n\n.empty-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.empty-state-content[_ngcontent-%COMP%] h3.empty-title[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.empty-description[_ngcontent-%COMP%] {\n margin: 0 0 28px 0;\n color: #666;\n font-size: 15px;\n line-height: 1.6;\n max-width: 380px;\n}\n\n.empty-description[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: #333;\n}\n\n\n\n.empty-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-bottom: 32px;\n}\n\n.btn-primary.large[_ngcontent-%COMP%] {\n padding: 14px 28px;\n font-size: 15px;\n border-radius: 8px;\n}\n\n\n\n.empty-features[_ngcontent-%COMP%] {\n display: flex;\n gap: 32px;\n padding-top: 24px;\n border-top: 1px solid #e0e0e0;\n}\n\n.feature-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: #666;\n font-size: 13px;\n}\n\n.feature-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f5f7fa;\n border-radius: 8px;\n color: #5c6bc0;\n font-size: 16px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]:not(.empty-title) {\n margin: 0 0 8px 0;\n font-size: 18px;\n color: #333;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:not(.empty-description) {\n margin: 0 0 24px 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n}\n\n\n\n.category-drop-zones[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n padding: 16px;\n z-index: 1000;\n}\n\n.drop-zone-header[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.drop-zones[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.drop-zone[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f5f5f5;\n border: 2px dashed #ccc;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.drop-zone[_ngcontent-%COMP%]:hover, \n.drop-zone.active[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-color: #5c6bc0;\n color: #333;\n}\n\n\n\n.move-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.move-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n color: #333;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n}\n\n.dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n overflow-y: auto;\n}\n\n.dialog-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n color: #666;\n font-size: 14px;\n}\n\n.category-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.category-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.category-option[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n\n.category-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n\n\n.new-dropdown[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.dropdown-caret[_ngcontent-%COMP%] {\n font-size: 10px;\n margin-left: 4px;\n}\n\n.dropdown-menu[_ngcontent-%COMP%] {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n overflow: hidden;\n}\n\n.dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n color: #333;\n font-size: 14px;\n cursor: pointer;\n text-align: left;\n transition: background 0.15s;\n}\n\n.dropdown-item[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n}\n\n.dropdown-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n width: 16px;\n text-align: center;\n}\n\n.dropdown-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 1000;\n}\n\n\n\n.create-category-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5c6bc0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.form-field[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.form-field[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.form-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #555;\n}\n\n.form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%], \n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.15s, box-shadow 0.15s;\n box-sizing: border-box;\n}\n\n.form-field[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus, \n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 3px rgba(92, 107, 192, 0.1);\n}\n\n.form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n}\n\n.create-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n margin-left: auto;\n}\n\n\n\n.breadcrumb-nav[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n flex-wrap: wrap;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: #5c6bc0;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: background 0.15s;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%]:hover {\n background: #f0f0f0;\n}\n\n.breadcrumb-item.current[_ngcontent-%COMP%] {\n color: #333;\n font-weight: 500;\n cursor: default;\n}\n\n.breadcrumb-item.current[_ngcontent-%COMP%]:hover {\n background: transparent;\n}\n\n.breadcrumb-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.breadcrumb-item.root[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.breadcrumb-separator[_ngcontent-%COMP%] {\n color: #999;\n font-size: 10px;\n}\n\n\n\n.category-card[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.category-card[_ngcontent-%COMP%]:hover {\n border-color: #5c6bc0;\n}\n\n.folder-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffa726, #ffb74d) !important;\n}\n\n.category-row[_ngcontent-%COMP%] {\n background: #fafafa;\n}\n\n.category-row[_ngcontent-%COMP%]:hover {\n background: #fff3e0 !important;\n}\n\n.category-row[_ngcontent-%COMP%] .folder-icon[_ngcontent-%COMP%] {\n color: #ffa726;\n}\n\n\n\n.dashboard-card.category-card.drop-target[_ngcontent-%COMP%], \n.list-row.category-row.drop-target[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.3);\n}\n\n\n\nmark[_ngcontent-%COMP%] {\n background: #fff59d;\n color: inherit;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n\n\n.delete-category-dialog-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] {\n background: #fff;\n border-radius: 12px;\n width: 480px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] {\n background: #ffebee;\n border-bottom-color: #ffcdd2;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n color: #c62828;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header.danger[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #d32f2f;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.warning-message[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.warning-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: #333;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-warning[_ngcontent-%COMP%] {\n color: #d32f2f;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 16px;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] {\n margin: 8px 0 0 0;\n padding-left: 24px;\n color: #666;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 6px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.warning-message[_ngcontent-%COMP%] .content-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #999;\n width: 16px;\n text-align: center;\n}\n\n.confirmation-checkbox[_ngcontent-%COMP%] {\n background: #fff3e0;\n border: 1px solid #ffcc80;\n border-radius: 8px;\n padding: 16px;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n}\n\n.checkbox-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n margin-top: 2px;\n cursor: pointer;\n accent-color: #d32f2f;\n}\n\n.checkbox-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #666;\n line-height: 1.5;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.btn-danger[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #d32f2f;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-danger[_ngcontent-%COMP%]:hover {\n background: #c62828;\n}\n\n.btn-danger[_ngcontent-%COMP%]:disabled {\n background: #e0e0e0;\n color: #999;\n cursor: not-allowed;\n}\n\n.delete-category-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n margin-left: auto;\n}"], changeDetection: 0 });
|
|
1737
1796
|
}
|
|
1738
1797
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardBrowserComponent, [{
|
|
1739
1798
|
type: Component,
|
|
1740
|
-
args: [{ selector: 'mj-dashboard-browser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Dashboard Browser Component -->\n<div class=\"dashboard-browser\" [class.loading]=\"IsLoading\">\n <!-- Toolbar Row: Breadcrumb + Actions -->\n <div class=\"browser-toolbar\">\n <!-- Breadcrumb Navigation -->\n <mj-dashboard-breadcrumb\n [Categories]=\"Categories\"\n [CurrentCategoryId]=\"SelectedCategoryId\"\n [RootIcon]=\"IconClass\"\n [RootLabel]=\"Title\"\n [AllowDragDrop]=\"AllowDragDrop && (DraggingId !== null || IsSelectionMode)\"\n Size=\"large\"\n (Navigate)=\"NavigateToCategory($event.CategoryId)\"\n (DashboardDrop)=\"OnBreadcrumbDrop($event)\">\n </mj-dashboard-breadcrumb>\n\n <!-- Right-side Actions -->\n <div class=\"toolbar-actions\">\n <!-- Dashboard count -->\n <span class=\"dashboard-count\">{{ FilteredDashboards.length }} dashboards</span>\n\n <!-- View Toggle -->\n <div class=\"view-toggle\">\n <button\n class=\"toggle-btn\"\n [class.active]=\"ViewMode === 'cards'\"\n (click)=\"SetViewMode('cards')\"\n title=\"Card View\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button\n class=\"toggle-btn\"\n [class.active]=\"ViewMode === 'list'\"\n (click)=\"SetViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n\n <!-- Selection Mode Toggle & Bulk Actions -->\n <ng-container *ngIf=\"AllowMultiSelect\">\n <!-- Enter Selection Mode Button (when not in selection mode) -->\n <button\n class=\"select-mode-btn\"\n *ngIf=\"!IsSelectionMode && FilteredDashboards.length > 0\"\n (click)=\"EnterSelectionMode()\"\n title=\"Select multiple dashboards\">\n <i class=\"fa-solid fa-check-double\"></i>\n Select\n </button>\n\n <!-- Selection Mode Toolbar (when in selection mode) -->\n <div class=\"selection-toolbar\" *ngIf=\"IsSelectionMode\">\n <span class=\"selected-count\">{{ SelectedCount }} selected</span>\n <button class=\"action-btn\" (click)=\"SelectAll()\" title=\"Select all\">\n <i class=\"fa-solid fa-check-double\"></i>\n </button>\n <button class=\"action-btn\" (click)=\"OnMoveSelected()\" title=\"Move to folder\" [disabled]=\"SelectedCount === 0\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </button>\n <button class=\"action-btn danger\" (click)=\"OnDeleteSelected()\" title=\"Delete selected\" [disabled]=\"!CanDeleteAnySelected\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n <button class=\"action-btn\" (click)=\"ExitSelectionMode()\" title=\"Exit selection mode\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </ng-container>\n\n <!-- New Dropdown Button -->\n <div class=\"new-dropdown\" *ngIf=\"ShowCreateButton\">\n <button\n class=\"btn-primary\"\n (click)=\"ToggleNewMenu(); $event.stopPropagation()\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n <i class=\"fa-solid fa-caret-down dropdown-caret\"></i>\n </button>\n <div class=\"dropdown-menu\" *ngIf=\"ShowNewMenu\">\n <button class=\"dropdown-item\" (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Dashboard\n </button>\n <button class=\"dropdown-item\" (click)=\"OpenCreateCategoryDialog()\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n Category\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Click-away overlay for dropdown -->\n <div class=\"dropdown-backdrop\" *ngIf=\"ShowNewMenu\" (click)=\"CloseNewMenu()\"></div>\n\n <!-- Filters -->\n <div class=\"browser-filters\">\n <div class=\"search-box\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"SearchText\"\n (input)=\"OnSearchChange()\"\n placeholder=\"Search dashboards...\">\n <button\n class=\"clear-btn\"\n *ngIf=\"SearchText\"\n (click)=\"ClearSearch()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <button\n class=\"clear-filters-btn\"\n *ngIf=\"SearchText\"\n (click)=\"ClearSearch()\">\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n Clear Search\n </button>\n </div>\n\n <!-- Loading Overlay -->\n <div class=\"loading-overlay\" *ngIf=\"IsLoading\">\n <mj-loading text=\"Loading dashboards...\"></mj-loading>\n </div>\n\n <!-- Card View -->\n <div class=\"dashboard-grid\" *ngIf=\"ViewMode === 'cards' && (FilteredChildCategories.length > 0 || FilteredDashboards.length > 0)\">\n <!-- Category Folders -->\n <div\n *ngFor=\"let category of FilteredChildCategories; trackBy: TrackByCategory\"\n class=\"dashboard-card category-card\"\n [class.drop-target]=\"DragOverChildCategoryId === category.ID\"\n (click)=\"NavigateToCategory(category.ID)\"\n (dblclick)=\"$event.stopPropagation()\"\n (dragover)=\"OnDragOverChildCategory(category.ID, $event)\"\n (dragleave)=\"OnDragLeaveChildCategory()\"\n (drop)=\"OnDropOnChildCategory(category.ID, $event)\">\n <div class=\"card-header\">\n <div class=\"card-icon folder-icon\">\n <i class=\"fa-solid fa-folder\"></i>\n </div>\n <div class=\"card-actions\">\n <button\n class=\"action-btn danger\"\n title=\"Delete category\"\n (click)=\"OnDeleteCategory(category, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-content\">\n <h3 class=\"card-title\" [innerHTML]=\"HighlightMatch(category.Name)\"></h3>\n <p class=\"card-description\" *ngIf=\"category.Description\" [innerHTML]=\"HighlightMatch(category.Description)\">\n </p>\n <div class=\"card-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n Category\n </span>\n </div>\n </div>\n </div>\n\n <!-- Dashboard Cards -->\n <div\n *ngFor=\"let dashboard of FilteredDashboards; trackBy: TrackByDashboard\"\n class=\"dashboard-card\"\n [class.selected]=\"IsSelected(dashboard.ID)\"\n [class.dragging]=\"DraggingId === dashboard.ID\"\n [draggable]=\"AllowDragDrop\"\n (click)=\"OnDashboardClick(dashboard, $event)\"\n (dblclick)=\"OnDashboardDoubleClick(dashboard, $event)\"\n (dragstart)=\"OnDragStart(dashboard, $event)\"\n (dragend)=\"OnDragEnd()\">\n <!-- Selection checkbox in top-right corner -->\n <div\n class=\"card-select-area\"\n *ngIf=\"IsSelectionMode\"\n (click)=\"ToggleSelection(dashboard.ID); $event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [checked]=\"IsSelected(dashboard.ID)\"\n (change)=\"$event.stopPropagation()\">\n </div>\n <div class=\"card-header\">\n <div class=\"card-icon\">\n <i class=\"fa-solid fa-chart-line\"></i>\n </div>\n <div class=\"card-actions\">\n <button\n *ngIf=\"CanEdit(dashboard.ID)\"\n class=\"action-btn\"\n title=\"Edit\"\n (click)=\"OnEditDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n <button\n *ngIf=\"CanDelete(dashboard.ID)\"\n class=\"action-btn danger\"\n title=\"Delete\"\n (click)=\"OnDeleteDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-content\">\n <h3 class=\"card-title\">\n <span [innerHTML]=\"HighlightMatch(dashboard.Name)\"></span>\n <span class=\"shared-badge\" *ngIf=\"IsShared(dashboard.ID)\" title=\"Shared with you\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n </span>\n </h3>\n <p class=\"card-description\" *ngIf=\"dashboard.Description\" [innerHTML]=\"HighlightMatch(dashboard.Description)\">\n </p>\n <div class=\"card-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ FormatDate(dashboard.__mj_UpdatedAt) }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- List View -->\n <div class=\"dashboard-list\" *ngIf=\"ViewMode === 'list' && (FilteredChildCategories.length > 0 || FilteredDashboards.length > 0)\">\n <div class=\"list-header\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\">\n <input\n type=\"checkbox\"\n [checked]=\"SelectedCount === FilteredDashboards.length && FilteredDashboards.length > 0\"\n [indeterminate]=\"SelectedCount > 0 && SelectedCount < FilteredDashboards.length\"\n (change)=\"SelectedCount === FilteredDashboards.length ? ClearSelection() : SelectAll()\">\n </div>\n <div class=\"list-col name-col\">Name</div>\n <div class=\"list-col type-col\">Type</div>\n <div class=\"list-col date-col\">Modified</div>\n <div class=\"list-col actions-col\">Actions</div>\n </div>\n <!-- Category Rows -->\n <div\n *ngFor=\"let category of FilteredChildCategories; trackBy: TrackByCategory\"\n class=\"list-row category-row\"\n [class.drop-target]=\"DragOverChildCategoryId === category.ID\"\n (click)=\"NavigateToCategory(category.ID)\"\n (dragover)=\"OnDragOverChildCategory(category.ID, $event)\"\n (dragleave)=\"OnDragLeaveChildCategory()\"\n (drop)=\"OnDropOnChildCategory(category.ID, $event)\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\">\n <!-- Empty placeholder for alignment -->\n </div>\n <div class=\"list-col name-col\">\n <i class=\"fa-solid fa-folder row-icon folder-icon\"></i>\n <span class=\"dashboard-name\" [innerHTML]=\"HighlightMatch(category.Name)\"></span>\n </div>\n <div class=\"list-col type-col\">\n Category\n </div>\n <div class=\"list-col date-col\">\n <!-- No date for categories -->\n </div>\n <div class=\"list-col actions-col\" (click)=\"$event.stopPropagation()\">\n <button\n class=\"action-btn danger\"\n title=\"Delete category\"\n (click)=\"OnDeleteCategory(category, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <!-- Dashboard Rows -->\n <div\n *ngFor=\"let dashboard of FilteredDashboards; trackBy: TrackByDashboard\"\n class=\"list-row\"\n [class.selected]=\"IsSelected(dashboard.ID)\"\n [class.dragging]=\"DraggingId === dashboard.ID\"\n [draggable]=\"AllowDragDrop\"\n (click)=\"OnDashboardClick(dashboard, $event)\"\n (dblclick)=\"OnDashboardDoubleClick(dashboard, $event)\"\n (dragstart)=\"OnDragStart(dashboard, $event)\"\n (dragend)=\"OnDragEnd()\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\" (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [checked]=\"IsSelected(dashboard.ID)\"\n (change)=\"ToggleSelection(dashboard.ID)\">\n </div>\n <div class=\"list-col name-col\">\n <i class=\"fa-solid fa-chart-line row-icon\"></i>\n <span class=\"dashboard-name\" [innerHTML]=\"HighlightMatch(dashboard.Name)\"></span>\n <span class=\"shared-badge\" *ngIf=\"IsShared(dashboard.ID)\" title=\"Shared with you\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n </span>\n </div>\n <div class=\"list-col type-col\">\n Dashboard\n </div>\n <div class=\"list-col date-col\">\n {{ FormatDate(dashboard.__mj_UpdatedAt) }}\n </div>\n <div class=\"list-col actions-col\" (click)=\"$event.stopPropagation()\">\n <button\n *ngIf=\"CanEdit(dashboard.ID)\"\n class=\"action-btn\"\n title=\"Edit\"\n (click)=\"OnEditDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n <button\n *ngIf=\"CanDelete(dashboard.ID)\"\n class=\"action-btn danger\"\n title=\"Delete\"\n (click)=\"OnDeleteDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"FilteredDashboards.length === 0 && FilteredChildCategories.length === 0 && !IsLoading\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-chart-pie\"></i>\n </div>\n <h3 *ngIf=\"IsAtRoot && Dashboards.length === 0\">No dashboards yet</h3>\n <h3 *ngIf=\"IsAtRoot && Dashboards.length > 0 && !SearchText\">No uncategorized dashboards</h3>\n <h3 *ngIf=\"!IsAtRoot && !SearchText\">This folder is empty</h3>\n <h3 *ngIf=\"SearchText\">No matching dashboards</h3>\n <p *ngIf=\"IsAtRoot && Dashboards.length === 0\">\n Create your first dashboard to visualize and monitor your data.\n </p>\n <p *ngIf=\"IsAtRoot && Dashboards.length > 0 && !SearchText\">\n All dashboards are organized into categories. Browse categories or create a new dashboard here.\n </p>\n <p *ngIf=\"!IsAtRoot && !SearchText\">\n Create a dashboard or category in this folder.\n </p>\n <p *ngIf=\"SearchText\">\n Try adjusting your search terms.\n </p>\n <button\n class=\"btn-primary\"\n *ngIf=\"ShowCreateButton\"\n (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Dashboard\n </button>\n <button\n class=\"btn-secondary\"\n *ngIf=\"Dashboards.length > 0\"\n (click)=\"ClearFilters()\">\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n Clear Filters\n </button>\n </div>\n\n <!-- Category Drop Zones (for drag and drop) -->\n <div class=\"category-drop-zones\" *ngIf=\"DraggingId && Categories.length > 0\">\n <div class=\"drop-zone-header\">Drop to move to category:</div>\n <div class=\"drop-zones\">\n <div\n class=\"drop-zone\"\n [class.active]=\"DropTargetCategoryId === null\"\n (dragover)=\"OnDragOverCategory(null, $event)\"\n (dragleave)=\"OnDragLeaveCategory()\"\n (drop)=\"OnDropOnCategory(null, $event)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n Uncategorized\n </div>\n <div\n *ngFor=\"let cat of Categories; trackBy: TrackByCategory\"\n class=\"drop-zone\"\n [class.active]=\"DropTargetCategoryId === cat.ID\"\n (dragover)=\"OnDragOverCategory(cat.ID, $event)\"\n (dragleave)=\"OnDragLeaveCategory()\"\n (drop)=\"OnDropOnCategory(cat.ID, $event)\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ cat.Name }}\n </div>\n </div>\n </div>\n\n <!-- Delete Confirmation Dialog -->\n <mj-confirm-dialog\n [visible]=\"ShowDeleteConfirm\"\n type=\"danger\"\n title=\"Delete Dashboard{{ DashboardsPendingDelete.length > 1 ? 's' : '' }}\"\n [message]=\"DashboardsPendingDelete.length === 1\n ? 'Are you sure you want to delete \\'' + DashboardsPendingDelete[0].Name + '\\'? This action cannot be undone.'\n : 'Are you sure you want to delete ' + DashboardsPendingDelete.length + ' dashboards? This action cannot be undone.'\"\n confirmText=\"Delete\"\n cancelText=\"Cancel\"\n (confirmed)=\"ConfirmDelete()\"\n (cancelled)=\"CloseDeleteConfirm()\">\n </mj-confirm-dialog>\n\n <!-- Move to Folder Dialog -->\n <div class=\"move-dialog-overlay\" *ngIf=\"ShowMoveDialog\" (click)=\"CloseMoveDialog()\">\n <div class=\"move-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header\">\n <h3>Move to Category</h3>\n <button class=\"close-btn\" (click)=\"CloseMoveDialog()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\">\n <p>Move {{ SelectedCount }} dashboard{{ SelectedCount > 1 ? 's' : '' }} to:</p>\n <div class=\"category-list\">\n <div\n class=\"category-option\"\n (click)=\"ConfirmMove(null)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n Uncategorized\n </div>\n <div\n *ngFor=\"let cat of Categories; trackBy: TrackByCategory\"\n class=\"category-option\"\n (click)=\"ConfirmMove(cat.ID)\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ cat.Name }}\n </div>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button class=\"btn-secondary\" (click)=\"CloseMoveDialog()\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Create Category Dialog -->\n <div class=\"create-category-dialog-overlay\" *ngIf=\"ShowCreateCategoryDialog\" (click)=\"CloseCreateCategoryDialog()\">\n <div class=\"create-category-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header\">\n <h3>\n <i class=\"fa-solid fa-folder-plus\"></i>\n Create Category\n </h3>\n <button class=\"close-btn\" (click)=\"CloseCreateCategoryDialog()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\">\n <div class=\"form-field\">\n <label for=\"category-name\">Name *</label>\n <input\n type=\"text\"\n id=\"category-name\"\n [(ngModel)]=\"NewCategoryName\"\n placeholder=\"Enter category name\"\n (keyup.enter)=\"ConfirmCreateCategory()\">\n </div>\n <div class=\"form-field\">\n <label for=\"category-description\">Description</label>\n <textarea\n id=\"category-description\"\n [(ngModel)]=\"NewCategoryDescription\"\n placeholder=\"Optional description\"\n rows=\"3\"></textarea>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button\n class=\"btn-primary\"\n (click)=\"ConfirmCreateCategory()\"\n [disabled]=\"!NewCategoryName.trim()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create\n </button>\n <button class=\"btn-secondary\" (click)=\"CloseCreateCategoryDialog()\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Delete Category Confirmation Dialog -->\n <div class=\"delete-category-dialog-overlay\" *ngIf=\"ShowDeleteCategoryConfirm\" (click)=\"CloseDeleteCategoryConfirm()\">\n <div class=\"delete-category-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header danger\">\n <h3>\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Delete Category\n </h3>\n <button class=\"close-btn\" (click)=\"CloseDeleteCategoryConfirm()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\" *ngIf=\"CategoryPendingDelete\">\n <div class=\"warning-message\">\n <p>\n You are about to delete the category <strong>\"{{ CategoryPendingDelete.Name }}\"</strong>.\n </p>\n <ng-container *ngIf=\"GetCategoryContentCount(CategoryPendingDelete) as counts\">\n <p *ngIf=\"counts.dashboards > 0 || counts.categories > 0\" class=\"content-warning\">\n <i class=\"fa-solid fa-warning\"></i>\n This category contains:\n </p>\n <ul *ngIf=\"counts.dashboards > 0 || counts.categories > 0\" class=\"content-list\">\n <li *ngIf=\"counts.dashboards > 0\">\n <i class=\"fa-solid fa-chart-line\"></i>\n {{ counts.dashboards }} dashboard{{ counts.dashboards !== 1 ? 's' : '' }}\n </li>\n <li *ngIf=\"counts.categories > 0\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ counts.categories }} sub-categor{{ counts.categories !== 1 ? 'ies' : 'y' }}\n </li>\n </ul>\n </ng-container>\n </div>\n <div class=\"confirmation-checkbox\">\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"DeleteCategoryIncludeContents\">\n <span class=\"checkbox-text\">\n I understand this will permanently delete this category and all its contents. This action cannot be undone.\n </span>\n </label>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button\n class=\"btn-danger\"\n (click)=\"ConfirmDeleteCategory()\"\n [disabled]=\"!DeleteCategoryIncludeContents\">\n <i class=\"fa-solid fa-trash\"></i>\n Delete Category\n </button>\n <button class=\"btn-secondary\" (click)=\"CloseDeleteCategoryConfirm()\">Cancel</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* Dashboard Browser Component Styles */\n\n.dashboard-browser {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n position: relative;\n}\n\n/* Browser Toolbar */\n.browser-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px 0 0;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n gap: 16px;\n}\n\n.toolbar-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-count {\n color: #666;\n font-size: 13px;\n padding: 4px 10px;\n background: #f0f0f0;\n border-radius: 12px;\n}\n\n/* Legacy header styles (kept for compatibility) */\n.browser-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-left h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.header-left h2 i {\n color: #5c6bc0;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n background: #f0f0f0;\n border-radius: 6px;\n padding: 2px;\n}\n\n.toggle-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.toggle-btn:hover {\n color: #333;\n}\n\n.toggle-btn.active {\n background: #fff;\n color: #5c6bc0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n/* Selection Mode Button */\n.select-mode-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.select-mode-btn:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.select-mode-btn i {\n font-size: 12px;\n}\n\n/* Selection Toolbar (replaces bulk-actions) */\n.selection-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: #e3f2fd;\n border-radius: 6px;\n}\n\n.selection-toolbar .action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.selection-toolbar .action-btn:disabled:hover {\n background: transparent;\n color: #666;\n}\n\n.selected-count {\n font-size: 13px;\n color: #1976d2;\n font-weight: 500;\n min-width: 70px;\n}\n\n/* Buttons */\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #5c6bc0;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-primary:hover {\n background: #4a5ab9;\n}\n\n.btn-secondary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f0f0f0;\n color: #333;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-secondary:hover {\n background: #e0e0e0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.action-btn:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.action-btn.danger:hover {\n background: #ffebee;\n color: #d32f2f;\n}\n\n/* Filters */\n.browser-filters {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.search-box {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 400px;\n background: #f5f5f5;\n border-radius: 6px;\n padding: 0 12px;\n}\n\n.search-box i {\n color: #999;\n font-size: 14px;\n}\n\n.search-box input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n}\n\n.search-box .clear-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #999;\n cursor: pointer;\n border-radius: 50%;\n}\n\n.search-box .clear-btn:hover {\n background: #e0e0e0;\n color: #666;\n}\n\n.category-filter select {\n padding: 10px 32px 10px 12px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 14px;\n background: #fff;\n cursor: pointer;\n outline: none;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n}\n\n.clear-filters-btn,\n.select-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.clear-filters-btn:hover,\n.select-all-btn:hover {\n background: #f0f0f0;\n color: #333;\n}\n\n/* Loading Overlay */\n.loading-overlay {\n position: absolute;\n inset: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n\n/* Card Grid */\n.dashboard-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 20px;\n padding: 24px;\n overflow-y: auto;\n}\n\n.dashboard-card {\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n cursor: pointer;\n transition: all 0.2s;\n border: 2px solid transparent;\n position: relative;\n}\n\n.dashboard-card:hover {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n transform: translateY(-2px);\n}\n\n.dashboard-card.selected {\n border-color: #5c6bc0;\n background: #f8f9ff;\n}\n\n.dashboard-card.dragging {\n opacity: 0.5;\n}\n\n.card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 8px;\n color: #fff;\n font-size: 16px;\n}\n\n/* Selection area in top-right corner of card */\n.card-select-area {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 2;\n padding: 10px;\n background: #e3f2fd;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s;\n}\n\n.card-select-area:hover {\n background: #bbdefb;\n}\n\n.dashboard-card.selected .card-select-area {\n background: #5c6bc0;\n}\n\n.card-select-area input {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #5c6bc0;\n}\n\n.card-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.dashboard-card:hover .card-actions {\n opacity: 1;\n}\n\n.card-content {\n padding: 16px;\n}\n\n.card-title {\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Shared Badge */\n.shared-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #e3f2fd;\n color: #1976d2;\n font-size: 10px;\n flex-shrink: 0;\n}\n\n.card-description {\n margin: 0 0 12px 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #999;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* List View */\n.dashboard-list {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n margin: 16px 24px;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.list-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: #f5f7fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.list-row {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.list-row:hover {\n background: #f8f9ff;\n}\n\n.list-row.selected {\n background: #e8eaf6;\n}\n\n.list-row.dragging {\n opacity: 0.5;\n}\n\n.list-col {\n display: flex;\n align-items: center;\n}\n\n.checkbox-col {\n width: 40px;\n}\n\n.checkbox-col input {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.name-col {\n flex: 1;\n min-width: 200px;\n gap: 10px;\n display: flex;\n align-items: center;\n}\n\n.name-col .shared-badge {\n margin-left: 4px;\n}\n\n.row-icon {\n color: #5c6bc0;\n font-size: 14px;\n}\n\n.dashboard-name {\n font-weight: 500;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.category-col,\n.type-col {\n width: 120px;\n color: #666;\n font-size: 13px;\n}\n\n.date-col {\n width: 120px;\n color: #999;\n font-size: 13px;\n}\n\n.actions-col {\n width: 80px;\n justify-content: flex-end;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.list-row:hover .actions-col {\n opacity: 1;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px;\n text-align: center;\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f0f0f0;\n border-radius: 50%;\n margin-bottom: 24px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: #bbb;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n color: #333;\n}\n\n.empty-state p {\n margin: 0 0 24px 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n}\n\n/* Category Drop Zones */\n.category-drop-zones {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n padding: 16px;\n z-index: 1000;\n}\n\n.drop-zone-header {\n font-size: 12px;\n color: #666;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.drop-zones {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.drop-zone {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f5f5f5;\n border: 2px dashed #ccc;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.drop-zone:hover,\n.drop-zone.active {\n background: #e3f2fd;\n border-color: #5c6bc0;\n color: #333;\n}\n\n/* Move Dialog */\n.move-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.move-dialog {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header h3 {\n margin: 0;\n font-size: 18px;\n color: #333;\n}\n\n.close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n}\n\n.close-btn:hover {\n background: #f0f0f0;\n}\n\n.dialog-content {\n padding: 20px;\n overflow-y: auto;\n}\n\n.dialog-content p {\n margin: 0 0 16px 0;\n color: #666;\n font-size: 14px;\n}\n\n.category-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.category-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.category-option:hover {\n background: #f5f5f5;\n}\n\n.category-option i {\n color: #5c6bc0;\n}\n\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n/* New Dropdown */\n.new-dropdown {\n position: relative;\n}\n\n.dropdown-caret {\n font-size: 10px;\n margin-left: 4px;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n overflow: hidden;\n}\n\n.dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n color: #333;\n font-size: 14px;\n cursor: pointer;\n text-align: left;\n transition: background 0.15s;\n}\n\n.dropdown-item:hover {\n background: #f5f5f5;\n}\n\n.dropdown-item i {\n color: #5c6bc0;\n width: 16px;\n text-align: center;\n}\n\n.dropdown-backdrop {\n position: fixed;\n inset: 0;\n z-index: 1000;\n}\n\n/* Create Category Dialog */\n.create-category-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.create-category-dialog {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.create-category-dialog .dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.create-category-dialog .dialog-header h3 {\n margin: 0;\n font-size: 18px;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.create-category-dialog .dialog-header h3 i {\n color: #5c6bc0;\n}\n\n.create-category-dialog .dialog-content {\n padding: 20px;\n}\n\n.form-field {\n margin-bottom: 16px;\n}\n\n.form-field:last-child {\n margin-bottom: 0;\n}\n\n.form-field label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #555;\n}\n\n.form-field input,\n.form-field textarea {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.15s, box-shadow 0.15s;\n box-sizing: border-box;\n}\n\n.form-field input:focus,\n.form-field textarea:focus {\n outline: none;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 3px rgba(92, 107, 192, 0.1);\n}\n\n.form-field textarea {\n resize: vertical;\n min-height: 80px;\n}\n\n.create-category-dialog .dialog-footer {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.create-category-dialog .dialog-footer .btn-primary {\n flex: 0 0 auto;\n}\n\n.create-category-dialog .dialog-footer .btn-secondary {\n flex: 0 0 auto;\n margin-left: auto;\n}\n\n/* Breadcrumb Navigation */\n.breadcrumb-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n flex-wrap: wrap;\n}\n\n.breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: #5c6bc0;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: background 0.15s;\n}\n\n.breadcrumb-item:hover {\n background: #f0f0f0;\n}\n\n.breadcrumb-item.current {\n color: #333;\n font-weight: 500;\n cursor: default;\n}\n\n.breadcrumb-item.current:hover {\n background: transparent;\n}\n\n.breadcrumb-item i {\n font-size: 12px;\n}\n\n.breadcrumb-item.root i {\n font-size: 14px;\n}\n\n.breadcrumb-separator {\n color: #999;\n font-size: 10px;\n}\n\n/* Category Cards */\n.category-card {\n cursor: pointer;\n}\n\n.category-card:hover {\n border-color: #5c6bc0;\n}\n\n.folder-icon {\n background: linear-gradient(135deg, #ffa726, #ffb74d) !important;\n}\n\n.category-row {\n background: #fafafa;\n}\n\n.category-row:hover {\n background: #fff3e0 !important;\n}\n\n.category-row .folder-icon {\n color: #ffa726;\n}\n\n/* Drop target highlighting for category cards/rows */\n.dashboard-card.category-card.drop-target,\n.list-row.category-row.drop-target {\n background: #e3f2fd;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.3);\n}\n\n/* Search text highlighting */\nmark {\n background: #fff59d;\n color: inherit;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n/* Delete Category Dialog */\n.delete-category-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.delete-category-dialog {\n background: #fff;\n border-radius: 12px;\n width: 480px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.delete-category-dialog .dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.delete-category-dialog .dialog-header.danger {\n background: #ffebee;\n border-bottom-color: #ffcdd2;\n}\n\n.delete-category-dialog .dialog-header.danger h3 {\n color: #c62828;\n}\n\n.delete-category-dialog .dialog-header.danger h3 i {\n color: #d32f2f;\n}\n\n.delete-category-dialog .dialog-header h3 {\n margin: 0;\n font-size: 18px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.delete-category-dialog .dialog-content {\n padding: 20px;\n}\n\n.warning-message {\n margin-bottom: 20px;\n}\n\n.warning-message p {\n margin: 0 0 12px 0;\n color: #333;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.warning-message .content-warning {\n color: #d32f2f;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 16px;\n}\n\n.warning-message .content-list {\n margin: 8px 0 0 0;\n padding-left: 24px;\n color: #666;\n}\n\n.warning-message .content-list li {\n margin: 6px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.warning-message .content-list li i {\n color: #999;\n width: 16px;\n text-align: center;\n}\n\n.confirmation-checkbox {\n background: #fff3e0;\n border: 1px solid #ffcc80;\n border-radius: 8px;\n padding: 16px;\n}\n\n.checkbox-label {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n}\n\n.checkbox-label input {\n width: 18px;\n height: 18px;\n margin-top: 2px;\n cursor: pointer;\n accent-color: #d32f2f;\n}\n\n.checkbox-text {\n font-size: 13px;\n color: #666;\n line-height: 1.5;\n}\n\n.delete-category-dialog .dialog-footer {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #d32f2f;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-danger:hover {\n background: #c62828;\n}\n\n.btn-danger:disabled {\n background: #e0e0e0;\n color: #999;\n cursor: not-allowed;\n}\n\n.delete-category-dialog .dialog-footer .btn-secondary {\n margin-left: auto;\n}\n"] }]
|
|
1799
|
+
args: [{ selector: 'mj-dashboard-browser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Dashboard Browser Component -->\n<div class=\"dashboard-browser\" [class.loading]=\"IsLoading\">\n <!-- Toolbar Row: Breadcrumb + Actions -->\n <div class=\"browser-toolbar\">\n <!-- Breadcrumb Navigation -->\n <mj-dashboard-breadcrumb\n [Categories]=\"Categories\"\n [CurrentCategoryId]=\"SelectedCategoryId\"\n [RootIcon]=\"IconClass\"\n [RootLabel]=\"Title\"\n [AllowDragDrop]=\"AllowDragDrop && (DraggingId !== null || IsSelectionMode)\"\n Size=\"large\"\n (Navigate)=\"NavigateToCategory($event.CategoryId)\"\n (DashboardDrop)=\"OnBreadcrumbDrop($event)\">\n </mj-dashboard-breadcrumb>\n\n <!-- Right-side Actions -->\n <div class=\"toolbar-actions\">\n <!-- Dashboard count -->\n <span class=\"dashboard-count\">{{ FilteredDashboards.length }} dashboards</span>\n\n <!-- View Toggle -->\n <div class=\"view-toggle\">\n <button\n class=\"toggle-btn\"\n [class.active]=\"ViewMode === 'cards'\"\n (click)=\"SetViewMode('cards')\"\n title=\"Card View\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button\n class=\"toggle-btn\"\n [class.active]=\"ViewMode === 'list'\"\n (click)=\"SetViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n\n <!-- Selection Mode Toggle & Bulk Actions -->\n <ng-container *ngIf=\"AllowMultiSelect\">\n <!-- Enter Selection Mode Button (when not in selection mode) -->\n <button\n class=\"select-mode-btn\"\n *ngIf=\"!IsSelectionMode && FilteredDashboards.length > 0\"\n (click)=\"EnterSelectionMode()\"\n title=\"Select multiple dashboards\">\n <i class=\"fa-solid fa-check-double\"></i>\n Select\n </button>\n\n <!-- Selection Mode Toolbar (when in selection mode) -->\n <div class=\"selection-toolbar\" *ngIf=\"IsSelectionMode\">\n <span class=\"selected-count\">{{ SelectedCount }} selected</span>\n <button class=\"action-btn\" (click)=\"SelectAll()\" title=\"Select all\">\n <i class=\"fa-solid fa-check-double\"></i>\n </button>\n <button class=\"action-btn\" (click)=\"OnMoveSelected()\" title=\"Move to folder\" [disabled]=\"SelectedCount === 0\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </button>\n <button class=\"action-btn danger\" (click)=\"OnDeleteSelected()\" title=\"Delete selected\" [disabled]=\"!CanDeleteAnySelected\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n <button class=\"action-btn\" (click)=\"ExitSelectionMode()\" title=\"Exit selection mode\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </ng-container>\n\n <!-- New Dropdown Button -->\n <div class=\"new-dropdown\" *ngIf=\"ShowCreateButton\">\n <button\n class=\"btn-primary\"\n (click)=\"ToggleNewMenu(); $event.stopPropagation()\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n <i class=\"fa-solid fa-caret-down dropdown-caret\"></i>\n </button>\n <div class=\"dropdown-menu\" *ngIf=\"ShowNewMenu\">\n <button class=\"dropdown-item\" (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Dashboard\n </button>\n <button class=\"dropdown-item\" (click)=\"OpenCreateCategoryDialog()\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n Category\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Click-away overlay for dropdown -->\n <div class=\"dropdown-backdrop\" *ngIf=\"ShowNewMenu\" (click)=\"CloseNewMenu()\"></div>\n\n <!-- Filters -->\n <div class=\"browser-filters\">\n <div class=\"search-box\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"SearchText\"\n (input)=\"OnSearchChange()\"\n placeholder=\"Search dashboards...\">\n <button\n class=\"clear-btn\"\n *ngIf=\"SearchText\"\n (click)=\"ClearSearch()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <button\n class=\"clear-filters-btn\"\n *ngIf=\"SearchText\"\n (click)=\"ClearSearch()\">\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n Clear Search\n </button>\n </div>\n\n <!-- Loading Overlay -->\n <div class=\"loading-overlay\" *ngIf=\"IsLoading\">\n <mj-loading text=\"Loading dashboards...\"></mj-loading>\n </div>\n\n <!-- Card View -->\n <div class=\"dashboard-grid\" *ngIf=\"ViewMode === 'cards' && (FilteredChildCategories.length > 0 || FilteredDashboards.length > 0)\">\n <!-- Category Folders -->\n <div\n *ngFor=\"let category of FilteredChildCategories; trackBy: TrackByCategory\"\n class=\"dashboard-card category-card\"\n [class.drop-target]=\"DragOverChildCategoryId === category.ID\"\n (click)=\"NavigateToCategory(category.ID)\"\n (dblclick)=\"$event.stopPropagation()\"\n (dragover)=\"OnDragOverChildCategory(category.ID, $event)\"\n (dragleave)=\"OnDragLeaveChildCategory()\"\n (drop)=\"OnDropOnChildCategory(category.ID, $event)\">\n <div class=\"card-header\">\n <div class=\"card-icon folder-icon\">\n <i class=\"fa-solid fa-folder\"></i>\n </div>\n <div class=\"card-actions\">\n <button\n class=\"action-btn danger\"\n title=\"Delete category\"\n (click)=\"OnDeleteCategory(category, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-content\">\n <h3 class=\"card-title\" [innerHTML]=\"HighlightMatch(category.Name)\"></h3>\n <p class=\"card-description\" *ngIf=\"category.Description\" [innerHTML]=\"HighlightMatch(category.Description)\">\n </p>\n <div class=\"card-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n Category\n </span>\n </div>\n </div>\n </div>\n\n <!-- Dashboard Cards -->\n <div\n *ngFor=\"let dashboard of FilteredDashboards; trackBy: TrackByDashboard\"\n class=\"dashboard-card\"\n [class.selected]=\"IsSelected(dashboard.ID)\"\n [class.dragging]=\"DraggingId === dashboard.ID\"\n [draggable]=\"AllowDragDrop\"\n (click)=\"OnDashboardClick(dashboard, $event)\"\n (dblclick)=\"OnDashboardDoubleClick(dashboard, $event)\"\n (dragstart)=\"OnDragStart(dashboard, $event)\"\n (dragend)=\"OnDragEnd()\">\n <!-- Selection checkbox in top-right corner -->\n <div\n class=\"card-select-area\"\n *ngIf=\"IsSelectionMode\"\n (click)=\"ToggleSelection(dashboard.ID); $event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [checked]=\"IsSelected(dashboard.ID)\"\n (change)=\"$event.stopPropagation()\">\n </div>\n <div class=\"card-header\">\n <div class=\"card-icon\">\n <i class=\"fa-solid fa-chart-line\"></i>\n </div>\n <div class=\"card-actions\">\n <button\n *ngIf=\"CanEdit(dashboard.ID)\"\n class=\"action-btn\"\n title=\"Edit\"\n (click)=\"OnEditDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n <button\n *ngIf=\"CanDelete(dashboard.ID)\"\n class=\"action-btn danger\"\n title=\"Delete\"\n (click)=\"OnDeleteDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-content\">\n <h3 class=\"card-title\">\n <span [innerHTML]=\"HighlightMatch(dashboard.Name)\"></span>\n <span class=\"shared-badge\" *ngIf=\"IsShared(dashboard.ID)\" title=\"Shared with you\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n </span>\n </h3>\n <p class=\"card-description\" *ngIf=\"dashboard.Description\" [innerHTML]=\"HighlightMatch(dashboard.Description)\">\n </p>\n <div class=\"card-meta\">\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ FormatDate(dashboard.__mj_UpdatedAt) }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- List View -->\n <div class=\"dashboard-list\" *ngIf=\"ViewMode === 'list' && (FilteredChildCategories.length > 0 || FilteredDashboards.length > 0)\">\n <div class=\"list-header\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\">\n <input\n type=\"checkbox\"\n [checked]=\"SelectedCount === FilteredDashboards.length && FilteredDashboards.length > 0\"\n [indeterminate]=\"SelectedCount > 0 && SelectedCount < FilteredDashboards.length\"\n (change)=\"SelectedCount === FilteredDashboards.length ? ClearSelection() : SelectAll()\">\n </div>\n <div class=\"list-col name-col\">Name</div>\n <div class=\"list-col type-col\">Type</div>\n <div class=\"list-col date-col\">Modified</div>\n <div class=\"list-col actions-col\">Actions</div>\n </div>\n <!-- Category Rows -->\n <div\n *ngFor=\"let category of FilteredChildCategories; trackBy: TrackByCategory\"\n class=\"list-row category-row\"\n [class.drop-target]=\"DragOverChildCategoryId === category.ID\"\n (click)=\"NavigateToCategory(category.ID)\"\n (dragover)=\"OnDragOverChildCategory(category.ID, $event)\"\n (dragleave)=\"OnDragLeaveChildCategory()\"\n (drop)=\"OnDropOnChildCategory(category.ID, $event)\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\">\n <!-- Empty placeholder for alignment -->\n </div>\n <div class=\"list-col name-col\">\n <i class=\"fa-solid fa-folder row-icon folder-icon\"></i>\n <span class=\"dashboard-name\" [innerHTML]=\"HighlightMatch(category.Name)\"></span>\n </div>\n <div class=\"list-col type-col\">\n Category\n </div>\n <div class=\"list-col date-col\">\n <!-- No date for categories -->\n </div>\n <div class=\"list-col actions-col\" (click)=\"$event.stopPropagation()\">\n <button\n class=\"action-btn danger\"\n title=\"Delete category\"\n (click)=\"OnDeleteCategory(category, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <!-- Dashboard Rows -->\n <div\n *ngFor=\"let dashboard of FilteredDashboards; trackBy: TrackByDashboard\"\n class=\"list-row\"\n [class.selected]=\"IsSelected(dashboard.ID)\"\n [class.dragging]=\"DraggingId === dashboard.ID\"\n [draggable]=\"AllowDragDrop\"\n (click)=\"OnDashboardClick(dashboard, $event)\"\n (dblclick)=\"OnDashboardDoubleClick(dashboard, $event)\"\n (dragstart)=\"OnDragStart(dashboard, $event)\"\n (dragend)=\"OnDragEnd()\">\n <div class=\"list-col checkbox-col\" *ngIf=\"IsSelectionMode\" (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [checked]=\"IsSelected(dashboard.ID)\"\n (change)=\"ToggleSelection(dashboard.ID)\">\n </div>\n <div class=\"list-col name-col\">\n <i class=\"fa-solid fa-chart-line row-icon\"></i>\n <span class=\"dashboard-name\" [innerHTML]=\"HighlightMatch(dashboard.Name)\"></span>\n <span class=\"shared-badge\" *ngIf=\"IsShared(dashboard.ID)\" title=\"Shared with you\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n </span>\n </div>\n <div class=\"list-col type-col\">\n Dashboard\n </div>\n <div class=\"list-col date-col\">\n {{ FormatDate(dashboard.__mj_UpdatedAt) }}\n </div>\n <div class=\"list-col actions-col\" (click)=\"$event.stopPropagation()\">\n <button\n *ngIf=\"CanEdit(dashboard.ID)\"\n class=\"action-btn\"\n title=\"Edit\"\n (click)=\"OnEditDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n <button\n *ngIf=\"CanDelete(dashboard.ID)\"\n class=\"action-btn danger\"\n title=\"Delete\"\n (click)=\"OnDeleteDashboard(dashboard, $event)\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"FilteredDashboards.length === 0 && FilteredChildCategories.length === 0 && !IsLoading\">\n <div class=\"empty-state-content\">\n <!-- First-time user experience (no dashboards at all) -->\n <ng-container *ngIf=\"IsAtRoot && Dashboards.length === 0\">\n <div class=\"empty-illustration\">\n <div class=\"illustration-bg\">\n <i class=\"fa-solid fa-gauge-high main-icon\"></i>\n </div>\n <div class=\"illustration-accent accent-1\"><i class=\"fa-solid fa-chart-line\"></i></div>\n <div class=\"illustration-accent accent-2\"><i class=\"fa-solid fa-chart-bar\"></i></div>\n <div class=\"illustration-accent accent-3\"><i class=\"fa-solid fa-chart-pie\"></i></div>\n </div>\n <h2 class=\"empty-title\">Welcome to Dashboards</h2>\n <p class=\"empty-description\">\n Create custom dashboards to visualize your data, track key metrics, and monitor important information all in one place.\n </p>\n <div class=\"empty-actions\" *ngIf=\"ShowCreateButton\">\n <button class=\"btn-primary large\" (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Your First Dashboard\n </button>\n </div>\n <div class=\"empty-features\">\n <div class=\"feature-item\">\n <i class=\"fa-solid fa-table-cells\"></i>\n <span>Customizable layouts</span>\n </div>\n <div class=\"feature-item\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Connect to your data</span>\n </div>\n <div class=\"feature-item\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n <span>Share with your team</span>\n </div>\n </div>\n </ng-container>\n\n <!-- Folder is empty -->\n <ng-container *ngIf=\"!IsAtRoot && !SearchText\">\n <div class=\"empty-icon folder-empty\">\n <i class=\"fa-solid fa-folder-open\"></i>\n </div>\n <h3 class=\"empty-title\">This folder is empty</h3>\n <p class=\"empty-description\">\n Add dashboards or create sub-folders to organize your content.\n </p>\n <div class=\"empty-actions\" *ngIf=\"ShowCreateButton\">\n <button class=\"btn-primary\" (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Dashboard\n </button>\n </div>\n </ng-container>\n\n <!-- Root has dashboards but none uncategorized -->\n <ng-container *ngIf=\"IsAtRoot && Dashboards.length > 0 && !SearchText\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </div>\n <h3 class=\"empty-title\">No uncategorized dashboards</h3>\n <p class=\"empty-description\">\n All your dashboards are organized into folders. Browse the folders above or create a new dashboard here.\n </p>\n <div class=\"empty-actions\" *ngIf=\"ShowCreateButton\">\n <button class=\"btn-primary\" (click)=\"OnCreateDashboard()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Dashboard\n </button>\n </div>\n </ng-container>\n\n <!-- Search returned no results -->\n <ng-container *ngIf=\"SearchText\">\n <div class=\"empty-icon search-empty\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </div>\n <h3 class=\"empty-title\">No results found</h3>\n <p class=\"empty-description\">\n No dashboards or folders match \"<strong>{{ SearchText }}</strong>\". Try a different search term.\n </p>\n <div class=\"empty-actions\">\n <button class=\"btn-secondary\" (click)=\"ClearSearch()\">\n <i class=\"fa-solid fa-times\"></i>\n Clear Search\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n\n <!-- Category Drop Zones (for drag and drop) -->\n <div class=\"category-drop-zones\" *ngIf=\"DraggingId && Categories.length > 0\">\n <div class=\"drop-zone-header\">Drop to move to category:</div>\n <div class=\"drop-zones\">\n <div\n class=\"drop-zone\"\n [class.active]=\"DropTargetCategoryId === null\"\n (dragover)=\"OnDragOverCategory(null, $event)\"\n (dragleave)=\"OnDragLeaveCategory()\"\n (drop)=\"OnDropOnCategory(null, $event)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n Uncategorized\n </div>\n <div\n *ngFor=\"let cat of Categories; trackBy: TrackByCategory\"\n class=\"drop-zone\"\n [class.active]=\"DropTargetCategoryId === cat.ID\"\n (dragover)=\"OnDragOverCategory(cat.ID, $event)\"\n (dragleave)=\"OnDragLeaveCategory()\"\n (drop)=\"OnDropOnCategory(cat.ID, $event)\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ cat.Name }}\n </div>\n </div>\n </div>\n\n <!-- Delete Confirmation Dialog -->\n <mj-confirm-dialog\n [visible]=\"ShowDeleteConfirm\"\n type=\"danger\"\n title=\"Delete Dashboard{{ DashboardsPendingDelete.length > 1 ? 's' : '' }}\"\n [message]=\"DashboardsPendingDelete.length === 1\n ? 'Are you sure you want to delete \\'' + DashboardsPendingDelete[0].Name + '\\'? This action cannot be undone.'\n : 'Are you sure you want to delete ' + DashboardsPendingDelete.length + ' dashboards? This action cannot be undone.'\"\n confirmText=\"Delete\"\n cancelText=\"Cancel\"\n (confirmed)=\"ConfirmDelete()\"\n (cancelled)=\"CloseDeleteConfirm()\">\n </mj-confirm-dialog>\n\n <!-- Move to Folder Dialog -->\n <div class=\"move-dialog-overlay\" *ngIf=\"ShowMoveDialog\" (click)=\"CloseMoveDialog()\">\n <div class=\"move-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header\">\n <h3>Move to Category</h3>\n <button class=\"close-btn\" (click)=\"CloseMoveDialog()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\">\n <p>Move {{ SelectedCount }} dashboard{{ SelectedCount > 1 ? 's' : '' }} to:</p>\n <div class=\"category-list\">\n <div\n class=\"category-option\"\n (click)=\"ConfirmMove(null)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n Uncategorized\n </div>\n <div\n *ngFor=\"let cat of Categories; trackBy: TrackByCategory\"\n class=\"category-option\"\n (click)=\"ConfirmMove(cat.ID)\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ cat.Name }}\n </div>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button class=\"btn-secondary\" (click)=\"CloseMoveDialog()\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Create Category Dialog -->\n <div class=\"create-category-dialog-overlay\" *ngIf=\"ShowCreateCategoryDialog\" (click)=\"CloseCreateCategoryDialog()\">\n <div class=\"create-category-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header\">\n <h3>\n <i class=\"fa-solid fa-folder-plus\"></i>\n Create Category\n </h3>\n <button class=\"close-btn\" (click)=\"CloseCreateCategoryDialog()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\">\n <div class=\"form-field\">\n <label for=\"category-name\">Name *</label>\n <input\n type=\"text\"\n id=\"category-name\"\n [(ngModel)]=\"NewCategoryName\"\n placeholder=\"Enter category name\"\n (keyup.enter)=\"ConfirmCreateCategory()\">\n </div>\n <div class=\"form-field\">\n <label for=\"category-description\">Description</label>\n <textarea\n id=\"category-description\"\n [(ngModel)]=\"NewCategoryDescription\"\n placeholder=\"Optional description\"\n rows=\"3\"></textarea>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button\n class=\"btn-primary\"\n (click)=\"ConfirmCreateCategory()\"\n [disabled]=\"!NewCategoryName.trim()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create\n </button>\n <button class=\"btn-secondary\" (click)=\"CloseCreateCategoryDialog()\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Delete Category Confirmation Dialog -->\n <div class=\"delete-category-dialog-overlay\" *ngIf=\"ShowDeleteCategoryConfirm\" (click)=\"CloseDeleteCategoryConfirm()\">\n <div class=\"delete-category-dialog\" (click)=\"$event.stopPropagation()\">\n <div class=\"dialog-header danger\">\n <h3>\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Delete Category\n </h3>\n <button class=\"close-btn\" (click)=\"CloseDeleteCategoryConfirm()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <div class=\"dialog-content\" *ngIf=\"CategoryPendingDelete\">\n <div class=\"warning-message\">\n <p>\n You are about to delete the category <strong>\"{{ CategoryPendingDelete.Name }}\"</strong>.\n </p>\n <ng-container *ngIf=\"GetCategoryContentCount(CategoryPendingDelete) as counts\">\n <p *ngIf=\"counts.dashboards > 0 || counts.categories > 0\" class=\"content-warning\">\n <i class=\"fa-solid fa-warning\"></i>\n This category contains:\n </p>\n <ul *ngIf=\"counts.dashboards > 0 || counts.categories > 0\" class=\"content-list\">\n <li *ngIf=\"counts.dashboards > 0\">\n <i class=\"fa-solid fa-chart-line\"></i>\n {{ counts.dashboards }} dashboard{{ counts.dashboards !== 1 ? 's' : '' }}\n </li>\n <li *ngIf=\"counts.categories > 0\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ counts.categories }} sub-categor{{ counts.categories !== 1 ? 'ies' : 'y' }}\n </li>\n </ul>\n </ng-container>\n </div>\n <div class=\"confirmation-checkbox\">\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"DeleteCategoryIncludeContents\">\n <span class=\"checkbox-text\">\n I understand this will permanently delete this category and all its contents. This action cannot be undone.\n </span>\n </label>\n </div>\n </div>\n <div class=\"dialog-footer\">\n <button\n class=\"btn-danger\"\n (click)=\"ConfirmDeleteCategory()\"\n [disabled]=\"!DeleteCategoryIncludeContents\">\n <i class=\"fa-solid fa-trash\"></i>\n Delete Category\n </button>\n <button class=\"btn-secondary\" (click)=\"CloseDeleteCategoryConfirm()\">Cancel</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* Dashboard Browser Component Styles */\n\n.dashboard-browser {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f5f7fa;\n position: relative;\n}\n\n/* Browser Toolbar */\n.browser-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 24px 0 0;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n gap: 16px;\n}\n\n.toolbar-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-count {\n color: #666;\n font-size: 13px;\n padding: 4px 10px;\n background: #f0f0f0;\n border-radius: 12px;\n}\n\n/* Legacy header styles (kept for compatibility) */\n.browser-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-left h2 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.header-left h2 i {\n color: #5c6bc0;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n background: #f0f0f0;\n border-radius: 6px;\n padding: 2px;\n}\n\n.toggle-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.toggle-btn:hover {\n color: #333;\n}\n\n.toggle-btn.active {\n background: #fff;\n color: #5c6bc0;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n/* Selection Mode Button */\n.select-mode-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #f0f0f0;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.select-mode-btn:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.select-mode-btn i {\n font-size: 12px;\n}\n\n/* Selection Toolbar (replaces bulk-actions) */\n.selection-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: #e3f2fd;\n border-radius: 6px;\n}\n\n.selection-toolbar .action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.selection-toolbar .action-btn:disabled:hover {\n background: transparent;\n color: #666;\n}\n\n.selected-count {\n font-size: 13px;\n color: #1976d2;\n font-weight: 500;\n min-width: 70px;\n}\n\n/* Buttons */\n.btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #5c6bc0;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-primary:hover {\n background: #4a5ab9;\n}\n\n.btn-secondary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f0f0f0;\n color: #333;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-secondary:hover {\n background: #e0e0e0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.action-btn:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.action-btn.danger:hover {\n background: #ffebee;\n color: #d32f2f;\n}\n\n/* Filters */\n.browser-filters {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.search-box {\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 400px;\n background: #f5f5f5;\n border-radius: 6px;\n padding: 0 12px;\n}\n\n.search-box i {\n color: #999;\n font-size: 14px;\n}\n\n.search-box input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n}\n\n.search-box .clear-btn {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #999;\n cursor: pointer;\n border-radius: 50%;\n}\n\n.search-box .clear-btn:hover {\n background: #e0e0e0;\n color: #666;\n}\n\n.category-filter select {\n padding: 10px 32px 10px 12px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n font-size: 14px;\n background: #fff;\n cursor: pointer;\n outline: none;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n}\n\n.clear-filters-btn,\n.select-all-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s;\n}\n\n.clear-filters-btn:hover,\n.select-all-btn:hover {\n background: #f0f0f0;\n color: #333;\n}\n\n/* Loading Overlay */\n.loading-overlay {\n position: absolute;\n inset: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n\n/* Card Grid */\n.dashboard-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 20px;\n padding: 24px;\n overflow-y: auto;\n}\n\n.dashboard-card {\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n cursor: pointer;\n transition: all 0.2s;\n border: 2px solid transparent;\n position: relative;\n}\n\n.dashboard-card:hover {\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n transform: translateY(-2px);\n}\n\n.dashboard-card.selected {\n border-color: #5c6bc0;\n background: #f8f9ff;\n}\n\n.dashboard-card.dragging {\n opacity: 0.5;\n}\n\n.card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 8px;\n color: #fff;\n font-size: 16px;\n}\n\n/* Selection area in top-right corner of card */\n.card-select-area {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 2;\n padding: 10px;\n background: #e3f2fd;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s;\n}\n\n.card-select-area:hover {\n background: #bbdefb;\n}\n\n.dashboard-card.selected .card-select-area {\n background: #5c6bc0;\n}\n\n.card-select-area input {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #5c6bc0;\n}\n\n.card-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.dashboard-card:hover .card-actions {\n opacity: 1;\n}\n\n.card-content {\n padding: 16px;\n}\n\n.card-title {\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Shared Badge */\n.shared-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #e3f2fd;\n color: #1976d2;\n font-size: 10px;\n flex-shrink: 0;\n}\n\n.card-description {\n margin: 0 0 12px 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #999;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* List View */\n.dashboard-list {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n margin: 16px 24px;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.list-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: #f5f7fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.list-row {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n border-bottom: 1px solid #f0f0f0;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.list-row:hover {\n background: #f8f9ff;\n}\n\n.list-row.selected {\n background: #e8eaf6;\n}\n\n.list-row.dragging {\n opacity: 0.5;\n}\n\n.list-col {\n display: flex;\n align-items: center;\n}\n\n.checkbox-col {\n width: 40px;\n}\n\n.checkbox-col input {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.name-col {\n flex: 1;\n min-width: 200px;\n gap: 10px;\n display: flex;\n align-items: center;\n}\n\n.name-col .shared-badge {\n margin-left: 4px;\n}\n\n.row-icon {\n color: #5c6bc0;\n font-size: 14px;\n}\n\n.dashboard-name {\n font-weight: 500;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.category-col,\n.type-col {\n width: 120px;\n color: #666;\n font-size: 13px;\n}\n\n.date-col {\n width: 120px;\n color: #999;\n font-size: 13px;\n}\n\n.actions-col {\n width: 80px;\n justify-content: flex-end;\n gap: 4px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n\n.list-row:hover .actions-col {\n opacity: 1;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 48px 24px;\n text-align: center;\n min-height: 400px;\n}\n\n.empty-state-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 480px;\n}\n\n/* Standard empty icon */\n.empty-icon {\n width: 100px;\n height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #f5f7fa, #e8eaf6);\n border-radius: 50%;\n margin-bottom: 24px;\n box-shadow: 0 4px 20px rgba(92, 107, 192, 0.1);\n}\n\n.empty-icon i {\n font-size: 40px;\n color: #9fa8da;\n}\n\n.empty-icon.folder-empty {\n background: linear-gradient(135deg, #fff3e0, #ffe0b2);\n}\n\n.empty-icon.folder-empty i {\n color: #ffb74d;\n}\n\n.empty-icon.search-empty {\n background: linear-gradient(135deg, #e3f2fd, #bbdefb);\n}\n\n.empty-icon.search-empty i {\n color: #64b5f6;\n}\n\n/* Welcome illustration for first-time users */\n.empty-illustration {\n position: relative;\n width: 160px;\n height: 160px;\n margin-bottom: 32px;\n}\n\n.illustration-bg {\n width: 120px;\n height: 120px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #5c6bc0, #7986cb);\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n box-shadow: 0 8px 32px rgba(92, 107, 192, 0.3);\n}\n\n.illustration-bg .main-icon {\n font-size: 48px;\n color: #fff;\n}\n\n.illustration-accent {\n position: absolute;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #fff;\n border-radius: 50%;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n.illustration-accent i {\n font-size: 16px;\n}\n\n.illustration-accent.accent-1 {\n top: 0;\n right: 10px;\n}\n\n.illustration-accent.accent-1 i {\n color: #26a69a;\n}\n\n.illustration-accent.accent-2 {\n bottom: 10px;\n left: 0;\n}\n\n.illustration-accent.accent-2 i {\n color: #ff7043;\n}\n\n.illustration-accent.accent-3 {\n bottom: 0;\n right: 0;\n}\n\n.illustration-accent.accent-3 i {\n color: #ab47bc;\n}\n\n/* Empty state typography */\n.empty-title {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.empty-state-content h3.empty-title {\n font-size: 20px;\n}\n\n.empty-description {\n margin: 0 0 28px 0;\n color: #666;\n font-size: 15px;\n line-height: 1.6;\n max-width: 380px;\n}\n\n.empty-description strong {\n color: #333;\n}\n\n/* Empty state actions */\n.empty-actions {\n display: flex;\n gap: 12px;\n margin-bottom: 32px;\n}\n\n.btn-primary.large {\n padding: 14px 28px;\n font-size: 15px;\n border-radius: 8px;\n}\n\n/* Feature highlights for first-time users */\n.empty-features {\n display: flex;\n gap: 32px;\n padding-top: 24px;\n border-top: 1px solid #e0e0e0;\n}\n\n.feature-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: #666;\n font-size: 13px;\n}\n\n.feature-item i {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f5f7fa;\n border-radius: 8px;\n color: #5c6bc0;\n font-size: 16px;\n}\n\n/* Legacy support */\n.empty-state h3:not(.empty-title) {\n margin: 0 0 8px 0;\n font-size: 18px;\n color: #333;\n}\n\n.empty-state p:not(.empty-description) {\n margin: 0 0 24px 0;\n color: #666;\n font-size: 14px;\n max-width: 300px;\n}\n\n/* Category Drop Zones */\n.category-drop-zones {\n position: fixed;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n padding: 16px;\n z-index: 1000;\n}\n\n.drop-zone-header {\n font-size: 12px;\n color: #666;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.drop-zones {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.drop-zone {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #f5f5f5;\n border: 2px dashed #ccc;\n border-radius: 6px;\n font-size: 13px;\n color: #666;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.drop-zone:hover,\n.drop-zone.active {\n background: #e3f2fd;\n border-color: #5c6bc0;\n color: #333;\n}\n\n/* Move Dialog */\n.move-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.move-dialog {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header h3 {\n margin: 0;\n font-size: 18px;\n color: #333;\n}\n\n.close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n border-radius: 4px;\n}\n\n.close-btn:hover {\n background: #f0f0f0;\n}\n\n.dialog-content {\n padding: 20px;\n overflow-y: auto;\n}\n\n.dialog-content p {\n margin: 0 0 16px 0;\n color: #666;\n font-size: 14px;\n}\n\n.category-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.category-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.category-option:hover {\n background: #f5f5f5;\n}\n\n.category-option i {\n color: #5c6bc0;\n}\n\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n/* New Dropdown */\n.new-dropdown {\n position: relative;\n}\n\n.dropdown-caret {\n font-size: 10px;\n margin-left: 4px;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n overflow: hidden;\n}\n\n.dropdown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n color: #333;\n font-size: 14px;\n cursor: pointer;\n text-align: left;\n transition: background 0.15s;\n}\n\n.dropdown-item:hover {\n background: #f5f5f5;\n}\n\n.dropdown-item i {\n color: #5c6bc0;\n width: 16px;\n text-align: center;\n}\n\n.dropdown-backdrop {\n position: fixed;\n inset: 0;\n z-index: 1000;\n}\n\n/* Create Category Dialog */\n.create-category-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.create-category-dialog {\n background: #fff;\n border-radius: 12px;\n width: 400px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.create-category-dialog .dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.create-category-dialog .dialog-header h3 {\n margin: 0;\n font-size: 18px;\n color: #333;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.create-category-dialog .dialog-header h3 i {\n color: #5c6bc0;\n}\n\n.create-category-dialog .dialog-content {\n padding: 20px;\n}\n\n.form-field {\n margin-bottom: 16px;\n}\n\n.form-field:last-child {\n margin-bottom: 0;\n}\n\n.form-field label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #555;\n}\n\n.form-field input,\n.form-field textarea {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 14px;\n transition: border-color 0.15s, box-shadow 0.15s;\n box-sizing: border-box;\n}\n\n.form-field input:focus,\n.form-field textarea:focus {\n outline: none;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 3px rgba(92, 107, 192, 0.1);\n}\n\n.form-field textarea {\n resize: vertical;\n min-height: 80px;\n}\n\n.create-category-dialog .dialog-footer {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.create-category-dialog .dialog-footer .btn-primary {\n flex: 0 0 auto;\n}\n\n.create-category-dialog .dialog-footer .btn-secondary {\n flex: 0 0 auto;\n margin-left: auto;\n}\n\n/* Breadcrumb Navigation */\n.breadcrumb-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 12px 24px;\n background: #fff;\n border-bottom: 1px solid #e0e0e0;\n flex-wrap: wrap;\n}\n\n.breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border: none;\n background: transparent;\n color: #5c6bc0;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: background 0.15s;\n}\n\n.breadcrumb-item:hover {\n background: #f0f0f0;\n}\n\n.breadcrumb-item.current {\n color: #333;\n font-weight: 500;\n cursor: default;\n}\n\n.breadcrumb-item.current:hover {\n background: transparent;\n}\n\n.breadcrumb-item i {\n font-size: 12px;\n}\n\n.breadcrumb-item.root i {\n font-size: 14px;\n}\n\n.breadcrumb-separator {\n color: #999;\n font-size: 10px;\n}\n\n/* Category Cards */\n.category-card {\n cursor: pointer;\n}\n\n.category-card:hover {\n border-color: #5c6bc0;\n}\n\n.folder-icon {\n background: linear-gradient(135deg, #ffa726, #ffb74d) !important;\n}\n\n.category-row {\n background: #fafafa;\n}\n\n.category-row:hover {\n background: #fff3e0 !important;\n}\n\n.category-row .folder-icon {\n color: #ffa726;\n}\n\n/* Drop target highlighting for category cards/rows */\n.dashboard-card.category-card.drop-target,\n.list-row.category-row.drop-target {\n background: #e3f2fd;\n border-color: #5c6bc0;\n box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.3);\n}\n\n/* Search text highlighting */\nmark {\n background: #fff59d;\n color: inherit;\n padding: 0 2px;\n border-radius: 2px;\n}\n\n/* Delete Category Dialog */\n.delete-category-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1002;\n}\n\n.delete-category-dialog {\n background: #fff;\n border-radius: 12px;\n width: 480px;\n max-width: 90%;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n}\n\n.delete-category-dialog .dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.delete-category-dialog .dialog-header.danger {\n background: #ffebee;\n border-bottom-color: #ffcdd2;\n}\n\n.delete-category-dialog .dialog-header.danger h3 {\n color: #c62828;\n}\n\n.delete-category-dialog .dialog-header.danger h3 i {\n color: #d32f2f;\n}\n\n.delete-category-dialog .dialog-header h3 {\n margin: 0;\n font-size: 18px;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.delete-category-dialog .dialog-content {\n padding: 20px;\n}\n\n.warning-message {\n margin-bottom: 20px;\n}\n\n.warning-message p {\n margin: 0 0 12px 0;\n color: #333;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.warning-message .content-warning {\n color: #d32f2f;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 16px;\n}\n\n.warning-message .content-list {\n margin: 8px 0 0 0;\n padding-left: 24px;\n color: #666;\n}\n\n.warning-message .content-list li {\n margin: 6px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.warning-message .content-list li i {\n color: #999;\n width: 16px;\n text-align: center;\n}\n\n.confirmation-checkbox {\n background: #fff3e0;\n border: 1px solid #ffcc80;\n border-radius: 8px;\n padding: 16px;\n}\n\n.checkbox-label {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n cursor: pointer;\n}\n\n.checkbox-label input {\n width: 18px;\n height: 18px;\n margin-top: 2px;\n cursor: pointer;\n accent-color: #d32f2f;\n}\n\n.checkbox-text {\n font-size: 13px;\n color: #666;\n line-height: 1.5;\n}\n\n.delete-category-dialog .dialog-footer {\n display: flex;\n gap: 10px;\n padding: 16px 20px;\n border-top: 1px solid #e0e0e0;\n}\n\n.btn-danger {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n background: #d32f2f;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.btn-danger:hover {\n background: #c62828;\n}\n\n.btn-danger:disabled {\n background: #e0e0e0;\n color: #999;\n cursor: not-allowed;\n}\n\n.delete-category-dialog .dialog-footer .btn-secondary {\n margin-left: auto;\n}\n"] }]
|
|
1741
1800
|
}], () => [{ type: i0.ChangeDetectorRef }], { Dashboards: [{
|
|
1742
1801
|
type: Input
|
|
1743
1802
|
}], Categories: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-browser.component.js","sourceRoot":"","sources":["../../../src/lib/dashboard-browser/dashboard-browser.component.ts","../../../src/lib/dashboard-browser/dashboard-browser.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard-browser.component.js","sourceRoot":"","sources":["../../../src/lib/dashboard-browser/dashboard-browser.component.ts","../../../src/lib/dashboard-browser/dashboard-browser.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-dashboard-viewer",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "MemberJunction: Angular components for metadata-driven dashboards with Golden Layout panels, supporting views, queries, artifacts, and custom content",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
"golden-layout": "^2.6.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@memberjunction/core-entities": "3.
|
|
39
|
-
"@memberjunction/global": "3.
|
|
40
|
-
"@memberjunction/core": "3.
|
|
41
|
-
"@memberjunction/ng-shared-generic": "3.
|
|
42
|
-
"@memberjunction/ng-entity-viewer": "3.
|
|
43
|
-
"@memberjunction/ng-artifacts": "3.
|
|
44
|
-
"@memberjunction/ng-query-viewer": "3.
|
|
45
|
-
"@memberjunction/ng-trees": "3.
|
|
38
|
+
"@memberjunction/core-entities": "3.3.0",
|
|
39
|
+
"@memberjunction/global": "3.3.0",
|
|
40
|
+
"@memberjunction/core": "3.3.0",
|
|
41
|
+
"@memberjunction/ng-shared-generic": "3.3.0",
|
|
42
|
+
"@memberjunction/ng-entity-viewer": "3.3.0",
|
|
43
|
+
"@memberjunction/ng-artifacts": "3.3.0",
|
|
44
|
+
"@memberjunction/ng-query-viewer": "3.3.0",
|
|
45
|
+
"@memberjunction/ng-trees": "3.3.0",
|
|
46
46
|
"rxjs": "^7.8.1",
|
|
47
47
|
"tslib": "^2.3.0"
|
|
48
48
|
},
|