@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 DashboardBrowserComponent_div_23_h3_3_Template(rf, ctx) { if (rf & 1) {
372
- i0.ɵɵelementStart(0, "h3");
373
- i0.ɵɵtext(1, "No dashboards yet");
374
- i0.ɵɵelementEnd();
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 DashboardBrowserComponent_div_23_h3_4_Template(rf, ctx) { if (rf & 1) {
377
- i0.ɵɵelementStart(0, "h3");
378
- i0.ɵɵtext(1, "No uncategorized dashboards");
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
- function DashboardBrowserComponent_div_23_h3_5_Template(rf, ctx) { if (rf & 1) {
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
- function DashboardBrowserComponent_div_23_h3_6_Template(rf, ctx) { if (rf & 1) {
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
- function DashboardBrowserComponent_div_23_p_7_Template(rf, ctx) { if (rf & 1) {
392
- i0.ɵɵelementStart(0, "p");
393
- i0.ɵɵtext(1, " Create your first dashboard to visualize and monitor your data. ");
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
- function DashboardBrowserComponent_div_23_p_8_Template(rf, ctx) { if (rf & 1) {
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 DashboardBrowserComponent_div_23_p_9_Template(rf, ctx) { if (rf & 1) {
402
- i0.ɵɵelementStart(0, "p");
403
- i0.ɵɵtext(1, " Create a dashboard or category in this folder. ");
404
- i0.ɵɵelementEnd();
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 DashboardBrowserComponent_div_23_p_10_Template(rf, ctx) { if (rf & 1) {
407
- i0.ɵɵelementStart(0, "p");
408
- i0.ɵɵtext(1, " Try adjusting your search terms. ");
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 DashboardBrowserComponent_div_23_button_11_Template(rf, ctx) { if (rf & 1) {
412
- const _r24 = i0.ɵɵgetCurrentView();
413
- i0.ɵɵelementStart(0, "button", 42);
414
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnCreateDashboard()); });
415
- i0.ɵɵelement(1, "i", 43);
416
- i0.ɵɵtext(2, " Create Dashboard ");
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 DashboardBrowserComponent_div_23_button_12_Template(rf, ctx) { if (rf & 1) {
420
- const _r25 = i0.ɵɵgetCurrentView();
421
- i0.ɵɵelementStart(0, "button", 112);
422
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_23_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ClearFilters()); });
423
- i0.ɵɵelement(1, "i", 53);
424
- i0.ɵɵtext(2, " Clear Filters ");
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.ɵɵelement(2, "i", 109);
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(3);
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 _r27 = i0.ɵɵgetCurrentView();
458
- i0.ɵɵelementStart(0, "div", 116);
459
- i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_div_7_Template_div_dragover_0_listener($event) { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDragOverCategory(cat_r28.ID, $event)); })("dragleave", function DashboardBrowserComponent_div_24_div_7_Template_div_dragleave_0_listener() { i0.ɵɵrestoreView(_r27); 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_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDropOnCategory(cat_r28.ID, $event)); });
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 cat_r28 = ctx.$implicit;
523
+ const cat_r30 = ctx.$implicit;
465
524
  const ctx_r1 = i0.ɵɵnextContext(2);
466
- i0.ɵɵclassProp("active", ctx_r1.DropTargetCategoryId === cat_r28.ID);
525
+ i0.ɵɵclassProp("active", ctx_r1.DropTargetCategoryId === cat_r30.ID);
467
526
  i0.ɵɵadvance(2);
468
- i0.ɵɵtextInterpolate1(" ", cat_r28.Name, " ");
527
+ i0.ɵɵtextInterpolate1(" ", cat_r30.Name, " ");
469
528
  } }
470
529
  function DashboardBrowserComponent_div_24_Template(rf, ctx) { if (rf & 1) {
471
- const _r26 = i0.ɵɵgetCurrentView();
472
- i0.ɵɵelementStart(0, "div", 113)(1, "div", 114);
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", 115)(4, "div", 116);
476
- i0.ɵɵlistener("dragover", function DashboardBrowserComponent_div_24_Template_div_dragover_4_listener($event) { i0.ɵɵrestoreView(_r26); 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(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDragLeaveCategory()); })("drop", function DashboardBrowserComponent_div_24_Template_div_drop_4_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDropOnCategory(null, $event)); });
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", 117);
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 _r30 = i0.ɵɵgetCurrentView();
491
- i0.ɵɵelementStart(0, "div", 124);
492
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_div_14_Template_div_click_0_listener() { const cat_r31 = i0.ɵɵrestoreView(_r30).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ConfirmMove(cat_r31.ID)); });
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 cat_r31 = ctx.$implicit;
556
+ const cat_r33 = ctx.$implicit;
498
557
  i0.ɵɵadvance(2);
499
- i0.ɵɵtextInterpolate1(" ", cat_r31.Name, " ");
558
+ i0.ɵɵtextInterpolate1(" ", cat_r33.Name, " ");
500
559
  } }
501
560
  function DashboardBrowserComponent_div_26_Template(rf, ctx) { if (rf & 1) {
502
- const _r29 = i0.ɵɵgetCurrentView();
503
- i0.ɵɵelementStart(0, "div", 118);
504
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
505
- i0.ɵɵelementStart(1, "div", 119);
506
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r29); return i0.ɵɵresetView($event.stopPropagation()); });
507
- i0.ɵɵelementStart(2, "div", 120)(3, "h3");
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", 121);
511
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
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", 122)(8, "p");
573
+ i0.ɵɵelementStart(7, "div", 140)(8, "p");
515
574
  i0.ɵɵtext(9);
516
575
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(10, "div", 123)(11, "div", 124);
518
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_div_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmMove(null)); });
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", 125);
581
+ i0.ɵɵtemplate(14, DashboardBrowserComponent_div_26_div_14_Template, 3, 1, "div", 143);
523
582
  i0.ɵɵelementEnd()();
524
- i0.ɵɵelementStart(15, "div", 126)(16, "button", 112);
525
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_26_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseMoveDialog()); });
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 _r32 = i0.ɵɵgetCurrentView();
537
- i0.ɵɵelementStart(0, "div", 127);
538
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
539
- i0.ɵɵelementStart(1, "div", 128);
540
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r32); return i0.ɵɵresetView($event.stopPropagation()); });
541
- i0.ɵɵelementStart(2, "div", 120)(3, "h3");
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", 121);
546
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
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", 122)(9, "div", 129)(10, "label", 130);
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", 131);
553
- i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.NewCategoryName, $event) || (ctx_r1.NewCategoryName = $event); return i0.ɵɵresetView($event); });
554
- i0.ɵɵlistener("keyup.enter", function DashboardBrowserComponent_div_27_Template_input_keyup_enter_12_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmCreateCategory()); });
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", 129)(14, "label", 132);
615
+ i0.ɵɵelementStart(13, "div", 147)(14, "label", 150);
557
616
  i0.ɵɵtext(15, "Description");
558
617
  i0.ɵɵelementEnd();
559
- i0.ɵɵelementStart(16, "textarea", 133);
560
- i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_27_Template_textarea_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.NewCategoryDescription, $event) || (ctx_r1.NewCategoryDescription = $event); return i0.ɵɵresetView($event); });
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", 126)(18, "button", 134);
563
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmCreateCategory()); });
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", 112);
568
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_27_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseCreateCategoryDialog()); });
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", 148);
582
- i0.ɵɵelement(1, "i", 149);
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 counts_r35 = i0.ɵɵnextContext(2).ngIf;
651
+ const counts_r37 = i0.ɵɵnextContext(2).ngIf;
593
652
  i0.ɵɵadvance(2);
594
- i0.ɵɵtextInterpolate2(" ", counts_r35.dashboards, " dashboard", counts_r35.dashboards !== 1 ? "s" : "", " ");
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 counts_r35 = i0.ɵɵnextContext(2).ngIf;
661
+ const counts_r37 = i0.ɵɵnextContext(2).ngIf;
603
662
  i0.ɵɵadvance(2);
604
- i0.ɵɵtextInterpolate2(" ", counts_r35.categories, " sub-categor", counts_r35.categories !== 1 ? "ies" : "y", " ");
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", 150);
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 counts_r35 = i0.ɵɵnextContext().ngIf;
670
+ const counts_r37 = i0.ɵɵnextContext().ngIf;
612
671
  i0.ɵɵadvance();
613
- i0.ɵɵproperty("ngIf", counts_r35.dashboards > 0);
672
+ i0.ɵɵproperty("ngIf", counts_r37.dashboards > 0);
614
673
  i0.ɵɵadvance();
615
- i0.ɵɵproperty("ngIf", counts_r35.categories > 0);
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", 146)(2, DashboardBrowserComponent_div_28_div_8_ng_container_7_ul_2_Template, 3, 2, "ul", 147);
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 counts_r35 = ctx.ngIf;
681
+ const counts_r37 = ctx.ngIf;
623
682
  i0.ɵɵadvance();
624
- i0.ɵɵproperty("ngIf", counts_r35.dashboards > 0 || counts_r35.categories > 0);
683
+ i0.ɵɵproperty("ngIf", counts_r37.dashboards > 0 || counts_r37.categories > 0);
625
684
  i0.ɵɵadvance();
626
- i0.ɵɵproperty("ngIf", counts_r35.dashboards > 0 || counts_r35.categories > 0);
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 _r34 = i0.ɵɵgetCurrentView();
630
- i0.ɵɵelementStart(0, "div", 122)(1, "div", 141)(2, "p");
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", 142)(9, "label", 143)(10, "input", 144);
640
- i0.ɵɵtwoWayListener("ngModelChange", function DashboardBrowserComponent_div_28_div_8_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.DeleteCategoryIncludeContents, $event) || (ctx_r1.DeleteCategoryIncludeContents = $event); return i0.ɵɵresetView($event); });
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", 145);
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 _r33 = i0.ɵɵgetCurrentView();
656
- i0.ɵɵelementStart(0, "div", 135);
657
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
658
- i0.ɵɵelementStart(1, "div", 136);
659
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r33); return i0.ɵɵresetView($event.stopPropagation()); });
660
- i0.ɵɵelementStart(2, "div", 137)(3, "h3");
661
- i0.ɵɵelement(4, "i", 138);
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", 121);
665
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
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", 139);
669
- i0.ɵɵelementStart(9, "div", 126)(10, "button", 140);
670
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ConfirmDeleteCategory()); });
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", 112);
675
- i0.ɵɵlistener("click", function DashboardBrowserComponent_div_28_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseDeleteCategoryConfirm()); });
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"], ["class", "btn-primary", 3, "click", 4, "ngIf"], ["class", "btn-secondary", 3, "click", 4, "ngIf"], [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) {
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, 13, 10, "div", 22)(24, DashboardBrowserComponent_div_24_Template, 8, 4, "div", 23);
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.2.0",
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.2.0",
39
- "@memberjunction/global": "3.2.0",
40
- "@memberjunction/core": "3.2.0",
41
- "@memberjunction/ng-shared-generic": "3.2.0",
42
- "@memberjunction/ng-entity-viewer": "3.2.0",
43
- "@memberjunction/ng-artifacts": "3.2.0",
44
- "@memberjunction/ng-query-viewer": "3.2.0",
45
- "@memberjunction/ng-trees": "3.2.0",
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
  },