@bootkit/ng0 0.0.0-alpha.35 → 0.0.0-alpha.36

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.
Files changed (64) hide show
  1. package/fesm2022/bootkit-ng0-common.mjs +3 -3
  2. package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
  3. package/fesm2022/bootkit-ng0-components-accordion.mjs +10 -10
  4. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  5. package/fesm2022/bootkit-ng0-components-backdrop.mjs +3 -3
  6. package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -1
  7. package/fesm2022/bootkit-ng0-components-button.mjs +7 -7
  8. package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
  9. package/fesm2022/bootkit-ng0-components-card.mjs +10 -10
  10. package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
  11. package/fesm2022/bootkit-ng0-components-code.mjs +6 -6
  12. package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
  13. package/fesm2022/bootkit-ng0-components-collapse.mjs +10 -10
  14. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  15. package/fesm2022/bootkit-ng0-components-confirmation.mjs +13 -13
  16. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
  17. package/fesm2022/bootkit-ng0-components-dropdown.mjs +22 -22
  18. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -1
  19. package/fesm2022/bootkit-ng0-components-form-field.mjs +7 -7
  20. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
  21. package/fesm2022/bootkit-ng0-components-list.mjs +10 -10
  22. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -1
  23. package/fesm2022/bootkit-ng0-components-modal.mjs +7 -7
  24. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  25. package/fesm2022/bootkit-ng0-components-nav.mjs +19 -19
  26. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  27. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +7 -7
  28. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  29. package/fesm2022/bootkit-ng0-components-pagination.mjs +7 -7
  30. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  31. package/fesm2022/bootkit-ng0-components-popover.mjs +6 -6
  32. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  33. package/fesm2022/bootkit-ng0-components-select.mjs +7 -7
  34. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -1
  35. package/fesm2022/bootkit-ng0-components-sidenav.mjs +13 -13
  36. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
  37. package/fesm2022/bootkit-ng0-components-stepper.mjs +10 -10
  38. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
  39. package/fesm2022/bootkit-ng0-components-table.mjs +13 -13
  40. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
  41. package/fesm2022/bootkit-ng0-components-toast.mjs +6 -6
  42. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  43. package/fesm2022/bootkit-ng0-components-tooltip.mjs +6 -6
  44. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  45. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +19 -19
  46. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
  47. package/fesm2022/bootkit-ng0-form.mjs +25 -25
  48. package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
  49. package/fesm2022/bootkit-ng0-http.mjs +3 -3
  50. package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
  51. package/fesm2022/bootkit-ng0-layouts-layout1.mjs +164 -92
  52. package/fesm2022/bootkit-ng0-layouts-layout1.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-localization.mjs +34 -34
  54. package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
  55. package/fesm2022/bootkit-ng0-platform-browser.mjs +6 -6
  56. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -1
  57. package/fesm2022/bootkit-ng0-routing.mjs +3 -3
  58. package/fesm2022/bootkit-ng0-routing.mjs.map +1 -1
  59. package/fesm2022/bootkit-ng0-script.mjs +3 -3
  60. package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
  61. package/fesm2022/bootkit-ng0-security.mjs +13 -13
  62. package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
  63. package/layouts/layout1/index.d.ts +117 -60
  64. package/package.json +21 -21
@@ -1,83 +1,50 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Injectable, inject, TemplateRef, input, booleanAttribute, EventEmitter, Output, Directive, ChangeDetectorRef, ContentChildren, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
2
+ import { Injectable, inject, TemplateRef, input, booleanAttribute, EventEmitter, Output, Directive, signal, ChangeDetectorRef, ContentChildren, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
3
  import * as i2 from '@bootkit/ng0/components/sidenav';
4
4
  import { SidenavModule } from '@bootkit/ng0/components/sidenav';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import { Subject } from 'rxjs';
8
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
-
10
- class Layout1SecondarySidenav {
11
- template;
12
- zIndex;
13
- css;
14
- size;
15
- position;
16
- mode;
17
- hasBackdrop;
18
- closeOnBackdropClick;
19
- constructor(template, options) {
20
- this.template = template;
21
- this.zIndex = signal(options?.zIndex, ...(ngDevMode ? [{ debugName: "zIndex" }] : []));
22
- this.css = signal(options?.css, ...(ngDevMode ? [{ debugName: "css" }] : []));
23
- this.size = signal(options?.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
24
- this.position = signal(options?.position ?? 'start', ...(ngDevMode ? [{ debugName: "position" }] : []));
25
- this.mode = signal(options?.mode ?? 'over', ...(ngDevMode ? [{ debugName: "mode" }] : []));
26
- this.hasBackdrop = signal(options?.hasBackdrop ?? true, ...(ngDevMode ? [{ debugName: "hasBackdrop" }] : []));
27
- this.closeOnBackdropClick = signal(options?.closeOnBackdropClick ?? false, ...(ngDevMode ? [{ debugName: "closeOnBackdropClick" }] : []));
28
- }
29
- }
30
8
 
31
9
  /**
32
10
  * Service to manage the configuration and state of Layout1Component.
33
11
  */
34
12
  class Layout1Manager {
35
- _zIndexCounter = 1000;
36
- _sidenavPushSubject = new Subject();
37
- _sidenavPopSubject = new Subject();
38
- _sidenavRemoveSubject = new Subject();
39
- /**
40
- * @private
41
- */
42
- sidenavPushNotification = this._sidenavPushSubject.asObservable();
43
13
  /**
44
- * @private
14
+ * The Layout1Component instance associated with this manager.
45
15
  */
46
- sidenavPopNotification = this._sidenavPopSubject.asObservable();
16
+ component;
47
17
  /**
48
- * @private
18
+ * Push a secondary sidenav.
19
+ * @param content The template for the secondary sidenav.
20
+ * @param options Options for the secondary sidenav.
21
+ * @returns The reference to the pushed secondary sidenav.
49
22
  */
50
- sidenavRemoveNotification = this._sidenavRemoveSubject.asObservable();
23
+ pushSidenav(content, options) {
24
+ return this.component.pushSidenav(content, options);
25
+ }
51
26
  /**
52
- * Push a secondary sidenav.
53
- * @param template
54
- * @param options
55
- * @returns
27
+ * Close the last secondary sidenav and dispose it.
56
28
  */
57
- pushSidenav(template, options) {
58
- options = options || {};
59
- options.zIndex = options.zIndex ?? this._zIndexCounter++;
60
- const sidenav = new Layout1SecondarySidenav(template, options);
61
- this._sidenavPushSubject.next(sidenav);
62
- return sidenav;
29
+ popSidenav(result) {
30
+ return this.component.popSidenav(result);
63
31
  }
64
32
  /**
65
- * Pop the last secondary sidenav.
33
+ * Get the list of secondary sidenavs.
66
34
  */
67
- popSidenav() {
68
- this._sidenavPopSubject.next(undefined);
35
+ get secondarySidenavs() {
36
+ return this.component.secondarySidenavs;
69
37
  }
70
38
  /**
71
- * Remove a secondary sidenav.
72
- * @param sidenav
39
+ * Get the last secondary sidenav.
73
40
  */
74
- removeSidenav(sidenav) {
75
- this._sidenavRemoveSubject.next(sidenav);
41
+ get last() {
42
+ return this.component.secondarySidenavs.at(-1);
76
43
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Manager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Manager, providedIn: 'root' });
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Manager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
45
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Manager, providedIn: 'root' });
79
46
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Manager, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Manager, decorators: [{
81
48
  type: Injectable,
82
49
  args: [{
83
50
  providedIn: 'root'
@@ -97,10 +64,10 @@ class Layout1SidenavDirective {
97
64
  size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : []));
98
65
  css = input(...(ngDevMode ? [undefined, { debugName: "css" }] : []));
99
66
  backdropClick = new EventEmitter();
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1SidenavDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
101
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: Layout1SidenavDirective, isStandalone: true, selector: "[ng0Layout1Sidenav]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, css: { classPropertyName: "css", publicName: "css", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, exportAs: ["ng0Layout1Sidenav"], ngImport: i0 });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1SidenavDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
68
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: Layout1SidenavDirective, isStandalone: true, selector: "[ng0Layout1Sidenav]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, css: { classPropertyName: "css", publicName: "css", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, exportAs: ["ng0Layout1Sidenav"], ngImport: i0 });
102
69
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1SidenavDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1SidenavDirective, decorators: [{
104
71
  type: Directive,
105
72
  args: [{
106
73
  selector: '[ng0Layout1Sidenav]',
@@ -111,76 +78,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
111
78
  type: Output
112
79
  }] } });
113
80
 
81
+ /**
82
+ * Reference to a secondary sidenav in the Layout1Component.
83
+ */
84
+ class Layout1SecondarySidenav {
85
+ _disposedSubject = new Subject();
86
+ _isDisposed = false;
87
+ /**
88
+ * Observable that emits when the sidenav is disposed.
89
+ */
90
+ disposed = this._disposedSubject.asObservable();
91
+ /**
92
+ * template of the sidenav content.
93
+ */
94
+ template;
95
+ /**
96
+ * Z-Index of the sidenav.
97
+ */
98
+ zIndex;
99
+ /**
100
+ * Sidenav css classes.
101
+ */
102
+ css;
103
+ /**
104
+ * Size of the sidenav.
105
+ */
106
+ size;
107
+ /**
108
+ * Position of the sidenav.
109
+ */
110
+ position;
111
+ /**
112
+ * Mode of the sidenav.
113
+ */
114
+ mode;
115
+ /**
116
+ * Whether the sidenav has a backdrop.
117
+ */
118
+ hasBackdrop;
119
+ /**
120
+ * Whether the sidenav should close on backdrop click.
121
+ */
122
+ closeOnBackdropClick;
123
+ /**
124
+ * Whether the sidenav is disposed.
125
+ */
126
+ get isDisposed() {
127
+ return this._isDisposed;
128
+ }
129
+ constructor(template, options) {
130
+ this.template = template;
131
+ this.zIndex = signal(options?.zIndex, ...(ngDevMode ? [{ debugName: "zIndex" }] : []));
132
+ this.css = signal(options?.css, ...(ngDevMode ? [{ debugName: "css" }] : []));
133
+ this.size = signal(options?.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
134
+ this.position = signal(options?.position ?? 'start', ...(ngDevMode ? [{ debugName: "position" }] : []));
135
+ this.mode = signal(options?.mode ?? 'over', ...(ngDevMode ? [{ debugName: "mode" }] : []));
136
+ this.hasBackdrop = signal(options?.hasBackdrop ?? true, ...(ngDevMode ? [{ debugName: "hasBackdrop" }] : []));
137
+ this.closeOnBackdropClick = signal(options?.closeOnBackdropClick ?? false, ...(ngDevMode ? [{ debugName: "closeOnBackdropClick" }] : []));
138
+ }
139
+ /**
140
+ * Close and dispose the sidenav.
141
+ * @param result Optional result to emit when the sidenav is closed.
142
+ */
143
+ dispose(result) {
144
+ if (!this._isDisposed) {
145
+ this._isDisposed = true;
146
+ this._disposedSubject.next(result);
147
+ }
148
+ }
149
+ }
150
+
114
151
  /**
115
152
  * Layout1 component that provides a layout with sidenavs.
116
153
  */
117
154
  class Layout1Component {
155
+ _zIndexCounter = 1000;
118
156
  _manager = inject(Layout1Manager);
119
157
  _sidenavs;
120
158
  _secondarySidenavs = signal([], ...(ngDevMode ? [{ debugName: "_secondarySidenavs" }] : []));
121
159
  _openSecondarySidenavs = new Set();
122
160
  _changeDetectorRef = inject(ChangeDetectorRef);
161
+ /**
162
+ * Default position for secondary sidenavs.
163
+ */
164
+ defaultSidenavPosition = input('start', ...(ngDevMode ? [{ debugName: "defaultSidenavPosition" }] : []));
165
+ /**
166
+ * Default size for secondary sidenavs.
167
+ */
168
+ defaultSidenavSize = input(...(ngDevMode ? [undefined, { debugName: "defaultSidenavSize" }] : []));
169
+ /**
170
+ * Default mode for secondary sidenavs.
171
+ */
172
+ defaultSidenavMode = input('over', ...(ngDevMode ? [{ debugName: "defaultSidenavMode" }] : []));
173
+ /**
174
+ * Default hasBackdrop value for secondary sidenavs.
175
+ */
176
+ defaultSidenavHasBackdrop = input(true, ...(ngDevMode ? [{ debugName: "defaultSidenavHasBackdrop" }] : []));
177
+ /**
178
+ * Default closeOnBackdropClick value for secondary sidenavs.
179
+ */
180
+ defaultSidenavCloseOnBackdropClick = input(false, ...(ngDevMode ? [{ debugName: "defaultSidenavCloseOnBackdropClick" }] : []));
123
181
  constructor() {
124
- this._manager.sidenavPushNotification.pipe(takeUntilDestroyed()).subscribe(c => this.pushSidenav(c));
125
- this._manager.sidenavRemoveNotification.pipe(takeUntilDestroyed()).subscribe(c => this.removeSidenav(c));
126
- this._manager.sidenavPopNotification.pipe(takeUntilDestroyed()).subscribe(c => this.popSidenav());
182
+ this._manager.component = this;
127
183
  }
128
184
  /**
129
185
  * Push a secondary sidenav.
130
- * @param sidenav
186
+ * @param template The template for the secondary sidenav.
187
+ * @param options Options for the secondary sidenav.
188
+ * @returns The reference to the pushed secondary sidenav.
131
189
  */
132
- pushSidenav(sidenav) {
133
- this._secondarySidenavs().push(sidenav);
190
+ pushSidenav(template, options) {
191
+ options = options || {};
192
+ options.zIndex = options.zIndex ?? this._zIndexCounter++;
193
+ options.mode = options.mode ?? this.defaultSidenavMode();
194
+ options.position = options.position ?? this.defaultSidenavPosition();
195
+ options.size = options.size ?? this.defaultSidenavSize();
196
+ options.hasBackdrop = options.hasBackdrop ?? this.defaultSidenavHasBackdrop();
197
+ options.closeOnBackdropClick = options.closeOnBackdropClick ?? this.defaultSidenavCloseOnBackdropClick();
198
+ const sidenavRef = new Layout1SecondarySidenav(template, options);
199
+ this._secondarySidenavs().push(sidenavRef);
134
200
  this._changeDetectorRef.markForCheck();
201
+ // Open the sidenav in the next tick to ensure it's 'transform' transition works correctly.
135
202
  setTimeout(() => {
136
- // Open the sidenav in the next tick to ensure it's 'transform' transition works correctly.
137
- this._openSecondarySidenavs.add(sidenav);
203
+ this._openSecondarySidenavs.add(sidenavRef);
138
204
  this._changeDetectorRef.markForCheck();
139
205
  });
206
+ sidenavRef.disposed.subscribe((result) => {
207
+ // Close the sidenav first. After the transition ends, it will be removed from DOM.
208
+ this._openSecondarySidenavs.delete(sidenavRef);
209
+ });
210
+ return sidenavRef;
140
211
  }
141
212
  /**
142
- * Pop the last secondary sidenav.
143
- */
144
- popSidenav() {
213
+ * Close the last secondary sidenav and dispose it.
214
+ * @param result The result to pass when closing the sidenav.
215
+ * @return The reference to the closed secondary sidenav.
216
+ */
217
+ popSidenav(result) {
145
218
  const last = this._secondarySidenavs().at(-1);
146
219
  if (last) {
147
- this.removeSidenav(last);
220
+ last.dispose(result);
221
+ return last;
148
222
  }
223
+ return undefined;
149
224
  }
150
225
  /**
151
- * Remove a secondary sidenav.
152
- * @param sidenav
226
+ * Get the list of secondary sidenavs.
153
227
  */
154
- removeSidenav(sidenav) {
155
- // Close the sidenav first. After the transition ends, it will be removed from DOM.
156
- this._openSecondarySidenavs.delete(sidenav);
228
+ get secondarySidenavs() {
229
+ return this._secondarySidenavs();
157
230
  }
158
231
  _onSecondarySidenavTransitionEnd(sidenav) {
159
- if (!this._openSecondarySidenavs.has(sidenav)) {
160
- // We should remove secondary sidenavs from DOM.
232
+ if (sidenav.isDisposed) {
161
233
  const index = this._secondarySidenavs().findIndex(x => x === sidenav);
162
234
  this._secondarySidenavs().splice(index, 1);
163
235
  }
164
236
  }
165
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
166
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: Layout1Component, isStandalone: true, selector: "ng0-layout1", queries: [{ propertyName: "_sidenavs", predicate: Layout1SidenavDirective }], ngImport: i0, template: "<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? removeSidenav(sidenav) : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>", styles: ["ng0-layout1{display:flex;flex-direction:column;min-height:100vh;width:100%}ng0-layout1 ng0-layout1-header{display:block;z-index:1}ng0-layout1 ng0-layout1-header.ng0-layout1-header-sticky{position:sticky;top:0}ng0-layout1 ng0-layout1-content{display:block}ng0-layout1 ng0-sidenav-container{overflow:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SidenavModule }, { kind: "component", type: i2.SidenavContainerComponent, selector: "ng0-sidenav-container", outputs: ["backdropClick"] }, { kind: "component", type: i2.SidenavComponent, selector: "ng0-sidenav", inputs: ["open", "mode", "hasBackdrop", "zIndex", "position", "size", "fixedInViewport"], outputs: ["backdropClick"] }, { kind: "component", type: i2.SidenavContentComponent, selector: "ng0-sidenav-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
237
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
238
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: Layout1Component, isStandalone: true, selector: "ng0-layout1", inputs: { defaultSidenavPosition: { classPropertyName: "defaultSidenavPosition", publicName: "defaultSidenavPosition", isSignal: true, isRequired: false, transformFunction: null }, defaultSidenavSize: { classPropertyName: "defaultSidenavSize", publicName: "defaultSidenavSize", isSignal: true, isRequired: false, transformFunction: null }, defaultSidenavMode: { classPropertyName: "defaultSidenavMode", publicName: "defaultSidenavMode", isSignal: true, isRequired: false, transformFunction: null }, defaultSidenavHasBackdrop: { classPropertyName: "defaultSidenavHasBackdrop", publicName: "defaultSidenavHasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, defaultSidenavCloseOnBackdropClick: { classPropertyName: "defaultSidenavCloseOnBackdropClick", publicName: "defaultSidenavCloseOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_sidenavs", predicate: Layout1SidenavDirective }], ngImport: i0, template: "<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? sidenav.dispose() : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>", styles: ["ng0-layout1{display:flex;flex-direction:column;min-height:100vh;width:100%}ng0-layout1 ng0-layout1-header{display:block;z-index:1}ng0-layout1 ng0-layout1-header.ng0-layout1-header-sticky{position:sticky;top:0}ng0-layout1 ng0-layout1-content{display:block}ng0-layout1 ng0-sidenav-container{overflow:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SidenavModule }, { kind: "component", type: i2.SidenavContainerComponent, selector: "ng0-sidenav-container", outputs: ["backdropClick"] }, { kind: "component", type: i2.SidenavComponent, selector: "ng0-sidenav", inputs: ["open", "mode", "hasBackdrop", "zIndex", "position", "size", "fixedInViewport"], outputs: ["backdropClick"] }, { kind: "component", type: i2.SidenavContentComponent, selector: "ng0-sidenav-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
167
239
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Component, decorators: [{
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Component, decorators: [{
169
241
  type: Component,
170
- args: [{ selector: 'ng0-layout1', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, SidenavModule], template: "<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? removeSidenav(sidenav) : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>", styles: ["ng0-layout1{display:flex;flex-direction:column;min-height:100vh;width:100%}ng0-layout1 ng0-layout1-header{display:block;z-index:1}ng0-layout1 ng0-layout1-header.ng0-layout1-header-sticky{position:sticky;top:0}ng0-layout1 ng0-layout1-content{display:block}ng0-layout1 ng0-sidenav-container{overflow:unset!important}\n"] }]
242
+ args: [{ selector: 'ng0-layout1', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, SidenavModule], template: "<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? sidenav.dispose() : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>", styles: ["ng0-layout1{display:flex;flex-direction:column;min-height:100vh;width:100%}ng0-layout1 ng0-layout1-header{display:block;z-index:1}ng0-layout1 ng0-layout1-header.ng0-layout1-header-sticky{position:sticky;top:0}ng0-layout1 ng0-layout1-content{display:block}ng0-layout1 ng0-sidenav-container{overflow:unset!important}\n"] }]
171
243
  }], ctorParameters: () => [], propDecorators: { _sidenavs: [{
172
244
  type: ContentChildren,
173
245
  args: [Layout1SidenavDirective]
174
- }] } });
246
+ }], defaultSidenavPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSidenavPosition", required: false }] }], defaultSidenavSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSidenavSize", required: false }] }], defaultSidenavMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSidenavMode", required: false }] }], defaultSidenavHasBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSidenavHasBackdrop", required: false }] }], defaultSidenavCloseOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSidenavCloseOnBackdropClick", required: false }] }] } });
175
247
 
176
248
  /**
177
249
  * Layout1 header component.
178
250
  */
179
251
  class Layout1HeaderComponent {
180
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
181
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: Layout1HeaderComponent, isStandalone: true, selector: "ng0-layout1-header", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
253
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.11", type: Layout1HeaderComponent, isStandalone: true, selector: "ng0-layout1-header", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
254
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1HeaderComponent, decorators: [{
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1HeaderComponent, decorators: [{
184
256
  type: Component,
185
257
  args: [{
186
258
  selector: 'ng0-layout1-header',
@@ -195,10 +267,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
195
267
  * Layout1 content component.
196
268
  */
197
269
  class Layout1ContentComponent {
198
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1ContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: Layout1ContentComponent, isStandalone: true, selector: "ng0-layout1-content", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
270
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1ContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
271
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.11", type: Layout1ContentComponent, isStandalone: true, selector: "ng0-layout1-content", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
200
272
  }
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1ContentComponent, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1ContentComponent, decorators: [{
202
274
  type: Component,
203
275
  args: [{
204
276
  selector: 'ng0-layout1-content',
@@ -219,17 +291,17 @@ const items = [
219
291
  * Layout1Module
220
292
  */
221
293
  class Layout1Module {
222
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
223
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.9", ngImport: i0, type: Layout1Module, imports: [Layout1Component,
294
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
295
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: Layout1Module, imports: [Layout1Component,
224
296
  Layout1SidenavDirective,
225
297
  Layout1HeaderComponent,
226
298
  Layout1ContentComponent], exports: [Layout1Component,
227
299
  Layout1SidenavDirective,
228
300
  Layout1HeaderComponent,
229
301
  Layout1ContentComponent] });
230
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Module, imports: [Layout1Component] });
302
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Module, imports: [Layout1Component] });
231
303
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Layout1Module, decorators: [{
304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: Layout1Module, decorators: [{
233
305
  type: NgModule,
234
306
  args: [{
235
307
  imports: items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-layouts-layout1.mjs","sources":["../../../projects/ng0/layouts/layout1/types.ts","../../../projects/ng0/layouts/layout1/layout1-manager.ts","../../../projects/ng0/layouts/layout1/layout1-sidenav.directive.ts","../../../projects/ng0/layouts/layout1/layout1.component.ts","../../../projects/ng0/layouts/layout1/layout1.component.html","../../../projects/ng0/layouts/layout1/layout1-header.component.ts","../../../projects/ng0/layouts/layout1/layout1-content.component.ts","../../../projects/ng0/layouts/layout1/layout1.module.ts","../../../projects/ng0/layouts/layout1/bootkit-ng0-layouts-layout1.ts"],"sourcesContent":["import { signal, TemplateRef, WritableSignal } from \"@angular/core\";\r\nimport { CssClass } from \"@bootkit/ng0/common\";\r\nimport { SidenavMode, SidenavPosition, SidenavSize } from \"@bootkit/ng0/components/sidenav\";\r\n\r\n/**\r\n * Represents a secondary sidenav options in the Layout1Component.\r\n */\r\nexport interface Layout1SecondarySidenavOptions {\r\n size?: SidenavSize;\r\n zIndex?: number;\r\n position?: SidenavPosition;\r\n mode?: SidenavMode;\r\n fixedInViewport?: boolean;\r\n hasBackdrop?: boolean;\r\n css?: CssClass;\r\n closeOnBackdropClick?: boolean\r\n}\r\n\r\nexport class Layout1SecondarySidenav {\r\n template: TemplateRef<any>;\r\n zIndex: WritableSignal<number | undefined>;\r\n css: WritableSignal<CssClass>;\r\n size: WritableSignal<SidenavSize>;\r\n position: WritableSignal<SidenavPosition>;\r\n mode: WritableSignal<SidenavMode>;\r\n hasBackdrop: WritableSignal<boolean>;\r\n closeOnBackdropClick: WritableSignal<boolean>;\r\n\r\n constructor(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions) {\r\n this.template = template;\r\n this.zIndex = signal(options?.zIndex);\r\n this.css = signal(options?.css);\r\n this.size = signal(options?.size);\r\n this.position = signal(options?.position ?? 'start');\r\n this.mode = signal(options?.mode ?? 'over');\r\n this.hasBackdrop = signal(options?.hasBackdrop ?? true);\r\n this.closeOnBackdropClick = signal(options?.closeOnBackdropClick ?? false);\r\n }\r\n}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Layout1SecondarySidenav, Layout1SecondarySidenavOptions } from './types';\r\n\r\n/**\r\n * Service to manage the configuration and state of Layout1Component.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Layout1Manager {\r\n private _zIndexCounter = 1000;\r\n private _sidenavPushSubject = new Subject<Layout1SecondarySidenav>();\r\n private _sidenavPopSubject = new Subject<any>();\r\n private _sidenavRemoveSubject = new Subject<Layout1SecondarySidenav>();\r\n\r\n /**\r\n * @private\r\n */\r\n public sidenavPushNotification = this._sidenavPushSubject.asObservable();\r\n\r\n /**\r\n * @private\r\n */\r\n public sidenavPopNotification = this._sidenavPopSubject.asObservable();\r\n\r\n /**\r\n * @private\r\n */\r\n public sidenavRemoveNotification = this._sidenavRemoveSubject.asObservable();\r\n\r\n /**\r\n * Push a secondary sidenav.\r\n * @param template \r\n * @param options \r\n * @returns \r\n */\r\n public pushSidenav(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions): Layout1SecondarySidenav {\r\n options = options || {};\r\n options.zIndex = options.zIndex ?? this._zIndexCounter++;\r\n\r\n const sidenav = new Layout1SecondarySidenav(template, options);\r\n this._sidenavPushSubject.next(sidenav);\r\n return sidenav;\r\n }\r\n\r\n /**\r\n * Pop the last secondary sidenav.\r\n */\r\n public popSidenav(): void {\r\n this._sidenavPopSubject.next(undefined);\r\n }\r\n\r\n /**\r\n * Remove a secondary sidenav.\r\n * @param sidenav \r\n */\r\n public removeSidenav(sidenav: Layout1SecondarySidenav): void {\r\n this._sidenavRemoveSubject.next(sidenav);\r\n }\r\n}\r\n","import { booleanAttribute, Directive, EventEmitter, inject, input, numberAttribute, Output, TemplateRef } from '@angular/core';\r\nimport { SidenavMode, SidenavPosition, SidenavSize } from '@bootkit/ng0/components/sidenav';\r\nimport { CssClass } from '@bootkit/ng0/common';\r\n\r\n/** \r\n * Directive to define a sidenav within Layout1Component.\r\n */\r\n@Directive({\r\n selector: '[ng0Layout1Sidenav]',\r\n exportAs: 'ng0Layout1Sidenav',\r\n standalone: true,\r\n})\r\nexport class Layout1SidenavDirective {\r\n public readonly template = inject(TemplateRef<any>);\r\n public readonly open = input(true, { transform: booleanAttribute });\r\n public readonly mode = input<SidenavMode>('push');\r\n public readonly hasBackdrop = input(true, { transform: booleanAttribute });\r\n public readonly zIndex = input<number | undefined>(undefined);\r\n public readonly position = input<SidenavPosition>('start');\r\n public readonly size = input<SidenavSize>();\r\n public readonly css = input<CssClass>();\r\n @Output() public backdropClick = new EventEmitter<PointerEvent>();\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, inject, model, QueryList, signal, ViewEncapsulation } from '@angular/core';\r\nimport { SidenavModule } from '@bootkit/ng0/components/sidenav';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Layout1Manager } from './layout1-manager';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\r\nimport { Layout1SecondarySidenav } from './types';\r\n\r\n/**\r\n * Layout1 component that provides a layout with sidenavs.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1',\r\n templateUrl: './layout1.component.html',\r\n styleUrls: ['./layout1.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, SidenavModule]\r\n})\r\nexport class Layout1Component {\r\n private readonly _manager = inject(Layout1Manager);\r\n @ContentChildren(Layout1SidenavDirective) protected readonly _sidenavs?: QueryList<Layout1SidenavDirective>;\r\n protected readonly _secondarySidenavs = signal<Layout1SecondarySidenav[]>([]);\r\n protected readonly _openSecondarySidenavs = new Set<Layout1SecondarySidenav>();\r\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n constructor() {\r\n this._manager.sidenavPushNotification.pipe(takeUntilDestroyed()).subscribe(c => this.pushSidenav(c));\r\n this._manager.sidenavRemoveNotification.pipe(takeUntilDestroyed()).subscribe(c => this.removeSidenav(c));\r\n this._manager.sidenavPopNotification.pipe(takeUntilDestroyed()).subscribe(c => this.popSidenav());\r\n }\r\n\r\n /**\r\n * Push a secondary sidenav.\r\n * @param sidenav \r\n */\r\n public pushSidenav(sidenav: Layout1SecondarySidenav): void {\r\n this._secondarySidenavs().push(sidenav);\r\n this._changeDetectorRef.markForCheck();\r\n setTimeout(() => {\r\n // Open the sidenav in the next tick to ensure it's 'transform' transition works correctly.\r\n this._openSecondarySidenavs.add(sidenav);\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n /**\r\n * Pop the last secondary sidenav.\r\n */\r\n public popSidenav(): void {\r\n const last = this._secondarySidenavs().at(-1);\r\n if (last) {\r\n this.removeSidenav(last);\r\n }\r\n }\r\n\r\n /**\r\n * Remove a secondary sidenav.\r\n * @param sidenav \r\n */\r\n public removeSidenav(sidenav: Layout1SecondarySidenav): void {\r\n // Close the sidenav first. After the transition ends, it will be removed from DOM.\r\n this._openSecondarySidenavs.delete(sidenav);\r\n }\r\n\r\n protected _onSecondarySidenavTransitionEnd(sidenav: Layout1SecondarySidenav) {\r\n if (!this._openSecondarySidenavs.has(sidenav)) {\r\n // We should remove secondary sidenavs from DOM.\r\n const index = this._secondarySidenavs().findIndex(x => x === sidenav);\r\n this._secondarySidenavs().splice(index, 1);\r\n }\r\n }\r\n}\r\n","<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? removeSidenav(sidenav) : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Layout1 header component.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1-header',\r\n template: `<ng-content></ng-content>`,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class Layout1HeaderComponent {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Layout1 content component.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1-content',\r\n template: `<ng-content></ng-content>`,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class Layout1ContentComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Layout1Component } from './layout1.component';\r\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\r\nimport { Layout1HeaderComponent } from './layout1-header.component';\r\nimport { Layout1ContentComponent } from './public-api';\r\n\r\nconst items = [\r\n Layout1Component,\r\n Layout1SidenavDirective,\r\n Layout1HeaderComponent,\r\n Layout1ContentComponent\r\n];\r\n\r\n/**\r\n * Layout1Module\r\n */\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class Layout1Module { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-layouts-layout1.mjs","sources":["../../../projects/ng0/layouts/layout1/layout1-manager.ts","../../../projects/ng0/layouts/layout1/layout1-sidenav.directive.ts","../../../projects/ng0/layouts/layout1/secondary-sidenav.ts","../../../projects/ng0/layouts/layout1/layout1.component.ts","../../../projects/ng0/layouts/layout1/layout1.component.html","../../../projects/ng0/layouts/layout1/layout1-header.component.ts","../../../projects/ng0/layouts/layout1/layout1-content.component.ts","../../../projects/ng0/layouts/layout1/layout1.module.ts","../../../projects/ng0/layouts/layout1/bootkit-ng0-layouts-layout1.ts"],"sourcesContent":["import { Injectable, TemplateRef } from '@angular/core';\r\nimport { Layout1SecondarySidenav, Layout1SecondarySidenavOptions } from './secondary-sidenav';\r\nimport { Layout1Component } from './layout1.component';\r\n\r\n/**\r\n * Service to manage the configuration and state of Layout1Component.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class Layout1Manager {\r\n /**\r\n * The Layout1Component instance associated with this manager.\r\n */\r\n public component!: Layout1Component;\r\n\r\n /**\r\n * Push a secondary sidenav.\r\n * @param content The template for the secondary sidenav.\r\n * @param options Options for the secondary sidenav.\r\n * @returns The reference to the pushed secondary sidenav.\r\n */\r\n public pushSidenav(content: TemplateRef<any>, options?: Layout1SecondarySidenavOptions): Layout1SecondarySidenav {\r\n return this.component.pushSidenav(content, options);\r\n }\r\n\r\n /**\r\n * Close the last secondary sidenav and dispose it.\r\n */\r\n public popSidenav(result?: any): Layout1SecondarySidenav | undefined {\r\n return this.component.popSidenav(result);\r\n }\r\n\r\n /**\r\n * Get the list of secondary sidenavs.\r\n */\r\n public get secondarySidenavs(): ReadonlyArray<Layout1SecondarySidenav> {\r\n return this.component.secondarySidenavs;\r\n }\r\n\r\n /**\r\n * Get the last secondary sidenav.\r\n */\r\n public get last(): Layout1SecondarySidenav | undefined {\r\n return this.component.secondarySidenavs.at(-1);\r\n }\r\n}\r\n","import { booleanAttribute, Directive, EventEmitter, inject, input, Output, TemplateRef } from '@angular/core';\r\nimport { SidenavMode, SidenavPosition, SidenavSize } from '@bootkit/ng0/components/sidenav';\r\nimport { CssClass } from '@bootkit/ng0/common';\r\n\r\n/** \r\n * Directive to define a sidenav within Layout1Component.\r\n */\r\n@Directive({\r\n selector: '[ng0Layout1Sidenav]',\r\n exportAs: 'ng0Layout1Sidenav',\r\n standalone: true,\r\n})\r\nexport class Layout1SidenavDirective {\r\n public readonly template = inject(TemplateRef<any>);\r\n public readonly open = input(true, { transform: booleanAttribute });\r\n public readonly mode = input<SidenavMode>('push');\r\n public readonly hasBackdrop = input(true, { transform: booleanAttribute });\r\n public readonly zIndex = input<number | undefined>(undefined);\r\n public readonly position = input<SidenavPosition>('start');\r\n public readonly size = input<SidenavSize>();\r\n public readonly css = input<CssClass>();\r\n @Output() public backdropClick = new EventEmitter<PointerEvent>();\r\n}\r\n","import { signal, TemplateRef, WritableSignal } from \"@angular/core\";\r\nimport { CssClass } from \"@bootkit/ng0/common\";\r\nimport { SidenavMode, SidenavPosition, SidenavSize } from \"@bootkit/ng0/components/sidenav\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n/**\r\n * Represents a secondary sidenav options in the Layout1Component.\r\n */\r\nexport interface Layout1SecondarySidenavOptions {\r\n size?: SidenavSize;\r\n zIndex?: number;\r\n position?: SidenavPosition;\r\n mode?: SidenavMode;\r\n fixedInViewport?: boolean;\r\n hasBackdrop?: boolean;\r\n css?: CssClass;\r\n closeOnBackdropClick?: boolean\r\n}\r\n\r\n/**\r\n * Reference to a secondary sidenav in the Layout1Component.\r\n */\r\nexport class Layout1SecondarySidenav {\r\n private _disposedSubject = new Subject<any>();\r\n private _isDisposed = false;\r\n\r\n /**\r\n * Observable that emits when the sidenav is disposed.\r\n */\r\n public readonly disposed = this._disposedSubject.asObservable();\r\n\r\n /**\r\n * template of the sidenav content.\r\n */\r\n public readonly template: TemplateRef<any>;\r\n\r\n /**\r\n * Z-Index of the sidenav.\r\n */\r\n public readonly zIndex: WritableSignal<number | undefined>;\r\n\r\n /**\r\n * Sidenav css classes.\r\n */\r\n public readonly css: WritableSignal<CssClass>;\r\n\r\n /**\r\n * Size of the sidenav.\r\n */\r\n public readonly size: WritableSignal<SidenavSize>;\r\n\r\n /**\r\n * Position of the sidenav.\r\n */\r\n public readonly position: WritableSignal<SidenavPosition>;\r\n\r\n /**\r\n * Mode of the sidenav.\r\n */\r\n public readonly mode: WritableSignal<SidenavMode>;\r\n\r\n /**\r\n * Whether the sidenav has a backdrop.\r\n */\r\n public readonly hasBackdrop: WritableSignal<boolean>;\r\n\r\n /**\r\n * Whether the sidenav should close on backdrop click.\r\n */\r\n public readonly closeOnBackdropClick: WritableSignal<boolean>;\r\n\r\n /**\r\n * Whether the sidenav is disposed.\r\n */\r\n public get isDisposed() {\r\n return this._isDisposed;\r\n }\r\n\r\n constructor(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions) {\r\n this.template = template;\r\n this.zIndex = signal(options?.zIndex);\r\n this.css = signal(options?.css);\r\n this.size = signal(options?.size);\r\n this.position = signal(options?.position ?? 'start');\r\n this.mode = signal(options?.mode ?? 'over');\r\n this.hasBackdrop = signal(options?.hasBackdrop ?? true);\r\n this.closeOnBackdropClick = signal(options?.closeOnBackdropClick ?? false);\r\n }\r\n\r\n /**\r\n * Close and dispose the sidenav.\r\n * @param result Optional result to emit when the sidenav is closed.\r\n */\r\n public dispose(result?: any): void {\r\n if (!this._isDisposed) {\r\n this._isDisposed = true;\r\n this._disposedSubject.next(result);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, inject, input, QueryList, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { SidenavMode, SidenavModule, SidenavPosition, SidenavSize } from '@bootkit/ng0/components/sidenav';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Layout1Manager } from './layout1-manager';\r\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\r\nimport { Layout1SecondarySidenavOptions, Layout1SecondarySidenav } from './secondary-sidenav';\r\n\r\n/**\r\n * Layout1 component that provides a layout with sidenavs.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1',\r\n templateUrl: './layout1.component.html',\r\n styleUrls: ['./layout1.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule, SidenavModule]\r\n})\r\nexport class Layout1Component {\r\n private _zIndexCounter = 1000;\r\n private readonly _manager = inject(Layout1Manager);\r\n @ContentChildren(Layout1SidenavDirective) protected readonly _sidenavs?: QueryList<Layout1SidenavDirective>;\r\n protected readonly _secondarySidenavs = signal<Layout1SecondarySidenav[]>([]);\r\n protected readonly _openSecondarySidenavs = new Set<Layout1SecondarySidenav>();\r\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n /**\r\n * Default position for secondary sidenavs.\r\n */\r\n defaultSidenavPosition = input<SidenavPosition>('start');\r\n\r\n /**\r\n * Default size for secondary sidenavs.\r\n */\r\n defaultSidenavSize = input<SidenavSize>();\r\n\r\n /**\r\n * Default mode for secondary sidenavs.\r\n */\r\n defaultSidenavMode = input<SidenavMode>('over');\r\n\r\n /**\r\n * Default hasBackdrop value for secondary sidenavs.\r\n */\r\n defaultSidenavHasBackdrop = input(true);\r\n\r\n /**\r\n * Default closeOnBackdropClick value for secondary sidenavs.\r\n */\r\n defaultSidenavCloseOnBackdropClick = input(false);\r\n\r\n\r\n constructor() {\r\n this._manager.component = this;\r\n }\r\n\r\n /**\r\n * Push a secondary sidenav.\r\n * @param template The template for the secondary sidenav.\r\n * @param options Options for the secondary sidenav.\r\n * @returns The reference to the pushed secondary sidenav.\r\n */\r\n public pushSidenav(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions): Layout1SecondarySidenav {\r\n options = options || {};\r\n options.zIndex = options.zIndex ?? this._zIndexCounter++;\r\n options.mode = options.mode ?? this.defaultSidenavMode();\r\n options.position = options.position ?? this.defaultSidenavPosition();\r\n options.size = options.size ?? this.defaultSidenavSize();\r\n options.hasBackdrop = options.hasBackdrop ?? this.defaultSidenavHasBackdrop();\r\n options.closeOnBackdropClick = options.closeOnBackdropClick ?? this.defaultSidenavCloseOnBackdropClick();\r\n\r\n const sidenavRef = new Layout1SecondarySidenav(template, options);\r\n this._secondarySidenavs().push(sidenavRef);\r\n this._changeDetectorRef.markForCheck();\r\n\r\n // Open the sidenav in the next tick to ensure it's 'transform' transition works correctly.\r\n setTimeout(() => {\r\n this._openSecondarySidenavs.add(sidenavRef);\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n sidenavRef.disposed.subscribe((result?: any) => {\r\n // Close the sidenav first. After the transition ends, it will be removed from DOM.\r\n this._openSecondarySidenavs.delete(sidenavRef);\r\n });\r\n\r\n return sidenavRef;\r\n }\r\n\r\n /**\r\n * Close the last secondary sidenav and dispose it.\r\n * @param result The result to pass when closing the sidenav.\r\n * @return The reference to the closed secondary sidenav.\r\n */\r\n public popSidenav(result?: any): Layout1SecondarySidenav | undefined {\r\n const last = this._secondarySidenavs().at(-1);\r\n if (last) {\r\n last.dispose(result);\r\n return last;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Get the list of secondary sidenavs.\r\n */\r\n public get secondarySidenavs(): ReadonlyArray<Layout1SecondarySidenav> {\r\n return this._secondarySidenavs();\r\n }\r\n\r\n protected _onSecondarySidenavTransitionEnd(sidenav: Layout1SecondarySidenav) {\r\n if (sidenav.isDisposed) {\r\n const index = this._secondarySidenavs().findIndex(x => x === sidenav);\r\n this._secondarySidenavs().splice(index, 1);\r\n }\r\n }\r\n}\r\n","<ng0-sidenav-container>\r\n <ng0-sidenav-content>\r\n <ng-content select=\"ng0-layout1-header\" />\r\n <ng-content select=\"ng0-layout1-content\" />\r\n </ng0-sidenav-content>\r\n\r\n @for (sidenav of _sidenavs; track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"sidenav.open()\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (backdropClick)=\"sidenav.backdropClick.emit($event)\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n @for (sidenav of _secondarySidenavs(); track $index) {\r\n <ng0-sidenav class=\"ng0-layout1-secondary-sidenav\"\r\n [size]=\"sidenav.size()\"\r\n [open]=\"_openSecondarySidenavs.has(sidenav)\"\r\n [mode]=\"sidenav.mode()\"\r\n [hasBackdrop]=\"sidenav.hasBackdrop()\"\r\n [position]=\"sidenav.position()\"\r\n [zIndex]=\"sidenav.zIndex()\"\r\n [fixedInViewport]=\"true\"\r\n [ngClass]=\"sidenav.css()\"\r\n (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\r\n (backdropClick)=\"sidenav.closeOnBackdropClick() ? sidenav.dispose() : null\">\r\n <ng-container *ngTemplateOutlet=\"sidenav.template\" />\r\n </ng0-sidenav>\r\n }\r\n\r\n</ng0-sidenav-container>","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Layout1 header component.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1-header',\r\n template: `<ng-content></ng-content>`,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class Layout1HeaderComponent {\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Layout1 content component.\r\n */\r\n@Component({\r\n selector: 'ng0-layout1-content',\r\n template: `<ng-content></ng-content>`,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class Layout1ContentComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Layout1Component } from './layout1.component';\r\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\r\nimport { Layout1HeaderComponent } from './layout1-header.component';\r\nimport { Layout1ContentComponent } from './public-api';\r\n\r\nconst items = [\r\n Layout1Component,\r\n Layout1SidenavDirective,\r\n Layout1HeaderComponent,\r\n Layout1ContentComponent\r\n];\r\n\r\n/**\r\n * Layout1Module\r\n */\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class Layout1Module { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}