@bootkit/ng0 0.0.0-alpha.42 → 0.0.0-alpha.44
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.
- package/common/index.d.ts +30 -6
- package/components/accordion/index.d.ts +8 -8
- package/components/button/index.d.ts +10 -12
- package/components/card/index.d.ts +1 -5
- package/components/collapse/index.d.ts +4 -40
- package/components/confirmation/index.d.ts +14 -16
- package/components/dropdown/index.d.ts +3 -3
- package/components/list/index.d.ts +5 -5
- package/components/modal/index.d.ts +14 -10
- package/components/nav/index.d.ts +13 -15
- package/components/pagination/index.d.ts +7 -7
- package/components/popover/index.d.ts +6 -6
- package/components/sidenav/index.d.ts +17 -21
- package/components/stepper/index.d.ts +3 -4
- package/components/table/index.d.ts +29 -31
- package/components/toast/index.d.ts +14 -8
- package/components/tooltip/index.d.ts +18 -13
- package/components/vertical-menu/index.d.ts +78 -37
- package/fesm2022/bootkit-ng0-components-accordion.mjs +5 -5
- package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-button.mjs +8 -12
- package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-card.mjs +4 -10
- package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-collapse.mjs +15 -123
- package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-confirmation.mjs +15 -25
- package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-modal.mjs +13 -11
- package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-nav.mjs +7 -14
- package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-sidenav.mjs +50 -43
- package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-stepper.mjs +6 -33
- package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-table.mjs +23 -29
- package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-toast.mjs +59 -81
- package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-tooltip.mjs +54 -60
- package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +168 -97
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-http.mjs +22 -30
- package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-layouts-layout1.mjs +1 -1
- package/fesm2022/bootkit-ng0-layouts-layout1.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-security.mjs +46 -30
- package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-utils.mjs +49 -2
- package/fesm2022/bootkit-ng0-utils.mjs.map +1 -1
- package/http/index.d.ts +10 -10
- package/package.json +1 -5
- package/security/index.d.ts +17 -11
- package/utils/index.d.ts +22 -1
- package/components/backdrop/index.d.ts +0 -12
- package/fesm2022/bootkit-ng0-components-backdrop.mjs +0 -46
- package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject,
|
|
2
|
+
import { inject, DOCUMENT, Renderer2, PLATFORM_ID, ElementRef, input, booleanAttribute, numberAttribute, EventEmitter, effect, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, ChangeDetectorRef, ContentChildren, NgModule } from '@angular/core';
|
|
3
3
|
import { isPlatformServer } from '@angular/common';
|
|
4
|
-
import { BackdropComponent } from '@bootkit/ng0/components/backdrop';
|
|
5
4
|
import { throttleTime, Observable } from 'rxjs';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -10,7 +9,7 @@ import { throttleTime, Observable } from 'rxjs';
|
|
|
10
9
|
class SidenavComponent {
|
|
11
10
|
_bodyOverflowStyle;
|
|
12
11
|
_sidenavContainer = inject(SidenavContainerComponent);
|
|
13
|
-
|
|
12
|
+
_document = inject(DOCUMENT);
|
|
14
13
|
_renderer = inject(Renderer2);
|
|
15
14
|
_backdropRef;
|
|
16
15
|
_backdropClickHandlerUnlisten;
|
|
@@ -34,7 +33,7 @@ class SidenavComponent {
|
|
|
34
33
|
* Whether the sidenav has a backdrop.
|
|
35
34
|
* The backdrop is shown only when the sidenav is open and mode is 'over'.
|
|
36
35
|
*/
|
|
37
|
-
hasBackdrop = input(
|
|
36
|
+
hasBackdrop = input(false, ...(ngDevMode ? [{ debugName: "hasBackdrop", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
38
37
|
/**
|
|
39
38
|
* Sidenav z-index.
|
|
40
39
|
* Determines the stack order of the sidenav.
|
|
@@ -65,15 +64,47 @@ class SidenavComponent {
|
|
|
65
64
|
*/
|
|
66
65
|
backdropClick = new EventEmitter();
|
|
67
66
|
constructor() {
|
|
67
|
+
this._createBackdrop();
|
|
68
|
+
effect(() => {
|
|
69
|
+
const fixed = this.fixedInViewport();
|
|
70
|
+
const cssClass = 'ng0-sidenav-backdrop-fullscreen';
|
|
71
|
+
if (fixed) {
|
|
72
|
+
this._renderer.addClass(this._backdropRef, cssClass);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this._renderer.removeClass(this._backdropRef, cssClass);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
effect(() => {
|
|
79
|
+
const zIndex = this.zIndex();
|
|
80
|
+
if (isFinite(zIndex)) {
|
|
81
|
+
this._renderer.setStyle(this._backdropRef, 'z-index', zIndex);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this._renderer.removeStyle(this._backdropRef, 'z-index');
|
|
85
|
+
}
|
|
86
|
+
});
|
|
68
87
|
effect(() => {
|
|
69
|
-
var hasBackdrop = this.hasBackdrop();
|
|
70
88
|
var mode = this.mode();
|
|
71
89
|
var open = this.open();
|
|
72
|
-
|
|
73
|
-
|
|
90
|
+
var hasBackdrop = this.hasBackdrop();
|
|
91
|
+
const cssClass = 'ng0-sidenav-backdrop-show';
|
|
92
|
+
if (mode == 'over' && open && hasBackdrop) {
|
|
93
|
+
this._renderer.addClass(this._backdropRef, cssClass);
|
|
94
|
+
// disable body scroll when sidenav is open and fixedInViewport is true
|
|
95
|
+
if (!this._isPlatformServer && this.fixedInViewport()) {
|
|
96
|
+
const body = this._document.getElementsByTagName('body')[0];
|
|
97
|
+
this._bodyOverflowStyle = body.style.overflow;
|
|
98
|
+
this._renderer.setStyle(body, 'overflow', 'hidden');
|
|
99
|
+
}
|
|
74
100
|
}
|
|
75
101
|
else {
|
|
76
|
-
this.
|
|
102
|
+
this._renderer.removeClass(this._backdropRef, cssClass);
|
|
103
|
+
// restore body scroll when sidenav is closed
|
|
104
|
+
if (!this._isPlatformServer && this.fixedInViewport()) {
|
|
105
|
+
const body = document.getElementsByTagName('body')[0];
|
|
106
|
+
this._renderer.setStyle(body, 'overflow', this._bodyOverflowStyle);
|
|
107
|
+
}
|
|
77
108
|
}
|
|
78
109
|
});
|
|
79
110
|
if (!this._isPlatformServer) {
|
|
@@ -107,50 +138,34 @@ class SidenavComponent {
|
|
|
107
138
|
});
|
|
108
139
|
}
|
|
109
140
|
_createBackdrop() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
this.
|
|
113
|
-
const backdropElm = this._backdropRef.location.nativeElement;
|
|
114
|
-
this._backdropRef.instance.fixed.set(this.fixedInViewport());
|
|
115
|
-
if (this.zIndex() != undefined) {
|
|
116
|
-
this._renderer.setStyle(backdropElm, 'z-index', this.zIndex());
|
|
117
|
-
}
|
|
118
|
-
this._backdropClickHandlerUnlisten = this._renderer.listen(backdropElm, 'click', (e) => {
|
|
141
|
+
this._backdropRef = this._renderer.createElement('div');
|
|
142
|
+
['ng0-sidenav-backdrop', 'ng0-sidenav-backdrop-show'].forEach(x => this._renderer.addClass(this._backdropRef, x));
|
|
143
|
+
this._backdropClickHandlerUnlisten = this._renderer.listen(this._backdropRef, 'click', (e) => {
|
|
119
144
|
this.backdropClick.emit(e);
|
|
120
145
|
});
|
|
121
146
|
// Move backdrop element before Host element
|
|
122
147
|
const hostElm = this.elmentRef.nativeElement;
|
|
123
148
|
const parentElm = hostElm.parentNode;
|
|
124
|
-
this._renderer.insertBefore(parentElm,
|
|
125
|
-
// disable body scroll when sidenav is open and fixedInViewport is true
|
|
126
|
-
if (!this._isPlatformServer && this.fixedInViewport()) {
|
|
127
|
-
const body = document.getElementsByTagName('body')[0];
|
|
128
|
-
this._bodyOverflowStyle = body.style.overflow;
|
|
129
|
-
body.style.overflow = 'hidden';
|
|
130
|
-
this._renderer.setStyle(body, 'overflow', 'hidden');
|
|
131
|
-
}
|
|
149
|
+
this._renderer.insertBefore(parentElm, this._backdropRef, hostElm);
|
|
132
150
|
}
|
|
133
151
|
_destroyBackdrop() {
|
|
134
152
|
this._backdropClickHandlerUnlisten?.();
|
|
135
|
-
this._backdropRef?.
|
|
153
|
+
this._backdropRef?.remove();
|
|
136
154
|
this._backdropClickHandlerUnlisten = undefined;
|
|
137
|
-
this._backdropRef = undefined;
|
|
138
|
-
// restore body scroll when sidenav is closed
|
|
139
|
-
if (!this._isPlatformServer && this.fixedInViewport()) {
|
|
140
|
-
const body = document.getElementsByTagName('body')[0];
|
|
141
|
-
this._renderer.setStyle(body, 'overflow', this._bodyOverflowStyle);
|
|
142
|
-
}
|
|
143
155
|
}
|
|
144
156
|
ngOnDestroy() {
|
|
145
157
|
this._destroyBackdrop();
|
|
146
158
|
this._resizeSubscription?.unsubscribe();
|
|
147
159
|
}
|
|
148
160
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: SidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.11", type: SidenavComponent, isStandalone: true, selector: "ng0-sidenav", 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 }, fixedInViewport: { classPropertyName: "fixedInViewport", publicName: "fixedInViewport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { properties: { "style.width": "position() == 'start' || position() == 'end' ? _getFixedSize() : undefined", "style.height": "undefined", "style.z-index": "zIndex()", "class.ng0-sidenav-start": "position() == 'start'", "class.ng0-sidenav-end": "position() == 'end'", "class.ng0-sidenav-top": "position() == 'top'", "class.ng0-sidenav-bottom": "position() == 'bottom'", "class.ng0-sidenav-
|
|
161
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.11", type: SidenavComponent, isStandalone: true, selector: "ng0-sidenav", 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 }, fixedInViewport: { classPropertyName: "fixedInViewport", publicName: "fixedInViewport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { properties: { "class.ng0-sidenav-open": "open()", "class.ng0-sidenav-fixed": "fixedInViewport()", "class.ng0-sidenav-has-backdrop": "hasBackdrop()", "style.width": "position() == 'start' || position() == 'end' ? _getFixedSize() : undefined", "style.height": "undefined", "style.z-index": "zIndex()", "class.ng0-sidenav-start": "position() == 'start'", "class.ng0-sidenav-end": "position() == 'end'", "class.ng0-sidenav-top": "position() == 'top'", "class.ng0-sidenav-bottom": "position() == 'bottom'", "class.ng0-sidenav-small": "size() == 'small'", "class.ng0-sidenav-medium": "size() == 'medium'", "class.ng0-sidenav-large": "size() == 'large'", "class.ng0-sidenav-full": "size() == 'full'" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":root{--ng0-sidenav-backdrop-background: rgba(0, 0, 0, .5)}ng0-sidenav{position:absolute;will-change:transform,width,height;overflow:auto;display:none}.ng0-sidenav-backdrop{position:absolute;inset:0;background-color:transparent;transition:background-color var(--ng0-sidenav-transition-duration);pointer-events:none}.ng0-sidenav-backdrop.ng0-sidenav-backdrop-fullscreen{position:fixed}.ng0-sidenav-backdrop.ng0-sidenav-backdrop-show{background-color:var(--ng0-sidenav-backdrop-background)!important;pointer-events:all}.ng0-sidenav-transition ng0-sidenav{transition:transform var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),width var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),height var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}.ng0-sidenav-fixed{position:fixed!important}.ng0-sidenav-top{display:block;left:0;right:0;top:0;transform:translateY(-100%)}.ng0-sidenav-top.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-bottom{display:block;left:0;right:0;bottom:0;transform:translateY(100%)}.ng0-sidenav-bottom.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-start{display:block;top:0;bottom:0;inset-inline-start:0;transform:translate(-100%)}:dir(rtl) .ng0-sidenav-start,body[dir=rtl] .ng0-sidenav-start{transform:translate(100%)}.ng0-sidenav-start.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-end{display:block;top:0;bottom:0;inset-inline-end:0;transform:translate(100%)}:dir(rtl) .ng0-sidenav-end,body[dir=rtl] .ng0-sidenav-end{transform:translate(-100%)}.ng0-sidenav-end.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-small.ng0-sidenav-start,.ng0-sidenav-small.ng0-sidenav-end{width:min(350px,95%)}.ng0-sidenav-small.ng0-sidenav-top,.ng0-sidenav-small.ng0-sidenav-bottom{height:min(350px,95%)}@media (min-width: 0){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(700px,95%)}}@media (min-height: 0){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-width: 0){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(700px,95%)}}@media (min-width: 992px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(900px,95%)}}@media (min-width: 1200px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(1200px,95%)}}@media (min-height: 0){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-height: 992px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(900px,95%)}}@media (min-height: 1200px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(1200px,95%)}}.ng0-sidenav-full{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
150
162
|
}
|
|
151
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
152
164
|
type: Component,
|
|
153
165
|
args: [{ selector: 'ng0-sidenav', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
|
|
166
|
+
"[class.ng0-sidenav-open]": "open()",
|
|
167
|
+
"[class.ng0-sidenav-fixed]": "fixedInViewport()",
|
|
168
|
+
"[class.ng0-sidenav-has-backdrop]": "hasBackdrop()",
|
|
154
169
|
"[style.width]": "position() == 'start' || position() == 'end' ? _getFixedSize() : undefined",
|
|
155
170
|
"[style.height]": "undefined",
|
|
156
171
|
"[style.z-index]": "zIndex()",
|
|
@@ -158,13 +173,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
158
173
|
"[class.ng0-sidenav-end]": "position() == 'end'",
|
|
159
174
|
"[class.ng0-sidenav-top]": "position() == 'top'",
|
|
160
175
|
"[class.ng0-sidenav-bottom]": "position() == 'bottom'",
|
|
161
|
-
"[class.ng0-sidenav-open]": "open()",
|
|
162
176
|
"[class.ng0-sidenav-small]": "size() == 'small'",
|
|
163
177
|
"[class.ng0-sidenav-medium]": "size() == 'medium'",
|
|
164
178
|
"[class.ng0-sidenav-large]": "size() == 'large'",
|
|
165
179
|
"[class.ng0-sidenav-full]": "size() == 'full'",
|
|
166
|
-
|
|
167
|
-
}, styles: ["ng0-sidenav{position:absolute;will-change:transform,width,height;overflow:auto;display:none}.ng0-sidenav-transition ng0-sidenav{transition:transform var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),width var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),height var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}.ng0-sidenav-fixed{position:fixed!important}.ng0-sidenav-top{display:block;left:0;right:0;top:0;transform:translateY(-100%)}.ng0-sidenav-top.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-bottom{display:block;left:0;right:0;bottom:0;transform:translateY(100%)}.ng0-sidenav-bottom.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-start{display:block;top:0;bottom:0;inset-inline-start:0;transform:translate(-100%)}:dir(rtl) .ng0-sidenav-start,body[dir=rtl] .ng0-sidenav-start{transform:translate(100%)}.ng0-sidenav-start.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-end{display:block;top:0;bottom:0;inset-inline-end:0;transform:translate(100%)}:dir(rtl) .ng0-sidenav-end,body[dir=rtl] .ng0-sidenav-end{transform:translate(-100%)}.ng0-sidenav-end.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-small.ng0-sidenav-start,.ng0-sidenav-small.ng0-sidenav-end{width:min(350px,95%)}.ng0-sidenav-small.ng0-sidenav-top,.ng0-sidenav-small.ng0-sidenav-bottom{height:min(350px,95%)}@media (min-width: 0){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(700px,95%)}}@media (min-height: 0){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-width: 0){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(700px,95%)}}@media (min-width: 992px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(900px,95%)}}@media (min-width: 1200px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(1200px,95%)}}@media (min-height: 0){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-height: 992px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(900px,95%)}}@media (min-height: 1200px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(1200px,95%)}}.ng0-sidenav-full{width:100%;height:100%}\n"] }]
|
|
180
|
+
}, styles: [":root{--ng0-sidenav-backdrop-background: rgba(0, 0, 0, .5)}ng0-sidenav{position:absolute;will-change:transform,width,height;overflow:auto;display:none}.ng0-sidenav-backdrop{position:absolute;inset:0;background-color:transparent;transition:background-color var(--ng0-sidenav-transition-duration);pointer-events:none}.ng0-sidenav-backdrop.ng0-sidenav-backdrop-fullscreen{position:fixed}.ng0-sidenav-backdrop.ng0-sidenav-backdrop-show{background-color:var(--ng0-sidenav-backdrop-background)!important;pointer-events:all}.ng0-sidenav-transition ng0-sidenav{transition:transform var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),width var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function),height var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}.ng0-sidenav-fixed{position:fixed!important}.ng0-sidenav-top{display:block;left:0;right:0;top:0;transform:translateY(-100%)}.ng0-sidenav-top.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-bottom{display:block;left:0;right:0;bottom:0;transform:translateY(100%)}.ng0-sidenav-bottom.ng0-sidenav-open{transform:translateY(0)!important}.ng0-sidenav-start{display:block;top:0;bottom:0;inset-inline-start:0;transform:translate(-100%)}:dir(rtl) .ng0-sidenav-start,body[dir=rtl] .ng0-sidenav-start{transform:translate(100%)}.ng0-sidenav-start.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-end{display:block;top:0;bottom:0;inset-inline-end:0;transform:translate(100%)}:dir(rtl) .ng0-sidenav-end,body[dir=rtl] .ng0-sidenav-end{transform:translate(-100%)}.ng0-sidenav-end.ng0-sidenav-open{transform:translate(0)!important}.ng0-sidenav-small.ng0-sidenav-start,.ng0-sidenav-small.ng0-sidenav-end{width:min(350px,95%)}.ng0-sidenav-small.ng0-sidenav-top,.ng0-sidenav-small.ng0-sidenav-bottom{height:min(350px,95%)}@media (min-width: 0){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-medium.ng0-sidenav-start,.ng0-sidenav-medium.ng0-sidenav-end{width:min(700px,95%)}}@media (min-height: 0){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-medium.ng0-sidenav-top,.ng0-sidenav-medium.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-width: 0){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(350px,95%)}}@media (min-width: 576px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(500px,95%)}}@media (min-width: 768px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(700px,95%)}}@media (min-width: 992px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(900px,95%)}}@media (min-width: 1200px){.ng0-sidenav-large.ng0-sidenav-start,.ng0-sidenav-large.ng0-sidenav-end{width:min(1200px,95%)}}@media (min-height: 0){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(350px,95%)}}@media (min-height: 576px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(500px,95%)}}@media (min-height: 768px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(700px,95%)}}@media (min-height: 992px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(900px,95%)}}@media (min-height: 1200px){.ng0-sidenav-large.ng0-sidenav-top,.ng0-sidenav-large.ng0-sidenav-bottom{height:min(1200px,95%)}}.ng0-sidenav-full{width:100%;height:100%}\n"] }]
|
|
168
181
|
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], hasBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackdrop", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fixedInViewport: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedInViewport", required: false }] }], backdropClick: [{
|
|
169
182
|
type: Output
|
|
170
183
|
}] } });
|
|
@@ -177,10 +190,6 @@ class SidenavContainerComponent {
|
|
|
177
190
|
_isPlatformServer = isPlatformServer(this._platformId);
|
|
178
191
|
_isTransitionEnabled = false;
|
|
179
192
|
_sidenavs;
|
|
180
|
-
/**
|
|
181
|
-
* Emitted when the backdrop is clicked.
|
|
182
|
-
*/
|
|
183
|
-
backdropClick = new EventEmitter();
|
|
184
193
|
changeDetectorRef = inject(ChangeDetectorRef);
|
|
185
194
|
_getPadding(position) {
|
|
186
195
|
let openSidenavs = this._sidenavs.filter(x => x.open() && x.mode() == 'push');
|
|
@@ -223,7 +232,7 @@ class SidenavContainerComponent {
|
|
|
223
232
|
return true;
|
|
224
233
|
}
|
|
225
234
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: SidenavContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.11", type: SidenavContainerComponent, isStandalone: true, selector: "ng0-sidenav-container",
|
|
235
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.11", type: SidenavContainerComponent, isStandalone: true, selector: "ng0-sidenav-container", host: { properties: { "style.padding-inline-start": "_getPadding('start')", "style.padding-inline-end": "_getPadding('end')", "style.padding-top": "_getPadding('top')", "style.padding-bottom": "_getPadding('bottom')", "class.ng0-sidenav-transition": "_isTransitionEnabled", "class.ng0-sidenav-content-hidden": "!_canComputePadding()" } }, queries: [{ propertyName: "_sidenavs", predicate: SidenavComponent }], ngImport: i0, template: "<ng-content select=\"ng0-sidenav-content\"></ng-content>\n<ng-content></ng-content>", styles: [":root{--ng0-sidenav-transition-duration: .2s;--ng0-sidenav-transition-function: ease-out}ng0-sidenav-container{position:relative;display:block;overflow:hidden;will-change:padding}ng0-sidenav-container.ng0-sidenav-transition{transition:padding var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}ng0-sidenav-container.ng0-sidenav-content-hidden ng0-sidenav-content{opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
227
236
|
}
|
|
228
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: SidenavContainerComponent, decorators: [{
|
|
229
238
|
type: Component,
|
|
@@ -238,8 +247,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
238
247
|
}], propDecorators: { _sidenavs: [{
|
|
239
248
|
type: ContentChildren,
|
|
240
249
|
args: [SidenavComponent]
|
|
241
|
-
}], backdropClick: [{
|
|
242
|
-
type: Output
|
|
243
250
|
}] } });
|
|
244
251
|
|
|
245
252
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-components-sidenav.mjs","sources":["../../../projects/ng0/components/sidenav/sidenav.component.ts","../../../projects/ng0/components/sidenav/sidenav-container.component.ts","../../../projects/ng0/components/sidenav/sidenav-container.component.html","../../../projects/ng0/components/sidenav/sidenav-content.component.ts","../../../projects/ng0/components/sidenav/sidenav.module.ts","../../../projects/ng0/components/sidenav/bootkit-ng0-components-sidenav.ts"],"sourcesContent":["import { booleanAttribute, numberAttribute, Component, ComponentRef, effect, ElementRef, EventEmitter, input, OnDestroy, Output, Renderer2, ViewContainerRef, inject, ChangeDetectionStrategy, ViewEncapsulation, PLATFORM_ID, Inject, DOCUMENT } from '@angular/core';\nimport { SidenavMode, SidenavPosition, SidenavSize } from './types';\nimport { BackdropComponent } from '@bootkit/ng0/components/backdrop';\nimport { isPlatformServer } from '@angular/common';\nimport { SidenavContainerComponent } from './sidenav-container.component';\nimport { Observable, Subscription, throttleTime } from 'rxjs';\n\n/**\n * A sidenav component that displays a sliding navigation panel.\n */\n@Component({\n selector: 'ng0-sidenav',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./sidenav.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n \"[style.width]\": \"position() == 'start' || position() == 'end' ? _getFixedSize() : undefined\",\n \"[style.height]\": \"undefined\",\n \"[style.z-index]\": \"zIndex()\",\n \"[class.ng0-sidenav-start]\": \"position() == 'start'\",\n \"[class.ng0-sidenav-end]\": \"position() == 'end'\",\n \"[class.ng0-sidenav-top]\": \"position() == 'top'\",\n \"[class.ng0-sidenav-bottom]\": \"position() == 'bottom'\",\n \"[class.ng0-sidenav-open]\": \"open()\",\n \"[class.ng0-sidenav-small]\": \"size() == 'small'\",\n \"[class.ng0-sidenav-medium]\": \"size() == 'medium'\",\n \"[class.ng0-sidenav-large]\": \"size() == 'large'\",\n \"[class.ng0-sidenav-full]\": \"size() == 'full'\",\n \"[class.ng0-sidenav-fixed]\": \"fixedInViewport()\",\n }\n})\nexport class SidenavComponent implements OnDestroy {\n private _bodyOverflowStyle?: string;\n private _sidenavContainer = inject(SidenavContainerComponent);\n private _vcr = inject(ViewContainerRef);\n private _renderer = inject(Renderer2);\n private _backdropRef?: ComponentRef<BackdropComponent>;\n private _backdropClickHandlerUnlisten?: () => void;\n private _platformId = inject(PLATFORM_ID);\n protected _isPlatformServer = isPlatformServer(this._platformId)\n private _resizeSubscription?: Subscription;\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n\n /**\n * Whether the sidenav is open.\n */\n public open = input(false, { transform: booleanAttribute });\n\n /**\n * Sidenav mode.\n * Determines how the sidenav is displayed.\n * Can be either 'push' or 'over'.\n * - 'push': The content is pushed aside to make room for the sidenav.\n * - 'over': The sidenav is displayed on top of the content.\n */\n public mode = input<SidenavMode>('push');\n\n /**\n * Whether the sidenav has a backdrop.\n * The backdrop is shown only when the sidenav is open and mode is 'over'.\n */\n public hasBackdrop = input(true, { transform: booleanAttribute });\n\n /**\n * Sidenav z-index.\n * Determines the stack order of the sidenav.\n */\n public zIndex = input(1000, { transform: numberAttribute });\n\n /**\n * Sidenav position.\n * Determines the position of the sidenav.\n * Can be either 'start', 'end', 'top', or 'bottom'.\n */\n public position = input<SidenavPosition>('start');\n\n /**\n * Sidenav size.\n * Determines the size of the sidenav. \n * Can be either 'small', 'medium', 'large', 'full', or a specific value. \n * If a specific value is provided, it will be used as the width/height of the sidenav.\n * @example\n * - 100, '300px', '50%', '50vh', 'small', 'full', ...\n */\n public size = input<SidenavSize>();\n\n /**\n * Whether the sidenav is fixed in the viewport.\n */\n public fixedInViewport = input(false, { transform: booleanAttribute });\n\n public elmentRef = inject(ElementRef);\n\n /**\n * Emits when the backdrop is clicked.\n */\n @Output() public backdropClick = new EventEmitter<PointerEvent>();\n\n constructor() {\n effect(() => {\n var hasBackdrop = this.hasBackdrop();\n var mode = this.mode();\n var open = this.open();\n\n if (mode == 'over' && hasBackdrop && open) {\n this._createBackdrop();\n } else {\n this._destroyBackdrop();\n }\n });\n\n if (!this._isPlatformServer) {\n this._observeResize()\n .pipe(throttleTime(100, undefined, { leading: true, trailing: true }))\n .subscribe(entries => {\n this._sidenavContainer.changeDetectorRef.markForCheck();\n // console.log('Resized to:', entries[0].contentRect.width, entries[0].contentRect.height);\n });\n }\n }\n\n _getFixedSize(): string | undefined {\n let size = this.size();\n let t = typeof size;\n if (t == 'string') {\n return ['small', 'medium', 'large', 'full'].includes(size as string) ? undefined : size as string;\n } else if (t == 'number') {\n return `${size}px`;\n } else {\n return undefined;\n }\n };\n\n private _observeResize(): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resizeObserver = new ResizeObserver(entries => observer.next(entries));\n resizeObserver.observe(this._elementRef.nativeElement);\n return () => resizeObserver.disconnect();\n });\n }\n\n private _createBackdrop() {\n if (this._backdropRef) return;\n\n this._backdropRef = this._vcr.createComponent(BackdropComponent);\n const backdropElm = this._backdropRef.location.nativeElement;\n this._backdropRef.instance.fixed.set(this.fixedInViewport());\n if (this.zIndex() != undefined) {\n this._renderer.setStyle(backdropElm, 'z-index', this.zIndex());\n }\n this._backdropClickHandlerUnlisten = this._renderer.listen(backdropElm, 'click', (e) => {\n this.backdropClick.emit(e);\n });\n\n // Move backdrop element before Host element\n const hostElm = this.elmentRef.nativeElement;\n const parentElm = hostElm.parentNode;\n this._renderer.insertBefore(parentElm, backdropElm, hostElm);\n\n\n // disable body scroll when sidenav is open and fixedInViewport is true\n if (!this._isPlatformServer && this.fixedInViewport()) {\n const body = document.getElementsByTagName('body')[0];\n this._bodyOverflowStyle = body.style.overflow;\n body.style.overflow = 'hidden';\n this._renderer.setStyle(body, 'overflow', 'hidden');\n }\n }\n\n private _destroyBackdrop() {\n this._backdropClickHandlerUnlisten?.();\n this._backdropRef?.destroy();\n this._backdropClickHandlerUnlisten = undefined;\n this._backdropRef = undefined;\n\n // restore body scroll when sidenav is closed\n if (!this._isPlatformServer && this.fixedInViewport()) {\n const body = document.getElementsByTagName('body')[0];\n this._renderer.setStyle(body, 'overflow', this._bodyOverflowStyle);\n }\n }\n\n ngOnDestroy(): void {\n this._destroyBackdrop();\n this._resizeSubscription?.unsubscribe();\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, inject, Output, PLATFORM_ID, QueryList, ViewEncapsulation } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { SidenavComponent } from './sidenav.component';\nimport { SidenavPosition } from './types';\n\n/**\n * Sidenav container component\n */\n@Component({\n selector: 'ng0-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n styleUrls: ['./sidenav-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n \"[style.padding-inline-start]\": \"_getPadding('start')\",\n \"[style.padding-inline-end]\": \"_getPadding('end')\",\n \"[style.padding-top]\": \"_getPadding('top')\",\n \"[style.padding-bottom]\": \"_getPadding('bottom')\",\n \"[class.ng0-sidenav-transition]\": \"_isTransitionEnabled\",\n \"[class.ng0-sidenav-content-hidden]\": \"!_canComputePadding()\",\n }\n})\nexport class SidenavContainerComponent implements AfterViewInit {\n private _platformId = inject(PLATFORM_ID);\n protected _isPlatformServer = isPlatformServer(this._platformId)\n protected _isTransitionEnabled = false;\n @ContentChildren(SidenavComponent) protected _sidenavs!: QueryList<SidenavComponent>;\n\n /**\n * Emitted when the backdrop is clicked.\n */\n @Output() public backdropClick = new EventEmitter();\n\n public changeDetectorRef = inject(ChangeDetectorRef);\n\n protected _getPadding(position: SidenavPosition) {\n let openSidenavs = this._sidenavs.filter(x => x.open() && x.mode() == 'push');\n let filteredSidenavs = openSidenavs.filter(x => x.position() == position);\n if(filteredSidenavs.length == 0) return undefined;\n\n if (this._isPlatformServer) {\n let hasDynamicSidenavs = openSidenavs.some(x => x._getFixedSize() == undefined);\n if (hasDynamicSidenavs) {\n // we cannot compute padding on the server\n return undefined;\n } else {\n let fixedSizes = filteredSidenavs.map(x => x._getFixedSize());\n return fixedSizes.length > 1 ? `max(${fixedSizes.join(', ')})` : fixedSizes[0];\n }\n } else {\n let horizontal = position == 'start' || position == 'end';\n let sizes = filteredSidenavs.map(x => horizontal ? x.elmentRef.nativeElement.offsetWidth : x.elmentRef.nativeElement.offsetHeight);\n return `${Math.max(...sizes)}px`;\n }\n };\n\n ngAfterViewInit() {\n if (!this._isPlatformServer) {\n setTimeout(() => this._isTransitionEnabled = true);\n }\n }\n\n // In some modes the content is pushed based on the width of the opened sidenavs, however on\n // the server we can't measure the sidenav-container padding, so the padding is always zero. This can cause the\n // content to jump around when it's rendered on the server and hydrated on the client.\n // We avoid it by hiding the content on the initial render and then showing it once the sidenav\n // has been measured on the client.\n protected _canComputePadding() {\n if (this._isPlatformServer) {\n let hasDynamicSizenavs = this._sidenavs.some(x => x.open() && x.mode() == 'push' && x._getFixedSize() == undefined);\n return !hasDynamicSizenavs;\n }\n\n return true;\n }\n}\n","<ng-content select=\"ng0-sidenav-content\"></ng-content>\n<ng-content></ng-content>","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Sidenav content component\n */\n@Component({\n selector: 'ng0-sidenav-content',\n template: `<ng-content></ng-content>`,\n styles: `ng0-sidenav-content {display: block}`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SidenavContentComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { SidenavContainerComponent } from './sidenav-container.component';\nimport { SidenavComponent } from './sidenav.component';\nimport { SidenavContentComponent } from './sidenav-content.component';\n\n/**\n * Sidenav module\n */\n@NgModule({\n imports: [\n SidenavContainerComponent,\n SidenavComponent,\n SidenavContentComponent\n ],\n exports: [\n SidenavContainerComponent,\n SidenavComponent,\n SidenavContentComponent\n ]\n})\nexport class SidenavModule { }\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-components-sidenav.mjs","sources":["../../../projects/ng0/components/sidenav/sidenav.component.ts","../../../projects/ng0/components/sidenav/sidenav-container.component.ts","../../../projects/ng0/components/sidenav/sidenav-container.component.html","../../../projects/ng0/components/sidenav/sidenav-content.component.ts","../../../projects/ng0/components/sidenav/sidenav.module.ts","../../../projects/ng0/components/sidenav/bootkit-ng0-components-sidenav.ts"],"sourcesContent":["import { booleanAttribute, numberAttribute, Component, effect, ElementRef, EventEmitter, input, OnDestroy, Output, Renderer2, ViewContainerRef, inject, ChangeDetectionStrategy, ViewEncapsulation, PLATFORM_ID, Inject, DOCUMENT, OnInit, Injector, AfterViewInit } from '@angular/core';\nimport { SidenavMode, SidenavPosition, SidenavSize } from './types';\nimport { isPlatformServer } from '@angular/common';\nimport { SidenavContainerComponent } from './sidenav-container.component';\nimport { Observable, Subscription, throttleTime } from 'rxjs';\n\n/**\n * A sidenav component that displays a sliding navigation panel.\n */\n@Component({\n selector: 'ng0-sidenav',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./sidenav.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n \"[class.ng0-sidenav-open]\": \"open()\",\n \"[class.ng0-sidenav-fixed]\": \"fixedInViewport()\",\n \"[class.ng0-sidenav-has-backdrop]\": \"hasBackdrop()\",\n \"[style.width]\": \"position() == 'start' || position() == 'end' ? _getFixedSize() : undefined\",\n \"[style.height]\": \"undefined\",\n \"[style.z-index]\": \"zIndex()\",\n \"[class.ng0-sidenav-start]\": \"position() == 'start'\",\n \"[class.ng0-sidenav-end]\": \"position() == 'end'\",\n \"[class.ng0-sidenav-top]\": \"position() == 'top'\",\n \"[class.ng0-sidenav-bottom]\": \"position() == 'bottom'\",\n \"[class.ng0-sidenav-small]\": \"size() == 'small'\",\n \"[class.ng0-sidenav-medium]\": \"size() == 'medium'\",\n \"[class.ng0-sidenav-large]\": \"size() == 'large'\",\n \"[class.ng0-sidenav-full]\": \"size() == 'full'\",\n }\n})\nexport class SidenavComponent implements OnDestroy {\n private _bodyOverflowStyle?: string;\n private readonly _sidenavContainer = inject(SidenavContainerComponent);\n private readonly _document = inject(DOCUMENT);\n private readonly _renderer = inject(Renderer2);\n private _backdropRef!: HTMLDivElement;\n private _backdropClickHandlerUnlisten?: () => void;\n private _platformId = inject(PLATFORM_ID);\n protected _isPlatformServer = isPlatformServer(this._platformId)\n private _resizeSubscription?: Subscription;\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n\n /**\n * Whether the sidenav is open.\n */\n public readonly open = input(false, { transform: booleanAttribute });\n\n /**\n * Sidenav mode.\n * Determines how the sidenav is displayed.\n * Can be either 'push' or 'over'.\n * - 'push': The content is pushed aside to make room for the sidenav.\n * - 'over': The sidenav is displayed on top of the content.\n */\n public readonly mode = input<SidenavMode>('push');\n\n /**\n * Whether the sidenav has a backdrop.\n * The backdrop is shown only when the sidenav is open and mode is 'over'.\n */\n public readonly hasBackdrop = input(false, { transform: booleanAttribute });\n\n /**\n * Sidenav z-index.\n * Determines the stack order of the sidenav.\n */\n public readonly zIndex = input(1000, { transform: numberAttribute });\n\n /**\n * Sidenav position.\n * Determines the position of the sidenav.\n * Can be either 'start', 'end', 'top', or 'bottom'.\n */\n public readonly position = input<SidenavPosition>('start');\n\n /**\n * Sidenav size.\n * Determines the size of the sidenav. \n * Can be either 'small', 'medium', 'large', 'full', or a specific value. \n * If a specific value is provided, it will be used as the width/height of the sidenav.\n * @example\n * - 100, '300px', '50%', '50vh', 'small', 'full', ...\n */\n public readonly size = input<SidenavSize>();\n\n /**\n * Whether the sidenav is fixed in the viewport.\n */\n public readonly fixedInViewport = input(false, { transform: booleanAttribute });\n\n public readonly elmentRef = inject(ElementRef);\n\n /**\n * Emits when the backdrop is clicked.\n */\n @Output() public readonly backdropClick = new EventEmitter<PointerEvent>();\n\n constructor() {\n this._createBackdrop();\n\n effect(() => {\n const fixed = this.fixedInViewport();\n const cssClass = 'ng0-sidenav-backdrop-fullscreen';\n\n if (fixed) {\n this._renderer.addClass(this._backdropRef, cssClass);\n } else {\n this._renderer.removeClass(this._backdropRef, cssClass);\n }\n })\n\n effect(() => {\n const zIndex = this.zIndex();\n if (isFinite(zIndex)) {\n this._renderer.setStyle(this._backdropRef, 'z-index', zIndex);\n } else {\n this._renderer.removeStyle(this._backdropRef, 'z-index');\n }\n })\n\n effect(() => {\n var mode = this.mode();\n var open = this.open();\n var hasBackdrop = this.hasBackdrop();\n\n const cssClass = 'ng0-sidenav-backdrop-show';\n if (mode == 'over' && open && hasBackdrop) {\n this._renderer.addClass(this._backdropRef, cssClass);\n\n // disable body scroll when sidenav is open and fixedInViewport is true\n if (!this._isPlatformServer && this.fixedInViewport()) {\n const body = this._document.getElementsByTagName('body')[0];\n this._bodyOverflowStyle = body.style.overflow;\n this._renderer.setStyle(body, 'overflow', 'hidden');\n }\n } else {\n this._renderer.removeClass(this._backdropRef, cssClass);\n\n // restore body scroll when sidenav is closed\n if (!this._isPlatformServer && this.fixedInViewport()) {\n const body = document.getElementsByTagName('body')[0];\n this._renderer.setStyle(body, 'overflow', this._bodyOverflowStyle);\n }\n }\n });\n\n if (!this._isPlatformServer) {\n this._observeResize()\n .pipe(throttleTime(100, undefined, { leading: true, trailing: true }))\n .subscribe(entries => {\n this._sidenavContainer.changeDetectorRef.markForCheck();\n // console.log('Resized to:', entries[0].contentRect.width, entries[0].contentRect.height);\n });\n }\n }\n\n\n _getFixedSize(): string | undefined {\n let size = this.size();\n let t = typeof size;\n if (t == 'string') {\n return ['small', 'medium', 'large', 'full'].includes(size as string) ? undefined : size as string;\n } else if (t == 'number') {\n return `${size}px`;\n } else {\n return undefined;\n }\n };\n\n private _observeResize(): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resizeObserver = new ResizeObserver(entries => observer.next(entries));\n resizeObserver.observe(this._elementRef.nativeElement);\n return () => resizeObserver.disconnect();\n });\n }\n\n private _createBackdrop() {\n this._backdropRef = this._renderer.createElement('div');\n ['ng0-sidenav-backdrop', 'ng0-sidenav-backdrop-show'].forEach(x => this._renderer.addClass(this._backdropRef, x));\n this._backdropClickHandlerUnlisten = this._renderer.listen(this._backdropRef, 'click', (e) => {\n this.backdropClick.emit(e);\n });\n\n // Move backdrop element before Host element\n const hostElm = this.elmentRef.nativeElement;\n const parentElm = hostElm.parentNode;\n this._renderer.insertBefore(parentElm, this._backdropRef, hostElm);\n }\n\n private _destroyBackdrop() {\n this._backdropClickHandlerUnlisten?.();\n this._backdropRef?.remove();\n this._backdropClickHandlerUnlisten = undefined;\n }\n\n ngOnDestroy(): void {\n this._destroyBackdrop();\n this._resizeSubscription?.unsubscribe();\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, inject, PLATFORM_ID, QueryList, ViewEncapsulation } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { SidenavComponent } from './sidenav.component';\nimport { SidenavPosition } from './types';\n\n/**\n * Sidenav container component\n */\n@Component({\n selector: 'ng0-sidenav-container',\n templateUrl: './sidenav-container.component.html',\n styleUrls: ['./sidenav-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n \"[style.padding-inline-start]\": \"_getPadding('start')\",\n \"[style.padding-inline-end]\": \"_getPadding('end')\",\n \"[style.padding-top]\": \"_getPadding('top')\",\n \"[style.padding-bottom]\": \"_getPadding('bottom')\",\n \"[class.ng0-sidenav-transition]\": \"_isTransitionEnabled\",\n \"[class.ng0-sidenav-content-hidden]\": \"!_canComputePadding()\",\n }\n})\nexport class SidenavContainerComponent implements AfterViewInit {\n private readonly _platformId = inject(PLATFORM_ID);\n protected readonly _isPlatformServer = isPlatformServer(this._platformId)\n protected _isTransitionEnabled = false;\n @ContentChildren(SidenavComponent) protected _sidenavs!: QueryList<SidenavComponent>;\n\n public readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n protected _getPadding(position: SidenavPosition) {\n let openSidenavs = this._sidenavs.filter(x => x.open() && x.mode() == 'push');\n let filteredSidenavs = openSidenavs.filter(x => x.position() == position);\n if(filteredSidenavs.length == 0) return undefined;\n\n if (this._isPlatformServer) {\n let hasDynamicSidenavs = openSidenavs.some(x => x._getFixedSize() == undefined);\n if (hasDynamicSidenavs) {\n // we cannot compute padding on the server\n return undefined;\n } else {\n let fixedSizes = filteredSidenavs.map(x => x._getFixedSize());\n return fixedSizes.length > 1 ? `max(${fixedSizes.join(', ')})` : fixedSizes[0];\n }\n } else {\n let horizontal = position == 'start' || position == 'end';\n let sizes = filteredSidenavs.map(x => horizontal ? x.elmentRef.nativeElement.offsetWidth : x.elmentRef.nativeElement.offsetHeight);\n return `${Math.max(...sizes)}px`;\n }\n };\n\n ngAfterViewInit() {\n if (!this._isPlatformServer) {\n setTimeout(() => this._isTransitionEnabled = true);\n }\n }\n\n // In some modes the content is pushed based on the width of the opened sidenavs, however on\n // the server we can't measure the sidenav-container padding, so the padding is always zero. This can cause the\n // content to jump around when it's rendered on the server and hydrated on the client.\n // We avoid it by hiding the content on the initial render and then showing it once the sidenav\n // has been measured on the client.\n protected _canComputePadding() {\n if (this._isPlatformServer) {\n let hasDynamicSizenavs = this._sidenavs.some(x => x.open() && x.mode() == 'push' && x._getFixedSize() == undefined);\n return !hasDynamicSizenavs;\n }\n\n return true;\n }\n}\n","<ng-content select=\"ng0-sidenav-content\"></ng-content>\n<ng-content></ng-content>","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Sidenav content component\n */\n@Component({\n selector: 'ng0-sidenav-content',\n template: `<ng-content></ng-content>`,\n styles: `ng0-sidenav-content {display: block}`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SidenavContentComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { SidenavContainerComponent } from './sidenav-container.component';\nimport { SidenavComponent } from './sidenav.component';\nimport { SidenavContentComponent } from './sidenav-content.component';\n\n/**\n * Sidenav module\n */\n@NgModule({\n imports: [\n SidenavContainerComponent,\n SidenavComponent,\n SidenavContentComponent\n ],\n exports: [\n SidenavContainerComponent,\n SidenavComponent,\n SidenavContentComponent\n ]\n})\nexport class SidenavModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,15 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { input, Directive, model, ContentChildren, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
6
5
|
|
|
7
6
|
class StepDirective {
|
|
8
7
|
templateRef;
|
|
9
|
-
id = input.required(...(ngDevMode ? [{ debugName: "id", alias: '
|
|
8
|
+
id = input.required(...(ngDevMode ? [{ debugName: "id", alias: 'ng0Step' }] : [{ alias: 'ng0Step' }]));
|
|
10
9
|
constructor(templateRef) {
|
|
11
10
|
this.templateRef = templateRef;
|
|
12
11
|
}
|
|
13
12
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: StepDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: StepDirective, isStandalone: true, selector: "[ng0Step]", inputs: { id: { classPropertyName: "id", publicName: "
|
|
13
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: StepDirective, isStandalone: true, selector: "[ng0Step]", inputs: { id: { classPropertyName: "id", publicName: "ng0Step", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0Step"], ngImport: i0 });
|
|
15
14
|
}
|
|
16
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: StepDirective, decorators: [{
|
|
17
16
|
type: Directive,
|
|
@@ -20,46 +19,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
20
19
|
exportAs: 'ng0Step',
|
|
21
20
|
standalone: true
|
|
22
21
|
}]
|
|
23
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "
|
|
22
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "ng0Step", required: true }] }] } });
|
|
24
23
|
|
|
25
24
|
class StepperComponent {
|
|
26
25
|
step = model.required(...(ngDevMode ? [{ debugName: "step" }] : []));
|
|
27
26
|
_steps;
|
|
28
|
-
constructor() {
|
|
29
|
-
}
|
|
30
27
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: StepperComponent, isStandalone: true, selector: "ng0-stepper", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { step: "stepChange" }, queries: [{ propertyName: "_steps", predicate: StepDirective }], exportAs: ["ng0Stepper"], ngImport: i0, template: "@for(s of _steps; track s.id(); let index = $index) {\n@let show=s.id() === step();\n\n<div [
|
|
32
|
-
trigger('stepAnimation', [
|
|
33
|
-
state('hide', style({
|
|
34
|
-
opacity: 0,
|
|
35
|
-
})),
|
|
36
|
-
state('show', style({
|
|
37
|
-
opacity: 1,
|
|
38
|
-
})),
|
|
39
|
-
transition('show <=> hide', [
|
|
40
|
-
animate('.3s ease-out')
|
|
41
|
-
])
|
|
42
|
-
])
|
|
43
|
-
] });
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: StepperComponent, isStandalone: true, selector: "ng0-stepper", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { step: "stepChange" }, queries: [{ propertyName: "_steps", predicate: StepDirective }], exportAs: ["ng0Stepper"], ngImport: i0, template: "@for(s of _steps; track s.id(); let index = $index) {\n@let show=s.id() === step();\n\n<div [class.d-none]=\"!show\">\n @if(show) {\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\n }\n</div>\n}", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
44
29
|
}
|
|
45
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: StepperComponent, decorators: [{
|
|
46
31
|
type: Component,
|
|
47
32
|
args: [{ selector: 'ng0-stepper', exportAs: 'ng0Stepper', standalone: true, imports: [
|
|
48
33
|
CommonModule
|
|
49
|
-
],
|
|
50
|
-
|
|
51
|
-
state('hide', style({
|
|
52
|
-
opacity: 0,
|
|
53
|
-
})),
|
|
54
|
-
state('show', style({
|
|
55
|
-
opacity: 1,
|
|
56
|
-
})),
|
|
57
|
-
transition('show <=> hide', [
|
|
58
|
-
animate('.3s ease-out')
|
|
59
|
-
])
|
|
60
|
-
])
|
|
61
|
-
], template: "@for(s of _steps; track s.id(); let index = $index) {\n@let show=s.id() === step();\n\n<div [@stepAnimation]=\"show ? 'show' : 'hide'\" [class.d-none]=\"!show\">\n @if(show) {\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\n }\n</div>\n}", styles: [":host{display:block}\n"] }]
|
|
62
|
-
}], ctorParameters: () => [], propDecorators: { step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: true }] }, { type: i0.Output, args: ["stepChange"] }], _steps: [{
|
|
34
|
+
], template: "@for(s of _steps; track s.id(); let index = $index) {\n@let show=s.id() === step();\n\n<div [class.d-none]=\"!show\">\n @if(show) {\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\n }\n</div>\n}", styles: [":host{display:block}\n"] }]
|
|
35
|
+
}], propDecorators: { step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: true }] }, { type: i0.Output, args: ["stepChange"] }], _steps: [{
|
|
63
36
|
type: ContentChildren,
|
|
64
37
|
args: [StepDirective]
|
|
65
38
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-components-stepper.mjs","sources":["../../../projects/ng0/components/stepper/step.directive.ts","../../../projects/ng0/components/stepper/stepper.component.ts","../../../projects/ng0/components/stepper/stepper.component.html","../../../projects/ng0/components/stepper/stepper.module.ts","../../../projects/ng0/components/stepper/bootkit-ng0-components-stepper.ts"],"sourcesContent":["import { Directive, input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ng0Step]',\n exportAs: 'ng0Step',\n standalone: true\n})\nexport class StepDirective {\n public id = input.required<any>({alias: '
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-stepper.mjs","sources":["../../../projects/ng0/components/stepper/step.directive.ts","../../../projects/ng0/components/stepper/stepper.component.ts","../../../projects/ng0/components/stepper/stepper.component.html","../../../projects/ng0/components/stepper/stepper.module.ts","../../../projects/ng0/components/stepper/bootkit-ng0-components-stepper.ts"],"sourcesContent":["import { Directive, input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ng0Step]',\n exportAs: 'ng0Step',\n standalone: true\n})\nexport class StepDirective {\n public readonly id = input.required<any>({alias: 'ng0Step'});\n\n constructor(public readonly templateRef: TemplateRef<any>) {\n }\n}\n","import { Component, ContentChildren, QueryList, model } from '@angular/core';\nimport { StepDirective } from './step.directive';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ng0-stepper',\n exportAs: 'ng0Stepper',\n templateUrl: './stepper.component.html',\n styles: `:host{display: block}`,\n standalone: true,\n imports: [\n CommonModule\n ],\n})\nexport class StepperComponent {\n public readonly step = model.required<any>();\n @ContentChildren(StepDirective) protected _steps!: QueryList<StepDirective>;\n}\n","@for(s of _steps; track s.id(); let index = $index) {\n@let show=s.id() === step();\n\n<div [class.d-none]=\"!show\">\n @if(show) {\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\n }\n</div>\n}","import { NgModule } from '@angular/core';\nimport { StepDirective } from './step.directive';\nimport { StepperComponent } from './stepper.component';\n\nconst items = [\n StepperComponent,\n StepDirective\n];\n\n@NgModule({\n imports: items,\n exports: items\n})\nexport class StepperModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|