@open-rlb/ng-bootstrap 2.3.7 → 2.4.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.
@@ -11,7 +11,8 @@ $sidebar-menu-sub-item-color: #545a6d;
11
11
  $sidebar-menu-item-icon-color: #7f8387;
12
12
  $sidebar-menu-item-hover-color: #383c40;
13
13
  $sidebar-menu-item-active-color: #556ee6;
14
- $sidebar-width: 300px;
14
+ $sidebar-width: 18.75rem;
15
+ $sidebar-transition: 0.3s ease-in-out;
15
16
  $sidebar-collapsed-width: 70px;
16
17
  $sidebar-width-sm: 160px;
17
18
 
@@ -24,7 +25,7 @@ $sidebar-dark-menu-item-hover-color: #ffffff;
24
25
  $sidebar-dark-menu-item-active-color: #ffffff;
25
26
 
26
27
  // Topbar - Default Light
27
- $header-height: 51px;
28
+ $header-height: 3.75rem;
28
29
  $header-bg: $white;
29
30
  $header-item-color: #555b6d;
30
31
 
@@ -53,7 +54,7 @@ $rightbar-width: 280px;
53
54
  $display-none: none;
54
55
  $display-block: block;
55
56
 
56
- // Brand
57
+ // Brand
57
58
  $navbar-brand-box-width: 250px;
58
59
 
59
60
  // Boxed layout width
@@ -154,8 +154,8 @@ body[data-layout="horizontal"] {
154
154
  @media (min-width: 992px) {
155
155
  .fixed-solution {
156
156
  .sticky-table-header{
157
- top: $header-height + 50px !important;;
157
+ top: $header-height + 3.125rem !important;;
158
158
  }
159
159
  }
160
160
  }
161
- }
161
+ }
@@ -1,6 +1,6 @@
1
- //
1
+ //
2
2
  // _header.scss
3
- //
3
+ //
4
4
 
5
5
  #page-topbar {
6
6
  position: fixed;
@@ -51,7 +51,7 @@
51
51
  /* Search */
52
52
 
53
53
  .app-search {
54
- padding: calc(#{$header-height - 38px} * 0.5) 0;
54
+ padding: calc(#{$header-height - 2.375rem} * 0.5) 0;
55
55
 
56
56
  .form-control {
57
57
  border: none;
@@ -292,4 +292,4 @@ body[data-layout="horizontal"] {
292
292
  margin-top: 15px;
293
293
  }
294
294
  }
295
- }
295
+ }
@@ -1,68 +1,62 @@
1
+ .rlb-app {
2
+ background-color: var(--bs-body-bg);
3
+ display: flex;
4
+ flex-direction: column;
5
+ height: 100vh;
6
+ width: 100vw;
7
+ }
8
+
9
+ .rlb-main-wrapper {
10
+ display: flex;
11
+ flex-grow: 1;
12
+ position: relative;
13
+ overflow: hidden;
14
+ }
15
+
1
16
  .rlb-navbar {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
17
  height: $header-height;
7
- display: flex;
8
- align-items: center;
9
- z-index: 1001;
18
+ z-index: 1030;
10
19
  }
11
20
 
12
21
  .rlb-sidebar {
13
- position: fixed;
14
- margin-top: $header-height;
15
- left: 0;
16
22
  width: $sidebar-width;
17
- height: calc(100% - $header-height);
18
- box-sizing: border-box;
19
- z-index: 1001;
20
- transition: width 0.3s ease-in-out;
23
+ flex-shrink: 0;
24
+ transition: width $sidebar-transition, transform $sidebar-transition;
25
+ background-color: var(--bs-tertiary-bg);
26
+ border-right: 1px solid var(--bs-border-color);
27
+ z-index: 1020;
28
+ position: relative;
29
+ overflow: visible !important;
21
30
 
22
31
  &.collapsed {
23
32
  width: 0;
33
+ border-right: none;
24
34
  }
25
35
  }
26
36
 
27
- .rlb-dropdown-menu {
28
- z-index: $zindex-dropdown;
29
- }
30
-
31
-
32
37
  .rlb-content {
33
- position: fixed;
34
- left: 0;
35
- width: calc(100%);
36
- height: calc(100% - $header-height);
37
- overflow-y: auto;
38
- margin-top: $header-height;
39
- box-sizing: border-box;
40
- transition: left 0.3s ease-in-out, width 0.3s ease-in-out;
41
-
42
- &.rlb-sidebar-en {
43
- left: $sidebar-width;
44
- width: calc(100% - $sidebar-width);
45
- }
38
+ overflow: auto;
39
+ background-color: var(--bs-body-bg);
40
+ width: 100%;
41
+ }
46
42
 
47
- &.expanded {
48
- left: 0;
49
- width: calc(100%);
50
- }
43
+ .rlb-dropdown-menu {
44
+ z-index: $zindex-dropdown;
51
45
  }
52
46
 
53
47
  .sidebar-toggle {
54
- position: fixed;
55
- top: calc($header-height + 15px);
56
- left: $sidebar-width - 30px;
48
+ position: absolute;
49
+ top: 1rem;
50
+ left: $sidebar-width - 1.5rem;
51
+ z-index: 1035;
57
52
  transform: translateX(-50%);
58
- width: 30px;
59
- height: 30px;
53
+ width: 2rem;
54
+ height: 2rem;
60
55
  border-radius: 50%;
61
56
  display: flex;
62
57
  align-items: center;
63
58
  justify-content: center;
64
59
  cursor: pointer;
65
- z-index: 9999;
66
60
  transition: left 0.3s ease-in-out, transform 0.2s ease, color 0.2s ease, border 0.2s ease;
67
61
 
68
62
  &:hover {
@@ -76,16 +70,10 @@
76
70
  }
77
71
  }
78
72
 
79
- .rlb-sidebar.collapsed .sidebar-toggle {
80
- left: 0;
81
- }
82
-
83
73
  .sidebar-toggler-tooltip {
84
-
85
74
  --bs-tooltip-bg: var(--bs-body-bg);
86
75
  --bs-tooltip-color: var(--bs-body-color);
87
76
 
88
-
89
77
  --bs-tooltip-border-width: 1px;
90
78
  --bs-tooltip-border-color: rgba(0, 0, 0, 0.15);
91
79
 
@@ -96,26 +84,57 @@
96
84
  padding: 0.25rem 0.5rem;
97
85
  }
98
86
 
87
+ .sidebar-toggler-tooltip {
88
+ pointer-events: none;
89
+ }
90
+
91
+ .rlb-sidebar.collapsed .sidebar-toggle {
92
+ left: 0;
93
+ }
94
+
99
95
  @media (hover: none) {
100
96
  .tooltip {
101
97
  display: none !important;
102
98
  }
103
99
  }
104
100
 
105
- .sidebar-toggler-tooltip {
106
- pointer-events: none;
107
- }
108
101
 
109
- /* ===== Mobile ===== */
110
102
  @media (max-width: 992px) {
103
+ .rlb-sidebar {
104
+ position: absolute;
105
+ left: 0;
106
+ top: 0;
107
+ height: 100%;
108
+ transform: translateX(-100%);
109
+ width: $sidebar-width !important;
110
+ box-shadow: 5px 0 15px rgba(0,0,0,0.1);
111
+ overflow: visible !important;
112
+
113
+ &:not(.collapsed) {
114
+ transform: translateX(0);
115
+ .sidebar-toggle {
116
+ left: calc(100% - 20px);
117
+ }
118
+ }
119
+
120
+ &.collapsed {
121
+ .sidebar-toggle {
122
+ left: calc(100% + 5px);
123
+ transform: translateX(-50%);
124
+ }
125
+ }
126
+ }
127
+
111
128
  .navbar-collapse {
112
129
  position: absolute;
113
130
  top: 100%;
114
131
  left: 0;
115
132
  right: 0;
116
133
  background-color: var(--bs-body-bg);
117
- border-top: 1px solid rgba(0, 0, 0, .1);
118
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .15);
119
- z-index: 1100;
134
+
135
+ border: 1px solid var(--bs-border-color);
136
+ border-top: none;
137
+
138
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
120
139
  }
121
140
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, booleanAttribute, Input, Host, Self, Optional, Directive, Injectable, EventEmitter, ContentChild, Output, ContentChildren, ViewChild, numberAttribute, Pipe, ChangeDetectionStrategy, DOCUMENT, Inject, HostBinding, ViewContainerRef, InjectionToken, ElementRef, HostListener, ViewChildren, NgModule } from '@angular/core';
2
+ import { Component, booleanAttribute, Input, Host, Self, Optional, Directive, Injectable, EventEmitter, ContentChild, Output, ContentChildren, ViewChild, numberAttribute, Pipe, ChangeDetectionStrategy, DOCUMENT, Inject, HostBinding, HostListener, ViewContainerRef, InjectionToken, ElementRef, ViewChildren, NgModule } from '@angular/core';
3
3
  import { Collapse, Carousel, Dropdown, Modal, Toast, Offcanvas, ScrollSpy, Tooltip, Popover } from 'bootstrap';
4
4
  import * as i1 from '@angular/common';
5
5
  import { formatDate, CommonModule } from '@angular/common';
@@ -5453,24 +5453,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
5453
5453
  * Sidebar component
5454
5454
  */
5455
5455
  class SidebarComponent {
5456
+ onResize() {
5457
+ this.checkBreakpoint();
5458
+ }
5456
5459
  constructor() {
5457
5460
  this.isCollapsed = false;
5458
5461
  this.rounded = false;
5459
5462
  }
5463
+ ngOnInit() {
5464
+ this.checkBreakpoint();
5465
+ }
5460
5466
  toggleSidebar() {
5461
- this.isCollapsed = !this.isCollapsed;
5467
+ this.setCollapsed(!this.isCollapsed);
5468
+ }
5469
+ setCollapsed(collapsed) {
5470
+ this.isCollapsed = collapsed;
5462
5471
  const sidebar = document.getElementById('sidebar');
5463
5472
  const content = document.querySelector('.rlb-content');
5464
- if (content) {
5465
- content.classList.toggle('expanded', this.isCollapsed);
5466
- }
5467
- if (sidebar) {
5468
- sidebar.classList.toggle('collapsed', this.isCollapsed);
5469
- }
5473
+ content?.classList.toggle('expanded', collapsed);
5474
+ sidebar?.classList.toggle('collapsed', collapsed);
5475
+ }
5476
+ checkBreakpoint() {
5477
+ const shouldCollapse = window.innerWidth <= 992;
5478
+ this.setCollapsed(shouldCollapse);
5470
5479
  }
5471
5480
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SidebarComponent, isStandalone: false, selector: "rlb-sidebar", inputs: { rounded: "rounded" }, viewQueries: [{ propertyName: "sideMenu", first: true, predicate: ["sideMenu"], descendants: true }], ngImport: i0, template: `
5473
- <div class="vertical-menu" [class.d-none]="isCollapsed" [class.rounded-2]="rounded">
5481
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SidebarComponent, isStandalone: false, selector: "rlb-sidebar", inputs: { rounded: "rounded" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sideMenu", first: true, predicate: ["sideMenu"], descendants: true }], ngImport: i0, template: `
5482
+ <div class="vertical-menu" [class.rounded-2]="rounded">
5474
5483
  <div id="sidebar-menu" class="w-100 h-100 overflow-y-auto">
5475
5484
  <ul class="metismenu list-unstyled" id="side-menu" #sideMenu>
5476
5485
  <ng-content select="rlb-sidebar-item"></ng-content>
@@ -5493,7 +5502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
5493
5502
  args: [{
5494
5503
  selector: 'rlb-sidebar',
5495
5504
  template: `
5496
- <div class="vertical-menu" [class.d-none]="isCollapsed" [class.rounded-2]="rounded">
5505
+ <div class="vertical-menu" [class.rounded-2]="rounded">
5497
5506
  <div id="sidebar-menu" class="w-100 h-100 overflow-y-auto">
5498
5507
  <ul class="metismenu list-unstyled" id="side-menu" #sideMenu>
5499
5508
  <ng-content select="rlb-sidebar-item"></ng-content>
@@ -5518,6 +5527,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
5518
5527
  }], rounded: [{
5519
5528
  type: Input,
5520
5529
  args: [{ alias: 'rounded', required: false }]
5530
+ }], onResize: [{
5531
+ type: HostListener,
5532
+ args: ['window:resize', ['$event']]
5521
5533
  }] } });
5522
5534
 
5523
5535
  class TabContentComponent {