@open-rlb/ng-bootstrap 3.1.16 → 3.1.17

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.
@@ -81,7 +81,7 @@ $boxed-body-bg: #ebebf4;
81
81
  $apex-grid-color: var(--#{$prefix}border-color);
82
82
 
83
83
  // table
84
- $table-head-bg: $gray-100;
84
+ //$table-head-bg: $gray-100;
85
85
  $table-head-bg: #eff2f7; // Distinct light gray
86
86
  //$table-head-color: $body-color;
87
87
  $table-dark-border-color: tint-color($gray-800, 7.5%);
@@ -634,11 +634,11 @@ $border-color-translucent: $gray-400;
634
634
  // scss-docs-end border-variables
635
635
 
636
636
  // scss-docs-start border-radius-variables
637
- $border-radius: .375rem;
638
- $border-radius-sm: .2rem;
639
- $border-radius-lg: .4rem;
640
- $border-radius-xl: 1rem;
641
- $border-radius-xxl: 2rem;
637
+ $border-radius-sm: .25rem; // 4px (Standard small curve)
638
+ $border-radius: .375rem; // 6px (Standard button curve)
639
+ $border-radius-lg: .625rem; // 10px (Large button/input curve)
640
+ $border-radius-xl: 1rem; // 16px (Bubbly card/modal curve)
641
+ $border-radius-xxl: 2rem; // 32px
642
642
  $border-radius-pill: 50rem;
643
643
  // scss-docs-end border-radius-variables
644
644
  // fusv-disable
@@ -1424,7 +1424,7 @@ $card-title-color: var(--#{$prefix}emphasis-color);
1424
1424
  $card-subtitle-color: null;
1425
1425
  $card-border-width: 1px;
1426
1426
  $card-border-color: rgba($gray-200, 0.5);
1427
- $card-border-radius: 1rem; // Soft bubbly cards
1427
+ $card-border-radius: var(--#{$prefix}border-radius-xl);
1428
1428
  $card-box-shadow: 0 4px 6px rgba(18, 38, 63, 0.03), 0 1px 3px rgba(18, 38, 63, 0.05);
1429
1429
  $card-inner-border-radius: calc(#{$card-border-radius} - 1px);
1430
1430
  $card-cap-padding-y: $card-spacer-y * .5;
@@ -1549,7 +1549,7 @@ $toast-color: null;
1549
1549
  $toast-background-color: var(--#{$prefix}secondary-bg);
1550
1550
  $toast-border-width: var(--#{$prefix}border-width);
1551
1551
  $toast-border-color: var(--#{$prefix}border-color);
1552
- $toast-border-radius: .25rem;
1552
+ $toast-border-radius: var(--#{$prefix}border-radius);
1553
1553
  $toast-box-shadow: var(--#{$prefix}box-shadow-lg);
1554
1554
  $toast-spacing: $container-padding-x;
1555
1555
 
@@ -1587,7 +1587,7 @@ $modal-content-color: null;
1587
1587
  $modal-content-bg: var(--#{$prefix}secondary-bg);
1588
1588
  $modal-content-border-color: var(--#{$prefix}border-color);
1589
1589
  $modal-content-border-width: var(--#{$prefix}border-width);
1590
- $modal-content-border-radius: var(--#{$prefix}border-radius-lg);
1590
+ $modal-content-border-radius: var(--#{$prefix}border-radius-xl);
1591
1591
  $modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width);
1592
1592
  $modal-content-box-shadow-xs: $box-shadow-sm;
1593
1593
  $modal-content-box-shadow-sm-up: $box-shadow;
@@ -47,50 +47,16 @@
47
47
  z-index: $zindex-dropdown;
48
48
  }
49
49
 
50
- .sidebar-toggle {
51
- position: absolute;
52
- top: 1rem;
53
- left: $sidebar-width - 1.5rem;
54
- z-index: 1035;
55
- transform: translateX(-50%);
56
- width: 2rem;
57
- height: 2rem;
58
- border-radius: 50%;
59
- display: flex;
60
- align-items: center;
61
- justify-content: center;
62
- cursor: pointer;
63
- transition: left 0.3s ease-in-out, transform 0.2s ease, color 0.2s ease, border 0.2s ease;
64
-
65
- &:hover {
66
- transform: translateX(-50%) scale(1.15);
67
- border: 1px solid $sidebar-menu-item-active-color;
68
- color: $sidebar-menu-item-active-color;
69
- }
70
-
71
- i {
72
- font-size: 16px;
73
- }
74
- }
75
-
76
- .sidebar-toggler-tooltip,
77
- [data-bs-theme="dark"] .tooltip
50
+ .sidebar-toggler
78
51
  {
79
- --bs-tooltip-bg: var(--bs-body-bg);
80
- --bs-tooltip-color: var(--bs-body-color);
81
-
82
- --bs-tooltip-border-width: 1px;
83
- --bs-tooltip-border-color: rgba(0, 0, 0, 0.15);
84
-
85
- background-color: var(--bs-tooltip-bg);
86
- color: var(--bs-tooltip-color);
87
- border: var(--bs-tooltip-border-width) solid var(--bs-tooltip-border-color);
88
- border-radius: 0.25rem;
89
- padding: 0.25rem 0.5rem;
90
- }
91
-
92
- .sidebar-toggler-tooltip {
93
- pointer-events: none;
52
+ padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
53
+ font-size: var(--bs-navbar-toggler-font-size);
54
+ line-height: 1;
55
+ color: var(--bs-navbar-color);
56
+ background-color: transparent;
57
+ border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
58
+ border-radius: var(--bs-navbar-toggler-border-radius);
59
+ transition: var(--bs-navbar-toggler-transition);
94
60
  }
95
61
 
96
62
  .rlb-sidebar.collapsed .sidebar-toggle {
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { signal, Component, input, booleanAttribute, effect, Host, Self, Optional, Directive, Injectable, output, contentChild, computed, contentChildren, viewChild, numberAttribute, model, ViewChild, isSignal, Pipe, ChangeDetectionStrategy, inject, DOCUMENT, Inject, InjectionToken, ViewContainerRef, untracked, HostListener, viewChildren, NgModule } from '@angular/core';
3
- import { Collapse, Carousel, Dropdown, Modal, Toast, Offcanvas, ScrollSpy, Tooltip, Popover } from 'bootstrap';
3
+ import { Collapse, Carousel, Dropdown, Modal, Toast, Offcanvas, ScrollSpy, Popover, Tooltip } from 'bootstrap';
4
4
  import * as i2 from '@angular/router';
5
5
  import { RouterModule } from '@angular/router';
6
6
  import * as i3 from '@angular/common';
@@ -4461,10 +4461,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
4461
4461
  args: ['template', { static: true }]
4462
4462
  }] } });
4463
4463
 
4464
+ class SidebarService {
4465
+ constructor() {
4466
+ this.itemClickedSource = new Subject();
4467
+ this.itemClicked$ = this.itemClickedSource.asObservable();
4468
+ this.isCollapsed = signal(false, ...(ngDevMode ? [{ debugName: "isCollapsed" }] : []));
4469
+ }
4470
+ notifyItemClicked() {
4471
+ this.itemClickedSource.next();
4472
+ }
4473
+ setCollapsed(collapsed) {
4474
+ this.isCollapsed.set(collapsed);
4475
+ const sidebar = document.getElementById('sidebar');
4476
+ const content = document.querySelector('.rlb-content');
4477
+ content?.classList.toggle('expanded', collapsed);
4478
+ sidebar?.classList.toggle('collapsed', collapsed);
4479
+ }
4480
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4481
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, providedIn: 'root' }); }
4482
+ }
4483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, decorators: [{
4484
+ type: Injectable,
4485
+ args: [{
4486
+ providedIn: 'root',
4487
+ }]
4488
+ }] });
4489
+
4464
4490
  class NavbarComponent {
4465
- constructor(idService, viewContainerRef) {
4491
+ constructor(idService, viewContainerRef, sidebarService) {
4466
4492
  this.idService = idService;
4467
4493
  this.viewContainerRef = viewContainerRef;
4494
+ this.sidebarService = sidebarService;
4468
4495
  this.destroy$ = new Subject();
4469
4496
  this._navExpand = computed(() => {
4470
4497
  const exp = this.expand();
@@ -4481,7 +4508,7 @@ class NavbarComponent {
4481
4508
  this.placement = input(undefined, ...(ngDevMode ? [{ debugName: "placement" }] : []));
4482
4509
  this.expand = input(undefined, ...(ngDevMode ? [{ debugName: "expand" }] : []));
4483
4510
  this.cssClass = input('', { ...(ngDevMode ? { debugName: "cssClass" } : {}), alias: 'class' });
4484
- this.enableDropdownToggler = input(true, { ...(ngDevMode ? { debugName: "enableDropdownToggler" } : {}), alias: 'enable-dropdown-toggler',
4511
+ this.enableDropdownToggler = input(false, { ...(ngDevMode ? { debugName: "enableDropdownToggler" } : {}), alias: 'enable-dropdown-toggler',
4485
4512
  transform: booleanAttribute });
4486
4513
  this.navId = `nav${this.idService.id}`;
4487
4514
  effect(() => {
@@ -4506,6 +4533,10 @@ class NavbarComponent {
4506
4533
  this.destroy$.next();
4507
4534
  this.destroy$.complete();
4508
4535
  }
4536
+ toggleSidebar() {
4537
+ const isSideBarCollapsed = this.sidebarService.isCollapsed();
4538
+ this.sidebarService.setCollapsed(!isSideBarCollapsed);
4539
+ }
4509
4540
  closeMobileMenu() {
4510
4541
  const collapseEl = this.element?.querySelector('.navbar-collapse');
4511
4542
  if (collapseEl && collapseEl.classList.contains('show')) {
@@ -4513,26 +4544,37 @@ class NavbarComponent {
4513
4544
  bsCollapse.hide();
4514
4545
  }
4515
4546
  }
4516
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NavbarComponent, deps: [{ token: UniqueIdService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
4517
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: NavbarComponent, isStandalone: false, selector: "rlb-navbar", inputs: { dark: { classPropertyName: "dark", publicName: "dark", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, enableDropdownToggler: { classPropertyName: "enableDropdownToggler", publicName: "enable-dropdown-toggler", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "navbarItemsGroups", predicate: NavbarItemsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, static: true }], ngImport: i0, template: `
4547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NavbarComponent, deps: [{ token: UniqueIdService }, { token: i0.ViewContainerRef }, { token: SidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
4548
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NavbarComponent, isStandalone: false, selector: "rlb-navbar", inputs: { dark: { classPropertyName: "dark", publicName: "dark", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, enableDropdownToggler: { classPropertyName: "enableDropdownToggler", publicName: "enable-dropdown-toggler", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "navbarItemsGroups", predicate: NavbarItemsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, static: true }], ngImport: i0, template: `
4518
4549
  <ng-template #template>
4519
4550
  <nav
4520
4551
  class="navbar px-2 bg-{{ color() }} {{ placement() }} {{ _navExpand() }} {{ cssClass() }}"
4521
4552
  [attr.data-bs-theme]="dark() ? 'dark' : 'light'"
4522
4553
  >
4523
4554
  <div class="container-fluid">
4524
- <ng-content select="[rlb-navbar-brand], [rlb-button][toggle], rlb-navbar-separator" />
4525
4555
  <button
4526
- class="navbar-toggler"
4527
- [class.d-none]="!enableDropdownToggler()"
4556
+ class="sidebar-toggler me-3"
4528
4557
  type="button"
4529
4558
  rlb-button
4530
- toggle="collapse"
4531
- [toggle-target]="navId"
4532
- aria-label="Toggle navigation"
4559
+ aria-label="Toggle sidebar"
4560
+ (click)="toggleSidebar()"
4533
4561
  >
4534
4562
  <span class="navbar-toggler-icon"></span>
4535
4563
  </button>
4564
+ <ng-content select="[rlb-navbar-brand], [rlb-button][toggle], rlb-navbar-separator" />
4565
+ @if (enableDropdownToggler()) {
4566
+ <button
4567
+ class="navbar-toggler"
4568
+ [class.d-none]="!enableDropdownToggler()"
4569
+ type="button"
4570
+ rlb-button
4571
+ toggle="collapse"
4572
+ [toggle-target]="navId"
4573
+ aria-label="Toggle navigation"
4574
+ >
4575
+ <span class="navbar-toggler-icon"></span>
4576
+ </button>
4577
+ }
4536
4578
  <div
4537
4579
  class="collapse navbar-collapse"
4538
4580
  [id]="navId"
@@ -4559,18 +4601,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
4559
4601
  [attr.data-bs-theme]="dark() ? 'dark' : 'light'"
4560
4602
  >
4561
4603
  <div class="container-fluid">
4562
- <ng-content select="[rlb-navbar-brand], [rlb-button][toggle], rlb-navbar-separator" />
4563
4604
  <button
4564
- class="navbar-toggler"
4565
- [class.d-none]="!enableDropdownToggler()"
4605
+ class="sidebar-toggler me-3"
4566
4606
  type="button"
4567
4607
  rlb-button
4568
- toggle="collapse"
4569
- [toggle-target]="navId"
4570
- aria-label="Toggle navigation"
4608
+ aria-label="Toggle sidebar"
4609
+ (click)="toggleSidebar()"
4571
4610
  >
4572
4611
  <span class="navbar-toggler-icon"></span>
4573
4612
  </button>
4613
+ <ng-content select="[rlb-navbar-brand], [rlb-button][toggle], rlb-navbar-separator" />
4614
+ @if (enableDropdownToggler()) {
4615
+ <button
4616
+ class="navbar-toggler"
4617
+ [class.d-none]="!enableDropdownToggler()"
4618
+ type="button"
4619
+ rlb-button
4620
+ toggle="collapse"
4621
+ [toggle-target]="navId"
4622
+ aria-label="Toggle navigation"
4623
+ >
4624
+ <span class="navbar-toggler-icon"></span>
4625
+ </button>
4626
+ }
4574
4627
  <div
4575
4628
  class="collapse navbar-collapse"
4576
4629
  [id]="navId"
@@ -4587,7 +4640,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
4587
4640
  `,
4588
4641
  standalone: false,
4589
4642
  }]
4590
- }], ctorParameters: () => [{ type: UniqueIdService }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
4643
+ }], ctorParameters: () => [{ type: UniqueIdService }, { type: i0.ViewContainerRef }, { type: SidebarService }], propDecorators: { template: [{
4591
4644
  type: ViewChild,
4592
4645
  args: ['template', { static: true }]
4593
4646
  }], navbarItemsGroups: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => NavbarItemsComponent), { ...{
@@ -5049,24 +5102,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5049
5102
  }]
5050
5103
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { target: [{ type: i0.Input, args: [{ isSignal: true, alias: "rlb-scrollspy-target", required: true }] }], smooth: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll-smooth", required: false }] }], rootMargin: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll-root-margin", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], threshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll-threshold", required: false }] }], scroll: [{ type: i0.Output, args: ["scroll-change"] }] } });
5051
5104
 
5052
- class SidebarService {
5053
- constructor() {
5054
- this.itemClickedSource = new Subject();
5055
- this.itemClicked$ = this.itemClickedSource.asObservable();
5056
- }
5057
- notifyItemClicked() {
5058
- this.itemClickedSource.next();
5059
- }
5060
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5061
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, providedIn: 'root' }); }
5062
- }
5063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarService, decorators: [{
5064
- type: Injectable,
5065
- args: [{
5066
- providedIn: 'root'
5067
- }]
5068
- }] });
5069
-
5070
5105
  class SidebarItemComponent {
5071
5106
  constructor(viewContainerRef, uniqueIdService, router, sidebarService) {
5072
5107
  this.viewContainerRef = viewContainerRef;
@@ -5220,51 +5255,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5220
5255
  }]
5221
5256
  }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: UniqueIdService }, { type: i2.Router }, { type: SidebarService }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], badgeCounter: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeCounter", required: false }] }], click: [{ type: i0.Output, args: ["click"] }], children: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SidebarItemComponent), { isSignal: true }] }], template: [{ type: i0.ViewChild, args: ['template', { isSignal: true }] }] } });
5222
5257
 
5223
- class TooltipDirective {
5224
- constructor(elementRef) {
5225
- this.elementRef = elementRef;
5226
- this.tooltip = input(undefined, { ...(ngDevMode ? { debugName: "tooltip" } : {}), alias: 'tooltip' });
5227
- this.placement = input('top', { ...(ngDevMode ? { debugName: "placement" } : {}), alias: 'tooltip-placement' });
5228
- this.customClass = input('', { ...(ngDevMode ? { debugName: "customClass" } : {}), alias: 'tooltip-class' });
5229
- this.html = input(false, { ...(ngDevMode ? { debugName: "html" } : {}), alias: 'tooltip-html', transform: booleanAttribute });
5230
- // We only need one effect to handle dynamic changes to the title text.
5231
- effect(() => {
5232
- const title = this.tooltip();
5233
- if (this._tooltip) {
5234
- if (title) {
5235
- this._tooltip.enable();
5236
- this._tooltip.setContent({ '.tooltip-inner': title });
5237
- }
5238
- else {
5239
- this._tooltip.disable();
5240
- }
5241
- }
5242
- });
5243
- }
5244
- ngOnInit() {
5245
- this._tooltip = new Tooltip(this.elementRef.nativeElement, {
5246
- title: this.tooltip() || '',
5247
- placement: this.placement(),
5248
- customClass: this.customClass(),
5249
- html: this.html(),
5250
- });
5251
- }
5252
- ngOnDestroy() {
5253
- if (this._tooltip) {
5254
- this._tooltip.dispose();
5255
- }
5256
- }
5257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5258
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: TooltipDirective, isStandalone: false, selector: "[tooltip]", inputs: { tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "tooltip-placement", isSignal: true, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "tooltip-class", isSignal: true, isRequired: false, transformFunction: null }, html: { classPropertyName: "html", publicName: "tooltip-html", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
5259
- }
5260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
5261
- type: Directive,
5262
- args: [{
5263
- selector: '[tooltip]',
5264
- standalone: false,
5265
- }]
5266
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-placement", required: false }] }], customClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-class", required: false }] }], html: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-html", required: false }] }] } });
5267
-
5268
5258
  /**
5269
5259
  * Sidebar component
5270
5260
  */
@@ -5272,7 +5262,6 @@ class SidebarComponent {
5272
5262
  constructor(sidebarService, breakpointService) {
5273
5263
  this.sidebarService = sidebarService;
5274
5264
  this.breakpointService = breakpointService;
5275
- this.isCollapsed = signal(false, ...(ngDevMode ? [{ debugName: "isCollapsed" }] : []));
5276
5265
  this.dark = input(true, { ...(ngDevMode ? { debugName: "dark" } : {}), alias: 'dark', transform: booleanAttribute });
5277
5266
  this.subscription = new Subscription();
5278
5267
  this.rounded = input(false, { ...(ngDevMode ? { debugName: "rounded" } : {}), alias: 'rounded', transform: booleanAttribute });
@@ -5294,15 +5283,8 @@ class SidebarComponent {
5294
5283
  ngOnDestroy() {
5295
5284
  this.subscription.unsubscribe();
5296
5285
  }
5297
- toggleSidebar() {
5298
- this.setCollapsed(!this.isCollapsed());
5299
- }
5300
5286
  setCollapsed(collapsed) {
5301
- this.isCollapsed.set(collapsed);
5302
- const sidebar = document.getElementById('sidebar');
5303
- const content = document.querySelector('.rlb-content');
5304
- content?.classList.toggle('expanded', collapsed);
5305
- sidebar?.classList.toggle('collapsed', collapsed);
5287
+ this.sidebarService.setCollapsed(collapsed);
5306
5288
  }
5307
5289
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarComponent, deps: [{ token: SidebarService }, { token: BreakpointService }], target: i0.ɵɵFactoryTarget.Component }); }
5308
5290
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: SidebarComponent, isStandalone: false, selector: "rlb-sidebar", inputs: { dark: { classPropertyName: "dark", publicName: "dark", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-bs-theme": "dark() ? 'dark' : 'light'" } }, viewQueries: [{ propertyName: "sideMenu", first: true, predicate: ["sideMenu"], descendants: true }], ngImport: i0, template: `
@@ -5323,21 +5305,7 @@ class SidebarComponent {
5323
5305
  </ul>
5324
5306
  </div>
5325
5307
  </div>
5326
- <div
5327
- role="button"
5328
- class="sidebar-toggle"
5329
- [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5330
- [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5331
- [tooltip-class]="'sidebar-toggler-tooltip'"
5332
- (click)="toggleSidebar()"
5333
- >
5334
- <i
5335
- [class.bi-chevron-double-left]="!isCollapsed()"
5336
- [class.bi-chevron-double-right]="isCollapsed()"
5337
- class="bi "
5338
- ></i>
5339
- </div>
5340
- `, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "tooltip-placement", "tooltip-class", "tooltip-html"] }] }); }
5308
+ `, isInline: true }); }
5341
5309
  }
5342
5310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SidebarComponent, decorators: [{
5343
5311
  type: Component,
@@ -5361,20 +5329,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5361
5329
  </ul>
5362
5330
  </div>
5363
5331
  </div>
5364
- <div
5365
- role="button"
5366
- class="sidebar-toggle"
5367
- [tooltip]="!isCollapsed() ? 'Hide' : 'Show'"
5368
- [tooltip-placement]="!isCollapsed() ? 'top' : 'left'"
5369
- [tooltip-class]="'sidebar-toggler-tooltip'"
5370
- (click)="toggleSidebar()"
5371
- >
5372
- <i
5373
- [class.bi-chevron-double-left]="!isCollapsed()"
5374
- [class.bi-chevron-double-right]="isCollapsed()"
5375
- class="bi "
5376
- ></i>
5377
- </div>
5378
5332
  `,
5379
5333
  host: {
5380
5334
  '[attr.data-bs-theme]': "dark() ? 'dark' : 'light'",
@@ -5610,6 +5564,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5610
5564
  }]
5611
5565
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { popover: [{ type: i0.Input, args: [{ isSignal: true, alias: "popover", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "popover-placement", required: false }] }], customClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popover-class", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "popover-title", required: false }] }] } });
5612
5566
 
5567
+ class TooltipDirective {
5568
+ constructor(elementRef) {
5569
+ this.elementRef = elementRef;
5570
+ this.tooltip = input(undefined, { ...(ngDevMode ? { debugName: "tooltip" } : {}), alias: 'tooltip' });
5571
+ this.placement = input('top', { ...(ngDevMode ? { debugName: "placement" } : {}), alias: 'tooltip-placement' });
5572
+ this.customClass = input('', { ...(ngDevMode ? { debugName: "customClass" } : {}), alias: 'tooltip-class' });
5573
+ this.html = input(false, { ...(ngDevMode ? { debugName: "html" } : {}), alias: 'tooltip-html', transform: booleanAttribute });
5574
+ // We only need one effect to handle dynamic changes to the title text.
5575
+ effect(() => {
5576
+ const title = this.tooltip();
5577
+ if (this._tooltip) {
5578
+ if (title) {
5579
+ this._tooltip.enable();
5580
+ this._tooltip.setContent({ '.tooltip-inner': title });
5581
+ }
5582
+ else {
5583
+ this._tooltip.disable();
5584
+ }
5585
+ }
5586
+ });
5587
+ }
5588
+ ngOnInit() {
5589
+ this._tooltip = new Tooltip(this.elementRef.nativeElement, {
5590
+ title: this.tooltip() || '',
5591
+ placement: this.placement(),
5592
+ customClass: this.customClass(),
5593
+ html: this.html(),
5594
+ });
5595
+ }
5596
+ ngOnDestroy() {
5597
+ if (this._tooltip) {
5598
+ this._tooltip.dispose();
5599
+ }
5600
+ }
5601
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
5602
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: TooltipDirective, isStandalone: false, selector: "[tooltip]", inputs: { tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "tooltip-placement", isSignal: true, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "tooltip-class", isSignal: true, isRequired: false, transformFunction: null }, html: { classPropertyName: "html", publicName: "tooltip-html", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
5603
+ }
5604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
5605
+ type: Directive,
5606
+ args: [{
5607
+ selector: '[tooltip]',
5608
+ standalone: false,
5609
+ }]
5610
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-placement", required: false }] }], customClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-class", required: false }] }], html: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip-html", required: false }] }] } });
5611
+
5613
5612
  const COMPONENTS = [
5614
5613
  AlertComponent,
5615
5614
  BreadcrumbComponent,